通常傳統的項目體積龐大,需求、設計、開發、測試、部署流程固定。新功能需要在原項目上做修改。
但是微服務可以看做是對大項目的拆分,是在快速迭代更新上線的需求下產生的。新的功能模塊會發布成新的服務組件,與其他已發布的服務組件一同協作。 服務內部有多個生產者和消費者,通常以http rest的方式調用,服務總體以一個(或幾個)服務的形式呈現給客戶使用。
微服務架構是一種思想對微服務架構我們沒有一個明確的定義,但簡單來說微服務架構是:
采用一組服務的方式來構建一個應用,服務獨立部署在不同的進程中,不同服務通過一些輕量級交互機制來通信,例如 RPC、HTTP 等,服務可獨立擴展伸縮,每個服務定義了明確的邊界,不同的服務甚至可以采用不同的編程語言來實現,由獨立的團隊來維護。
微服務架構設計包括:
1. 服務熔斷降級限流機制 熔斷降級的概念(Rate Limiter 限流器,Circuit breaker 斷路器).
2. 框架調用方式解耦方式 Kit 或 Istio 或 Micro 服務發現(consul zookeeper kubeneters etcd ) RPC調用框架.
3. 鏈路監控,zipkin和prometheus.
4. 多級緩存.
5. 網關 (kong gateway).
6. Docker部署管理 Kubenetters.
7. 自動集成部署 CI/CD 實踐.
8. 自動擴容機制規則.
9. 壓測 優化.
10. Trasport 數據傳輸(序列化和反序列化).
11. Logging 日志.
12. Metrics 指針對每個請求信息的儀表盤化.
[Golang的微服務框架kit中有詳細的微服務的例子](https://gokit.io/)
- 一、經典(一)
- 二、經典(二)
- 三、經典(三)
- 四、經典(四)
- 五、經典(五)
- 六、經典(六)
- 七、經典(七)
- 八、經典(八)
- 九、經典(九)
- 十、經典(十)
- 十一、經典(十一)
- 十二、經典(十二)
- 其他
- 1、知識點一
- 2、面試集
- 3、負載均衡原理
- 4、LVS相關了解
- 5、微服務架構
- 6、分布式鎖實現原理
- 7、Etcd怎么實現分布式鎖
- 8、Redis的數據結構有哪些,以及實現場景
- 9、Mysql高可用方案有哪些
- 10、Go語言的棧空間管理是怎么樣的
- 11、Goroutine和Channel的作用分別是什么
- 12、Go中的鎖有哪些?三種鎖,讀寫鎖,互斥鎖,還有map的安全的鎖?
- 13、怎么限制Goroutine的數量
- 14、Goroutine和線程的區別?
- 15、中間件原理