原文地址 https://www.zhihu.com/question/34101033/answer/743107819
支持多语言,功能丰富,文档一般,重量级:一个全面的RPC框架,支持C ++,C#,Java,JavaScript,Python等
Finagle是 Twitter 基于 Netty 开发的支持容错的、协议无关的 RPC 框架,该框架支撑了 Twitter 的核心服务。Finagle是JVM的可扩展RPC系统,用于构建高并发服务器。Finagle为多个协议实现统一的客户端和服务器API,旨在实现高性能和并发性。Finagle的大多数代码都是协议无关的,简化了新协议的实现。整个设计跟Dubbo已经比较接近了。
Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
Spring Cloud全家桶大家一般都很熟悉了。它为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态),使用Spring Cloud开发人员可以快速站起来实现这些模式的服务和应用程序。它们适用于任何分布式环境。
腾讯出品,Tars是一个基于名称服务和Tars协议的高性能RPC框架,也是集成管理平台,并通过灵活的时间表实现托管服务。
新浪微博出品,Motan是一套基于java开发的RPC框架,除了常规的点对点调用外,Motan还提供服务治理功能,包括服务节点的自动发现、摘除、高可用和负载均衡等。Motan具有良好的扩展性,主要模块都提供了多种不同的实现,例如支持多种注册中心,支持多种rpc协议等。
百度内最常使用的工业级RPC框架, 有1,000,000+个实例(不包含client)和上千种多种服务, 在百度内叫做"baidu-rpc",目前只开源C++版本。
补充一个 Grpc+etcd,轻量级的 golang 版本。