Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
B
brpc
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
brpc
Commits
a9cd5bb3
Commit
a9cd5bb3
authored
Sep 18, 2017
by
gejun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
polish descriptions in benchmark.md
parent
c0124ec9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
8 deletions
+8
-8
benchmark.md
docs/cn/benchmark.md
+8
-8
No files found.
docs/cn/benchmark.md
View file @
a9cd5bb3
...
...
@@ -16,27 +16,27 @@ NOTE: following tests were done in 2015, which may not reflect latest status of
## UB
com组(INF前身)在08年开发的RPC框架,在百度产品线广泛使用,已被brpc代替。UB的每个请求独占一个连接(连接池),在大规模服务中每台机器都需要保持大量的连接,限制了其使用场景,像百度的分布式系统都不
用UB。UB只支持nshead+mcpack协议,也没怎么考虑扩展性,所以增加新协议和新功能往往要调整大段代码,在实践中大部分人“知难而退”了。UB缺乏调试和运维接口,服务的运行状态对用户基本是黑盒,只能靠低效地打日志来追踪问题,服务出现问题时常要拉上维护者一起排查,效率很低。UB有多个变种:
百度在08年开发的RPC框架,在百度产品线广泛使用,已被brpc代替。UB的每个请求独占一个连接(连接池),在大规模服务中每台机器都需要保持大量的连接,限制了其使用场景,像百度的分布式系统没有
用UB。UB只支持nshead+mcpack协议,也没怎么考虑扩展性,所以增加新协议和新功能往往要调整大段代码,在实践中大部分人“知难而退”了。UB缺乏调试和运维接口,服务的运行状态对用户基本是黑盒,只能靠低效地打日志来追踪问题,服务出现问题时常要拉上维护者一起排查,效率很低。UB有多个变种:
*
ubrpc:
INF
在10年基于UB开发的RPC框架,用.idl文件(类似.proto)描述数据的schema,而不是手动打包。这个RPC有被使用,但不广泛。
*
ubrpc:
百度
在10年基于UB开发的RPC框架,用.idl文件(类似.proto)描述数据的schema,而不是手动打包。这个RPC有被使用,但不广泛。
-
nova_pbrpc:
网盟
在12年基于UB开发的RPC框架,用protobuf代替mcpack作为序列化方法,协议是nshead + user's protobuf。
-
public_pbrpc:
INF
在13年初基于UB开发的RPC框架,用protobuf代替mcpack作为序列化方法,但协议与nova_pbrpc不同,大致是nshead + meta protobuf。meta protobuf中有个string字段包含user's protobuf。由于用户数据要序列化两次,这个RPC的性能很差,没有被推广开来。
-
nova_pbrpc:
百度网盟团队
在12年基于UB开发的RPC框架,用protobuf代替mcpack作为序列化方法,协议是nshead + user's protobuf。
-
public_pbrpc:
百度
在13年初基于UB开发的RPC框架,用protobuf代替mcpack作为序列化方法,但协议与nova_pbrpc不同,大致是nshead + meta protobuf。meta protobuf中有个string字段包含user's protobuf。由于用户数据要序列化两次,这个RPC的性能很差,没有被推广开来。
我们以在
网盟
广泛使用的nova_pbrpc为UB的代表。测试时其代码为r10500。早期的UB支持CPOOL和XPOOL,分别使用
[
select
](
http://linux.die.net/man/2/select
)
和
[
leader-follower模型
](
http://kircher-schwanninger.de/michael/publications/lf.pdf
)
,后来提供了EPOOL,使用
[
epoll
](
http://man7.org/linux/man-pages/man7/epoll.7.html
)
处理多路连接。鉴于产品线大都是用EPOOL模型,我们的UB配置也使用EPOOL。UB只支持
[
连接池
](
client.md#连接方式
)
,结果用“
**ubrpc_mc**
"指代(mc代表"multiple
我们以在
百度网盟团队
广泛使用的nova_pbrpc为UB的代表。测试时其代码为r10500。早期的UB支持CPOOL和XPOOL,分别使用
[
select
](
http://linux.die.net/man/2/select
)
和
[
leader-follower模型
](
http://kircher-schwanninger.de/michael/publications/lf.pdf
)
,后来提供了EPOOL,使用
[
epoll
](
http://man7.org/linux/man-pages/man7/epoll.7.html
)
处理多路连接。鉴于产品线大都是用EPOOL模型,我们的UB配置也使用EPOOL。UB只支持
[
连接池
](
client.md#连接方式
)
,结果用“
**ubrpc_mc**
"指代(mc代表"multiple
connection")。虽然这个名称不太准确(见上文对ubrpc的介绍),但在本文的语境下,请默认ubrpc = UB。
## hulu-pbrpc
INF在13年基于saber(kylin变种)和protobuf实现的RPC框架,hulu在实现上有较多问题:未封装的引用计数,混乱的生命周期,充斥的race conditions和ABA problems,运行质量不可靠,比如短链接从来没有能正常运行过。之后迅速
被brpc代替,测试时其代码为
`pbrpc_2-0-15-27959_PD_BL`
。hulu-pbrpc只支持单连接,结果用“
**hulu-pbrpc**
"指代。
百度在13年基于saber(kylin变种)和protobuf实现的RPC框架,hulu在多线程实现上有较多问题,已
被brpc代替,测试时其代码为
`pbrpc_2-0-15-27959_PD_BL`
。hulu-pbrpc只支持单连接,结果用“
**hulu-pbrpc**
"指代。
## brpc
INF在2014年底开发至今的rpc产品,支持百度内所有协议(不限于protobuf),并第一次统一了百度
内主要分布式系统的RPC框架。测试时代码为r31906(开发请使用@ci-base保持更新)
。brpc既支持单连接也支持连接池,前者的结果用"
**baidu-rpc**
"指代,后者用“
**baidu-rpc_mc**
"指代。
INF在2014年底开发至今的rpc产品,支持百度内所有协议(不限于protobuf),并第一次统一了百度
主要分布式系统和业务线的RPC框架。测试时代码为r31906
。brpc既支持单连接也支持连接池,前者的结果用"
**baidu-rpc**
"指代,后者用“
**baidu-rpc_mc**
"指代。
## sofa-pbrpc
大搜
在13年基于boost::asio和protobuf实现的RPC框架,有多个版本,咨询相关同学后,确认ps/opensource下的和github上的较新,且会定期同步。故测试使用使用ps/opensource下的版本。测试时其代码为
`sofa-pbrpc_1-0-2_BRANCH`
。sofa-pbrpc只支持单连接,结果用“
**sofa-pbrpc**
”指代。
百度大搜团队
在13年基于boost::asio和protobuf实现的RPC框架,有多个版本,咨询相关同学后,确认ps/opensource下的和github上的较新,且会定期同步。故测试使用使用ps/opensource下的版本。测试时其代码为
`sofa-pbrpc_1-0-2_BRANCH`
。sofa-pbrpc只支持单连接,结果用“
**sofa-pbrpc**
”指代。
## apache thrift
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment