- Published on
java经典框架-springcloud
- Authors

- Name
- MissTree
springcloud、kubernetes(docker)、Dubbo的区别和联系
| 特性 | Dubbo | springcloud | kubernetes |
|---|---|---|---|
| 服务发现和LB | ZK/Nacos + Client | Eureka + Ribbon | Service |
| API网关 | NA | Zuul | Ingress |
| 配置管理 | Diamond/Nacos | Spring Cloud Config | ConfigMaps/Secrets |
| 容错限流 | Sentinel | Hystrix | Healt.Check/Probe/ServiceMesh |
| 日志监控 | ELK | ELK | EFK |
| Metrics监控 | Dubbo Admin/Monitor | Actuator/MicroMeter + Prometheus | Heapster+Prometheus |
| 调用链监控 | NA | SpringCloud Sleuth/Zipkin | Jaeger/Zipkin |
| 应用打包 | Jar/War | Uber Jar/War | Docker lmage/Helm |
| 服务框架 | Dubbo RPC | Spring(Boot) REST | 框架无关 |
| 发布和调度 | NA | NA | Scheduler |
| 自动伸缩和自愈 | NA | NA | Scheduler/AutoScaler |
| 进程隔离 | NA | NA | Docker/Pod |
| 环境管理 | NA | NA | Namespace/Auththorization |
| 资源配额 | NA | NA | CPU/Mem Limit ,Namespace Quotas |
| 流量治理 | ZK + Client | NA | ServiceMesh |
springcloud 与 springboot 高度集成 ,对非 Java 语言支持较弱。运行环境为 jvm,需要依赖 jvm 环境。相对吃内存资源
- 适合中小型微服务系统
- 云原生应用开发
- Java 技术栈的微服务架构
kubernetes 与 docker 高度集成,对非 Java 语言支持较好。运行环境为容器,不需要依赖 jvm 环境。相对节省内存资源,但是学习曲线陡峭,资源开销大、容器启动时间可能影响低延迟场景、容器内问题排查比传统应用更复杂
- 多语言混合架构
- 大规模分布式系统
- 云原生基础设施
- 混合云/跨云部署
dubbo 在国内比较流行,国外使用范围小,对非 Java 语言支持较好。运行环境为 jvm,需要依赖 jvm 环境。相对节省内存资源
- 高性能 RPC 通信
- Java 技术栈的微服务
- 内部服务治理
- 逐步将单体应用拆分为微服务
- 逐渐被 kubernetes 和 SpringCloud 生态取代