Dubbo、SpringCloud和Kubernetes优缺点
总所周知,Dubbo、SpringCloud和Kubernetes是当前三个主流的开源框架和平台。
服务化框架和平台的选择是搭建微服务的一个基础,非常重要。其中Dubbo是阿里巴巴开源的,SpringCloud是netflix开源的,Kubernetes是谷歌开源的。它们都是分布式微服务框架平台的一套解决办法。值得一提的是,这3种产品其功能上是有重叠的,部分功能还可能是排他的,所以说不要相互之间进行混搭使用,架构保持一致性,维护起来也方便。
微服务的最终目的是要实现业务逻辑,实现业务价值。为了让开发人员更专注于业务逻辑的开发,通常微服务需要底层的基础设施的支撑,这些基础设施的支撑称为微服务公共关注点(Common Concerns)。如下图所示:
服务发现与负载均衡中,dubbo主要是基于Zookeeper实现的,阿里还开源了一个产品Nacos,其功能像Java版的Consul,Nacos后续可能会替换zk成为dubbo首选的服务发现机制。
在API网关中,阿里没有开源网关,而K8s中则是定义了名叫Ingress规范,具体可以采用不同的实现,比如说Nginx,Envoy或者Traefik。
在配置管理中,Nacos也具备配置的功能。SpringCloud采用的是Config,其后端是基于Git进行配置管理的。
在服务框架中,K8s是与框架无关的,只认容器,不同的语言栈都可以住在K8s中,这是最大的亮点。
在自动伸缩和自愈方面,K8s具有自动故障和自愈的能力,自动伸缩需要引入额外的组件,完全实现是需要一定的门槛,感兴趣可以关注一下。
在进程隔离方面,K8s是通过容器进行进程隔离的,同时还引入Pod进一步对服务进行隔离。
在环境管理方面,K8s是内置Namespace进行逻辑隔离的,可以实现多环境,各个环境可以单独配置认证授权机制。
在流量治理方面,这里的流量治理指的是高级的流量调度、A、B和蓝绿部署的能力。Dubbo通过zk+client是支持一定的流量调度能力的。
Dubbo、SpringCloud是框架组件,K8s是平台。
所以我们在理解服务的关注点,根据企业上下文考量后选择,尽量不要混搭,保持体系的一致性。
看了大牛的分析,自己学到了很多。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务
喜欢的朋友记得点赞、收藏、关注哦!!!
更多推荐



所有评论(0)