微服务框架Dubbo、SpringCloud和Kubernetes的区别

学习课程连接:
Dubbo、SpringCloud和Kubernetes该如何选型?

Dubbo、SpringCloud 和 Kubernetes,是当前开发微服务的三个主流开源框架和平台。
在主流互联网公司的架构师面试中,这三者被问到的频率也极高。那这三个技术到底有何异同,分别适用于什么场景,该如何选择?
dubbo是最早一代服务框架。之后演进出spring cloud,spring cloud基本涵盖dubbo的功能,扩展增加了网关等组件。前几年又演进出k8s,它的核心功能确实是容器发布调度,但是它也融合了dubbo/spring cloud的功能,比如服务发现,API网关/ingress等。

长期看,dubbo/spring cloud会被k8s所取代。

微服务的关注点:

  1. 配置管理 如数据库连接字符串,缓存的过期时间等
  2. 服务发现和负载均衡
  3. 弹性和容错
  4. API管理
  5. 服务安全
  6. 日志监控
  7. Metrics监控
  8. 调用链监控
  9. 调度和发布
  10. 自愈和自动伸缩

Dubbo、SpringCloud和K8s的横向对比

微服务框架Dubbo、SpringCloud和Kubernetes的区别
微服务框架Dubbo、SpringCloud和Kubernetes的区别
NA 表示没有
微服务框架Dubbo、SpringCloud和Kubernetes的区别
k8s推荐使用Fluentd进行日志监控
微服务框架Dubbo、SpringCloud和Kubernetes的区别

Metricd监控
微服务框架Dubbo、SpringCloud和Kubernetes的区别

Dubbo、SpringCloud和K8s优点和缺点

微服务框架Dubbo、SpringCloud和Kubernetes的区别

选择建议

微服务框架Dubbo、SpringCloud和Kubernetes的区别

为什么springcloud比较消耗资源呢?放在容器里更加消耗呢?

通常情况下(具体看应用依赖的starters),springboot应用会加载很多的依赖项,有些其实并非必须,所以springboot应用通常会比较占资源。另外,容器本身也是需要占用OS资源的,所以springboot + 容器的组合通常会更加占资源。