再谈微服务-框架功能比较

功能 Hessian Montan rpcx gRPC Thrift Dubbo Dubbox Spring Cloud
开发语言 跨语言 Java Go 跨语言 跨语言 Java Java Java
分布式(服务治理) × × ×
多序列化框架支持 hessian √(支持Hessian2、Json,可扩展) ×只支持protobuf) ×(thrift格式)
多种注册中心 × × ×
管理中心 × × ×
跨编程语言 ×(支持php client和C server) × × × ×
支持REST × × × × × ×
关注度
上手难度
运维成本
开源机构 Caucho Weibo Apache Google Apache Alibaba Dangdang Apache

实际场景中选择

  1. Spring Cloud : Spring 全家桶,用起来很舒服,只有你想不到,没有它做不到。可惜因为发布的比较晚,国内还没出现比较成功的案例,大部分都是试水,不过毕竟有 Spring 作背景,还是比较看好。
  2. Dubbox:相对于 Dubbo 支持了 REST,估计是很多公司选择 Dubbox 的一个重要原因之一,但如果使用 Dubbo 的 RPC 调用方式,服务间仍然会存在 API 强依赖,各有利弊,懂的取舍吧。
  3. Thrift: 如果你比较高冷,完全可以基于 Thrift 自己搞一套抽象的自定义框架吧。
  4. Montan:可能因为出来的比较晚,目前除了新浪微博 16 年初发布的,
  5. Hessian:如果是初创公司或系统数量还没有超过 5 个,推荐选择这个,毕竟在开发速度、运维成本、上手难度等都是比较轻量、简单的,即使在以后迁移至 SOA,也是无缝迁移。
  6. rpcx/gRPC:在服务没有出现严重性能的问题下,或技术栈没有变更的情况下,可能一直不会引入,即使引入也只是小部分模块优化使用。

你可能感兴趣的:(再谈微服务-框架功能比较)