人的知识就好比一个圆圈,圆圈里面是已知的,圆圈外面是未知的。你知道得越多,圆圈也就越大,你不知道的也就越多。

0%

微服务-技术栈选型

微服务公共关注点

微服务公共关注点

开源框架/平台

目前,微服务主流开源框架/平台有 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
小礼物走一走,来 Github 关注我