微服务框架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的区别_第1张图片
微服务框架Dubbo、SpringCloud和Kubernetes的区别_第2张图片
NA 表示没有
在这里插入图片描述
k8s推荐使用Fluentd进行日志监控
在这里插入图片描述

Metricd监控
在这里插入图片描述

Dubbo、SpringCloud和K8s优点和缺点

微服务框架Dubbo、SpringCloud和Kubernetes的区别_第3张图片

选择建议

微服务框架Dubbo、SpringCloud和Kubernetes的区别_第4张图片

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

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

你可能感兴趣的:(微服务)