# 分布式RPC框架性能大比拼

参考博客：<http://colobu.com/2016/09/05/benchmarks-of-popular-rpc-frameworks/>

最新版：<http://colobu.com/2018/01/31/benchmark-2018-spring-of-popular-rpc-frameworks/>

## 本文测试的RPC框架 <a href="#ben-wen-ce-shi-de-rpc-kuang-jia" id="ben-wen-ce-shi-de-rpc-kuang-jia"></a>

* [rpcx](https://github.com/smallnest/rpcx)

  : 基于Go的服务治理的rpc框架、客户端支持跨语言
* [grpc](https://grpc.io/)

  : Google 出品的跨语言rpc框架，很弱的(实验性的)负载均衡, 测试使用的是grpc-go
* [go std rpc](https://golang.org/pkg/net/rpc/)

  : Go标准库的rpc, 不支持跨语言(jsonrpc支持json rpc 1.0)
* [thrift](https://thrift.apache.org/)

  : 跨语言的rpc框架，facebook贡献
* [dubbo](https://thrift.apache.org/)

  : 国内较早开源的服务治理的Java rpc框架，虽然在阿里巴巴内部竞争中落败于HSF，沉寂了几年，但是在国内得到了广泛的应用，目前dubbo项目又获得了支持，并且dubbo 3.0也开始开发
* [motan](https://thrift.apache.org/)

  : 微博内部使用的rpc框架，底层支持java,生态圈往service mesh发展以支持多语言
* [hprose](https://github.com/hprose)

  : 国内开发人员开发的一个跨语言的rpc框架，非服务治理但是性能高效
* [twirp](https://github.com/twitchtv/twirp)

  : twitch.tv刚刚开源的一个restful风格的rpc框架
* [go-micro](https://github.com/micro/go-micro)

  : Go语言的一个服务治理rpc框架， 在测试中发现性能不太好，所以没有继续测试，相关的测试代码已在github库中
* [go kit](https://github.com/go-kit/kit)

  : 欢迎提供测试代码
* [腾讯 Tars](https://github.com/Tencent/Tars)

  :腾讯公司的rpc框架， 欢迎提供c++ benchmark代码
* [百度 brpc](https://github.com/brpc/brpc)

  : 百度公司的rpc框架， 欢迎提供c++ benchmark代码
* [spring cloud](http://projects.spring.io/spring-cloud/)

  : 本次没有测试


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lxdd.gitbook.io/galaxy/knowledge/rpc/fen-bu-shi-rpc-kuang-jia-xing-neng-da-bi-pin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
