各大主流微服务技术SpringCloud、SpringCloudAlibaba、Dubbo、Motan、MSEC架构选型对比

开源微服务技术选型功能技术对比

SpringCloudDubboMotanMSEC
功能微服务完整方案服务治理框架服务治理框架服务治理框架
通信方式Rest/HttpRPCRPC/Hessian2Protocol buffer
服务发现Eureka(AP)/Conusl/ZKNacos、ZKZK/Conusl只有服务发现
负载均衡Ribbon客户端负载客户端负载客户端负载
容错策略6种容错策略6种容错策略2种容错策略自动容错
熔断机制HystrixSentinel提供过载保护
配置中心Spring Cloud ConfigNacos
网关Zuul、Gateway
服务监控Hystrix+TurbineDubbo+MonitorMonitor
链路监控Sleuth+Zipkin
多语言Rest支持多语言JavaJavaJava、C++、PHP
社区高(背靠Spring)高(背靠阿里)一般未知

技术选型考虑

技术选型时,对于中小型公司而言,使用 SpringCloud 会极大的减少开发成本,只需了解原理以及如何使用,就能进行开发。但是对于大型公司而言,更倾向使用Dubbo,比较灵活,可以很方便的拓展自主研发一些组件,虽然人力成本会增加,但是能全面的把控技术风险。

为什么考虑SpringCloudAlibaba

我们这里为什么选择SpringCloudAlibaba呢,主要因为SpringCloud的组件:服务注册与发现的 Eureka、服务限流降级的 Hystrix、网关 Zuul都已经停止更新了。当然,Spring这个我们Java界的老大哥也迅速给出了新的一套组件解决方案,如果想用还是可以继续用的,也只不过是权衡取舍的问题了,两套组件用哪一套更好?

SpringCloudAlibaba和SpringCloud的区别及技术最终选型

SpringCloudAlibaba实际上是对我们的SpringCloud组件增强功能,是SpringCloud的增强框架,可以兼容SpringCloud原生组件和SpringCloudAlibaba的组件。当然如果用了SpingCloudAlibaba还是建议使用阿里提供的这些组件的。
我在进行技术预研时对SpringCloud和SpringCloudAlibaba两套组件都一一进行了实验,最终还是选择了SpringCloudAlibaba,无论是开发架构的简单、方便程度还是技术社区的活跃度,还有就是它提供的一整套完整的解决方案生态:分布式事务、分布式任务调度、消息队列RocketMQ等等阿里系的一些组件还是挺完善强大的。

经过一系列的对比,最终选择的技术框架体系,基础的技术架构如图:

在这里插入图片描述

使用统一的微服务框架有一个比较严重的问题:框架更新成本很高。每次框架升级,都需要所有应用服务配合升级。当然,一般会使用兼容方案,留出一段并行时间等待所有应用服务升级。但是如果应用服务非常多时,升级时间可能会非常漫长。并且有一些很稳定几乎不更新的应用服务,其负责人可能会拒绝升级……因此,使用统一微服务框架需要完善的版本管理方法和开发管理规范。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清晨先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值