微服務總結及對比
阿新 • • 發佈:2018-12-26
一、微服務技術棧總結
微服務條目 | 落地技術 |
服務開發 | SpringCloud、Spring、SpringMVC |
服務配置與管理 | Netfix公司的Archaius、阿里的Diamond |
服務註冊與發現 | Eureka、Consul、Zookeeper |
服務呼叫 | Rest、RPC、gRPC |
服務熔斷器 | Hystrix、Envoy |
負載均衡 | Ribbon、Nginx |
服務介面呼叫(客戶端呼叫服務的簡化工具) | Feign |
訊息佇列 | Kafka、RabbitMQ、ActiveMQ |
服務配置中心管理 | SpringCloud Config、Chef |
服務路由(API閘道器) | Zuul |
服務監控 | Zabbix、Nagios、Metrics、Spectator |
全鏈路追蹤 | Zipkin、Brave、Dapper |
服務部署 |
Docker、OpenStack、Kubernetes |
資料流操作開發包 | SpringCloud Stream |
事件訊息匯流排 | SpringCloud Bus |
二、微服務框架功能對比
功能點/服務框架 | 備選方案 | ||||
Netflix/SpringCloud | Dubbo/DubboX | Motan(新浪) | gRPC | Thrift(Facebook) | |
功能定位 |
完整的微服務架構 | 服務框架 | RPC框架,但整合了ZK或Consul,實現叢集環境的基本的服務註冊/發現 | RPC框架 | RPC框架 |
支援Rest | 是 Ribbon支援多種可插拔的序列化選擇 | 否 | 否 | 否 | 否 |
支援RPC | 否 | 是 | 是(Hession2) | 是 | 是 |
支援多語言 | 是 | 否 | 否 | 是 | 是 |
服務註冊/發現 | 是(Eureka) Eureka服務註冊,Karyon服務端框架支援服務自注冊和健康檢查 | 是 | 是(zookeeper/consul) | 否 | 否 |
負載均衡 | 是(服務端zuul+客戶端Ribbon) Zuul服務動態路由 | 是(客戶端) | 是(客戶端) | 否 | 否 |
配置服務 | Netflix Archaius SpringCloud Config Server集中配置 | 否 | 是(zookeeper提供) | 否 | 否 |
服務呼叫鏈監控 | 是(zuul) | 否 | 否 | 否 | 否 |
高可用/容錯 | 是(服務端Hystrix+客戶端Ribbon) | 是(客戶端) | 是(客戶端) | 否 | 否 |
典型應用案例 | Netflix | Sina | |||
社群活躍度 | 高 | 一般 | 一般 | 高 | 一般 |
文件豐富度 | 高 | 高 | 一般 | 一般 | 一般 |
三、Dobbu與SpringCloud對比
Dubbo | SpringCloud | |
服務註冊中心 | Zookeeper | Spring Cloud Netflix Eureka |
服務呼叫方式 | RPC | REST API |
服務監控 | Dubbo-monitor | Spring Boot Admin |
斷路器 | 不完善 | Spring Cloud Netflix Hystrix |
服務閘道器 | 無 | Spring Cloud Netflix Zuul |
分散式配置 | 無 | Spring Cloud Config |
服務跟蹤 | 無 | Spring Cloud Sleuth |
訊息匯流排 | 無 | Spring Cloud Bus |
資料流 | 無 | Spring Cloud Stream |
批量任務 | 無 | Spring Cloud Task |