前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给你一个理由放弃dubbo和spring cloud,拥抱华为全栈微服务解决方案servicecomb

给你一个理由放弃dubbo和spring cloud,拥抱华为全栈微服务解决方案servicecomb

作者头像
Zeal
发布2020-11-11 15:24:59
2.9K0
发布2020-11-11 15:24:59
举报
文章被收录于专栏:Hyperledger实践Hyperledger实践

1.RPC框架的评测

Martin Flower定义的微服务是基于REST,Spring cloud就是其标准的实现,通用但HTTP协议比较冗余,短连接建立也较耗时,消息体一般基于JSON串行化反串行化, 性能肯定一般。

而Dubbo默认是用netty长连接,和hession lite二进制串行化, 按理说应该比spring cloud性能要好些。

参考下turbo-rpc作者的测评

https://www.jianshu.com/p/cdd94d0853c3

结果傻眼了,阿里系的dubbo和sofa好弱,微博的motan, springwebflux都稳赢。评测都预热的了,dubbo应该是2.7,sofa是5.5都比较新的版本,不过基本都是默认配置, 但是也基本反映dubbo, sofa的RPC是改进空间的, 在阿里内部应该属于上一代的架构了。

而让人意外的是出自华为之手的servicecomb(配置hightway私有串行化协议), 稳在第一阶梯。

2.Dubbo为什么会慢?

dubbo客户端调用需要传递过多信息给服务提供方,带类名的methodName加上参数类型,参数值等,和http+json的方式比起来没好多少。

代码语言:javascript
复制
public class RpcInvocation implements Invocation, Serializable {
        private static final long serialVersionUID = -4355285085441097045L; private String methodName;
        private Class<?>[] parameterTypes;
        private Object[] arguments;
        private Map<String, String> attachments;
        private transient Invoker<?> invoker;
}

还有一些点可能就是反串行化,入参拷贝损耗, 反射调用服务等细节问题, turbo-rpc的作者也提到这些改进点,如果有时间,笔者后面再跟进源码解读。

3.为什么推荐使用servicecomb?

servicecomb实际不单单是一个RPC框架, 它定位为全栈式的微服务解决方案。dubbo其实只是一个RPC框架, 和servicecomb对等的应该是spring cloud, sofastack和spring cloud for alibaba。

如果从稳定,性能来说,servicecomb应该是首选, 分布式事务saga和tcc都支持而且都经过华为实际场景验证过的, etcd based service center, circuit breaker, edge service基本想要都优化了一套,pom.xml引入对应的handler,micorservice.yaml配置下基本就能用了,蛮傻瓜。sofastack其实也蛮稳,不过开源出来的算是HSF Lite版本,dubbo或spring cloud for alibaba还是尚待稳定和优化。

尚且不说阿里开源这些是不是KPI项目, 但后劲还是很足的, 例如新的注册和配置中心Nacos, dubbo3.x持续改进, Seata分布式事务框架等。

servicecomb蛮好, 但推广得确实比较差, 刚出来的时候还有个污点, 它的go版本涉及抄袭go micro, 具体见

https://mp.weixin.qq.com/s?__biz=MjM5MzM3NjM4MA==&mid=2654688638&idx=1&sn=ac267eeabd5e5992f203bde4b5b06dbf&chksm=bd58046d8a2f8d7b86dcd26a798ef80a290ee66bba7b8eb24b794b9c894a30fa1ba431c984f2&mpshare=1&scene=23&srcid=0209MWU5zk5rmTwJGgjpNXyr#rd

老外比较在意那些公司资助的开源, 借鉴也好参考也罢, 遵守游戏规则就好。

不过每个公司选择服务化框架也有自己的考虑,有点规模的公司有时不想依赖阿里的技术栈,可能有时就直接用中立些的spring cloud,或者自造适合自己体系的框架或组件。利益相关不大的金融公司为了稳定甚至购买阿里稳定些的商用版sofastack, 毕竟蚂蚁金服实践过。开源有时也是一个造势和影响力了。

4. 有没更猛的框架?

有的, https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=db 这个评测网算是权威, rust写的actix网络框架常年刷榜, rust真会有一席之地。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hyperledger实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.RPC框架的评测
  • 2.Dubbo为什么会慢?
  • 3.为什么推荐使用servicecomb?
  • 4. 有没更猛的框架?
相关产品与服务
分布式事务 DTF
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档