微服务公共关注点
开源框架/平台
目前,微服务主流开源框架/平台有 Dubbo、Spring Cloud 以及 k8s。
横向对比
Dubbo | Spring Cloud | k8s | |
---|---|---|---|
配置管理 | Diamond->Nacos | Spring Cloud Config | ConfigMap/Secrets |
服务发现与负载均衡 | ZooKeeper->Nacos + Client | Eureka + Ribbon -> Spring Cloud Consul + Spring Cloud OpenFeign | Service |
容错限流 | Sentinel | Hystrix -> Spring Cloud Circuit Breaker(Resilience4j) | HealthCheck/Probe/ServiceMesh |
API管理 | |||
服务安全 | |||
日志监控 | ELK | ELK | EFK |
Metrics 监控 | Dubbo Admin/Monitor | Actuator/MicroMeter + Prometheus /Heapster + Prometheus | |
调用链监控 | NA | Spring Cloud Sleuth(Zipkin) | Jaeger/Zipkin |
调度和发布 | NA | NA | Scheduler |
自动伸缩和治愈 | NA | NA | Scheduler/AutoScaler |
流量治理 | ZooKeeper + Client | NA | ServiceMesh |
服务框架 | Dubbo RPC | SpringBoot Rest | 框架无关 |
应用打包 | Jar/War | Uber Jar/War | Docker Image/Helm |
进程隔离 | NA | NA | Docker/Pod |
环境管理 | NA | NA | Namespace/Authorization |
资源配额 | NA | NA | CPU/Mem Limit, Namespace Quotas |
优劣对比
Dubbo | Spring Cloud | k8s | |
---|---|---|---|
亮点 | 阿里背书 成熟稳定 RPC 高性能 流量治理 |
Netflix/Pivotal 背书 社区活跃 开发体验好 抽象组件化好 |
谷歌背书 平台抽象 全面覆盖微服务关注点(发布) 语言栈无关 社区活跃 |
不足 | 技术较老 耦合性高 JVM only 国外社区小 |
JVM only 运行耗资源 |
偏 DevOps 和运维 重量复杂 技术门槛高 |
建议
- 理解微服务关注点,根据企业上下文综合考量
- 尽量不要混搭,保持体系一致性
- 个人倾向 k8s + Spring Boot