常见问题

咨询

Q: SOFARPC 是蚂蚁金服内部使用的版本吗?

是的,SOFARPC 有良好的扩展接口,内部使用的版本就是在开源的版本多一些扩展实现。例如我们云上的商业版本集成了蚂蚁金融云的共享版注册中心、链路跟踪等产品;蚂蚁内部的版本集成了蚂蚁内部的注册中心、LDC路由等特性扩展。

Q: SOFARPC 内部是用 Zookeeper 作为注册中心的吗?可以集成其它 etcd 等注册中心吗?

在蚂蚁内部使用的是蚂蚁自研的注册中心产品。SOFARPC 的注册中心模块是可扩展的,对内对外使用的都是一套核心接口。目前开源的版本中集成了 Zookeeper,其它的注册中心实现社区已经在集成中。

Q: 与Dubbo对比?

Dubbo 是阿里集团开源的一款非常优秀的RPC框架,高性能,具有良好的扩展性。Dubbo在国内开源界起步较早,使用者较多,开源生态更加丰富,目前已进入Apache基金会进行孵化。Dubbo最早在阿里巴巴B2B部门广泛使用。更多信息这里就不多介绍了。

SOFARPC 最早起源于阿里集团内部的 HSF,但是经过了蚂蚁金服集团内部多年的独立发展,目前脱离为一个独立的产品。SOFARPC 在协议,网络,路由,可扩展性等层面都进行了大量的改造和优化的工作,以满足蚂蚁金服大规模金融级的业务场景。在蚂蚁金服内部,SOFARPC 在蚂蚁中间件(SOFAStack)的生态下,有完善的微服务技术栈支持,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics监控度量等等。截止 2017 年双十一,SOFARPC 已经被蚂蚁几千个系统所使用,生产环境发布的接口数量超过了几万。

但是在开源领域,SOFARPC 目前还是一个起步阶段,开源生态还在建设当中,随着开源计划的推进,我们会在后续的版本里增加各个周边组件,完善微服务技术栈。同时也欢迎大家来贡献,共同打造 SOFAStack。

对于性能的对比,类似协议下使用的技术点都是差不多的,所以基本上可比性不高。
对于扩展性的对比,两者都具有良好的扩展性。
对于其它功能差异点的话,这里列一些已经开源或者即将开源的功能点供参考:SOFARPC 协议上将支持 HTTP/2、GRPC,能力上如服务预热权重、自动故障降级、协商机制、CRC数据校验等,结合 SOFABoot 可以实现 RPC 框架与业务的类隔离防止类冲突等等,另外 SOFARPC 在跨单元机房的路由,包括配合服务注册体系实现的对异地多活的支撑也是非常有特色的,期望后面能逐步跟大家分享讨论,甚至形成行业标准。而 SOFARPC 结合内部微服务下做一致性的框架实现的「微交易」架构也是蚂蚁在金融领域非常有价值的沉淀,也是跟 dubbo 体系不一样的地方。

Q: 对比其他 RPC 框架有何优势?

作为RPC框架,最基本的能力就是 RPC 调用,其它都是些性能、扩展性、功能性的差异,可能各家的侧重点不一样。

SOFARPC 在蚂蚁金服内部大规模应用足以证明 SOFARPC 是一款可靠的生产级的 RPC 框架。而蚂蚁金服的金融的属性决定了 SOFARPC 在金融场景下的功能侧重点。

Q: 和Spring Cloud 的对比?

SOFARPC 定位在 RPC 框架,和 Spring Cloud 的比较不在一个对比维度上面。 Spring Cloud 可对比的是 SOFAStack,SOFAStack 是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics监控度量,以及分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,是一套分布式架构的完整的解决方案。SOFAStack 的各个组件会在未来逐渐开源。

另外,SOFARPC 的 Starter 是基于 Spring Boot 开发的,Spring Cloud 的各个组件也是基于 Spring Boot 开发的,所以两者并不冲突。

研发类

Q: 为什么不使用 JDK8

SOFARPC 在蚂蚁金服内部还有JDK6的使用场景,所以编译选择JDK7,而编译级别选择JDK6。