查看原文
其他

【新开源报道 5】百度正式开源其 RPC 框架 brpc

2017-09-23 开源最前线
开源最前线(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 简介


brpc 开发于 2014 年,主要使用的语言是 C++ 和 Java,是百度内部使用最为广泛的 RPC 框架,它经受了高并发高负载的生产环境验证,并支撑了百度内部大约 75 万个同时在线的实例。据 InfoQ 了解,百度内部曾有多款 RPC 框架,甚至在 2014 年时还开源过另外一款 RPC 框架 sofa-pbrpc。


Hadoop、Table、Mola(另一种广泛使用的存储)、高性能计算、模型训练、大量的在线检索服务都使用了 brpc。brpc 第一次统一了百度内分布式系统和业务线的通信框架。


brpc 特性


RPC真正的亮点是:可靠性、易用性和定位问题的便利性。服务中不要出现不可解释的长尾,程序的可变项要尽量少,各种诡异问题要有工具支持快速排查。总结为以下特性:

● 囊括百度内部所有 RPC 协议,支持多种第三方协议

● 模块化设计,层次清晰,很容易添加自定义协议

● 全面的服务发现、负载均衡、组合访问支持

● 可视化的内置服务和调试工具


brpc 架构


brpc 在架构上强调“在不牺牲易用性的前提下增强可扩展性”,比如 brpc 支持非常多的协议,在百度内部一个 brpc server 同端口可以支持二十几种协议,这对于服务的平滑迁移就非常好用。



为什么要将 brpc 开源,官方说法如下:


接下去还有不少依赖 RPC 的百度系统要开源。RPC作为最基础的组件,开源不仅仅是为了自身,也是为其它开源项目铺路,比如接下去百度还将开源基于 brpc 的 RAFT 库,搭建高可用分布式系统非常方便;以及使用 brpc 的 bigflow,让流式计算变得很顺手。这些年百度对开源的认识也在不断加深,开源看似曝光了百度的核心技术,但带来的生态影响力更重要。从Apollo、PaddlePaddle开始,百度真的开始拥抱开源了。


附:新开源报道汇总

《【新开源报道 4】IBM 开源动态的应用服务器运行时环境 Open Liberty》

《【新开源报道 3】微信后台团队最近开源力作:PhxQueue分布式队列》

《【新开源报道 2】喜大普奔!阿里即将开源 ApsaraCache,云数据库 Redis 版分支》

【新开源报道 1】腾讯 Web UI 解决方案 QMUI Web 正式回迁开源》



●本文编号36,以后想阅读这篇文章直接输入36即可

●输入m获取文章目录

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存