1、微服務的技術棧
微服務條目 | 落地技術 |
---|---|
服務開發 | SpringBoot,Spring,SpringMVC |
服務配置與管理 | Netflix公司的Archaius、阿里的Diamond等 |
服務註冊與發現 | Eureka、Consul、Zookeeper等 |
服務調用 | Rest、RPC、gRPC |
服務熔斷器 | Hystrix、Envoy等 |
負載均衡 | Ribbon、Nginx等 |
服務接口調用(客戶端調用服務的簡化工具) | Feign等 |
消息隊列 | Kafka、RabbitMQ、ActiveMQ等 |
服務配置中心管理 | SpringCloudConfig、Chef等 |
服務路由(API網關) | Zuul等 |
服務監控 | Zabbix、Nagios、Metrics、Specatator等 |
全鏈路追蹤 | Zipkin、Brave、Dapper等 |
服務部署 | Docker、OpenStack、Kubernetes等 |
數據流操做開發包 | SpringCloud Stream(封裝與Redis,Rabbit,Kafka等發送接收消息) |
事件消息總線 | SpringCloud Bus |
2、各類微服務框架的對比
功能點/服務框架 | Netflix/SpringCloud | Motan | gRPC | Thrift | Dubbo/DubboX |
---|---|---|---|---|---|
功能定位 | 完整的微服務架構 | RPC框架,但整合了ZK或Consul,實現集羣環境的基本服務註冊/發現 | RPC框架 | RPC框架 | 服務框架 |
支持Rest | 是,Ribbon支持多種可插拔的序列化選擇 | 否 | 否 | 否 | 否 |
支持RPC | 否 | 是 | 是 | 是 | 是 |
支持多語言 | 是(Rest形式) | 否 | 是 | 是 | 否 |
服務註冊/發現 | 是(Eureka) Eureka服務註冊表,Karyon服務端框架支持服務自注冊和健康檢查 | 是(zookeeper/consul) | 否 | 否 | 是 |
負載均衡 | 是(服務端zuul+客戶端Ribbon) zuul-服務,動態路由 雲端負載均衡 Eureka(針對中間層服務器) | 是(客戶端) | 否 | 否 | 是(客戶端) |
配置服務 | Netflix Archaius SpringCloud Config Server集中配置 | 是(zookeeper提供) | 否 | 否 | 否 |
服務調用鏈監控 | 是(zuul) Zuul提供邊緣服務,API網關 | 否 | 否 | 否 | 否 |
高可用/容錯 | 是(服務端Hystrix+客戶端Ribbon) | 是(客戶端) | 否 | 否 | 是(客戶端) |
典型應用案例 | Netflix | Sina | |||
社區活躍度 | 高 | 通常 | 高 | 通常 | 2017年7月才重啓 |
學習難度 | 中等 | 通常 | 高 | 通常 | 低 |
文檔豐富度 | 高 | 通常 | 通常 | 通常 | 高 |
其餘 | Spring Cloud Bus爲咱們應用程序帶來了更多管理端點 | 支持降級 | Netflix內部在開發集成gRPC | IDL定義 | 實踐公司比較 |
··ios