【新开源报道 5】百度正式开源其 RPC 框架 brpc
开源最前线(ID:OpenSourceTop) 猿妹 整编
综合自:GitHub、开源中国、InfoQ 等
9 月 14 日,百度正式在 GitHub 上基于 Apache 2.0 协议开源了其 RPC 框架 brpc。brpc 是一个基于 protobuf 接口的 RPC 框架,在百度内部称为“baidu-rpc”,brpc 目前支撑百度内部大约 75 万个同时在线的实例(不含 client),超过 500 种服务(去年的统计,现在已不统计这类数据)。
百度 PRC 框架 brpc
授权协议:Apache - 2.0
开发语言:C/C++
操作系统:跨平台
开发厂商:百度
Github:https://github.com/brpc/brpc
brpc 开发于 2014 年,主要使用的语言是 C++ 和 Java,是百度内部使用最为广泛的 RPC 框架,它经受了高并发高负载的生产环境验证,并支撑了百度内部大约 75 万个同时在线的实例。据 InfoQ 了解,百度内部曾有多款 RPC 框架,甚至在 2014 年时还开源过另外一款 RPC 框架 sofa-pbrpc。
Hadoop、Table、Mola(另一种广泛使用的存储)、高性能计算、模型训练、大量的在线检索服务都使用了 brpc。brpc 第一次统一了百度内分布式系统和业务线的通信框架。
RPC真正的亮点是:可靠性、易用性和定位问题的便利性。服务中不要出现不可解释的长尾,程序的可变项要尽量少,各种诡异问题要有工具支持快速排查。总结为以下特性:
● 囊括百度内部所有 RPC 协议,支持多种第三方协议
● 模块化设计,层次清晰,很容易添加自定义协议
● 全面的服务发现、负载均衡、组合访问支持
● 可视化的内置服务和调试工具
brpc 在架构上强调“在不牺牲易用性的前提下增强可扩展性”,比如 brpc 支持非常多的协议,在百度内部一个 brpc server 同端口可以支持二十几种协议,这对于服务的平滑迁移就非常好用。
为什么要将 brpc 开源,官方说法如下:
接下去还有不少依赖 RPC 的百度系统要开源。RPC作为最基础的组件,开源不仅仅是为了自身,也是为其它开源项目铺路,比如接下去百度还将开源基于 brpc 的 RAFT 库,搭建高可用分布式系统非常方便;以及使用 brpc 的 bigflow,让流式计算变得很顺手。这些年百度对开源的认识也在不断加深,开源看似曝光了百度的核心技术,但带来的生态影响力更重要。从Apollo、PaddlePaddle开始,百度真的开始拥抱开源了。
附:新开源报道汇总
《【新开源报道 4】IBM 开源动态的应用服务器运行时环境 Open Liberty》
《【新开源报道 3】微信后台团队最近开源力作:PhxQueue分布式队列》
●本文编号36,以后想阅读这篇文章直接输入36即可
●输入m获取文章目录