?
?
?
?2.微服務的優缺點
優點
- 單一職責原則
- 每個服務足夠內聚,足夠小,代碼容易理解,這樣能聚焦一個指定的業務功能或業務需求;
- 開發簡單,開發效率提高,一個服務可能就是專一的只干一件事;
- 微服務能夠被小團隊單獨開發,這個小團隊是2-5人的開發人員組成;
- 微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。
- 微服務能使用不同的語言開發。
- 易于和第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如:jenkinns,Hudson,bamboo
- 微服務易于被一個開發人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果,無需通過合作才能體現價值。
- 微服務允許你利用融合最新技術。
-
微服務只是業務邏輯的代碼,不會和HTML,CSS或其他界面混合。
-
每個微服務都有自己的存儲能力,可以有自己的數據庫,也可也有統一數據庫
缺點
- 開發人員要處理分布式系統的復雜性
- 多服務運維難度,隨著服務的增加,運維的壓力也在增大
- 系統部署依賴
- 服務間通信成本
- 數據一致性
- 系統集成測試
- 性能監控。。。
3.微服務有哪些技術棧
微服務相關技術棧
微服務條目
落地技術
服務開發 SpringBoot.Spring,SpringMvc 服務配置與管理 Netflix公司的Archaius、案例的Diamond等 服務注冊與發現 Eurerka,Consul,zookeeper等 服務調用 Rest、RPC、gPRC 服務熔斷器 Hystrix、Envoy等 負載均衡 Ribbon、Nginx等 服務接口調用(客戶端調用服務的簡化工具) Feign等 消息列隊 Kafka、RaabbitMQ、ActiveMQ等 服務配置中心管理 SpringCloudConfig、Chef等 服務路由(API網關) Zuul等 服務監控 Zabbix、Nagios、Metrics、Specatator等全鏈路追蹤
Zipkin、Brave、Dapper等 服務部署Docker、OpenStack、Kubernetes等
數據流操作開發包 SpringCloud Stream(封裝與Redis、Rabbit。Kafka等發送接收消息)事件消息總線 | SpringCloud Bus |
?
?
?