写点什么

百度开源项目 brpc 进入 Apache 孵化器

  • 2018-11-13
  • 本文字数:1486 字

    阅读完需:约 5 分钟

百度开源项目brpc进入Apache孵化器

InfoQ 记者从百度开源社区获悉:Apache 基金会今日凌晨投票结束,baidu-rpc 进入 Apache 孵化器。这是百度继 Echarts 和 Doris 后,第三个进入国际顶级开源社区 Apache 的项目。


brpc 是一个基于 protobuf 接口的 RPC 框架,在百度内部称为“baidu-rpc”,它囊括了百度内部所有 RPC 协议,并支持多种第三方协议,从目前的性能测试数据来看,brpc 的性能领跑于其他同类 RPC 产品。


InfoQ 在去年 9 月份一篇相关报道《百度正式开源其 RPC 框架 brpc》中采访 brpc 负责人戈君的时候,他曾经介绍了 brpc 的诞生背景以及特点和优势。“brpc 于 2014 年创建,在百度内部称为‘baidu-rpc’。到目前为止,brpc 一共进行了 3000 次左右的改动,现在仍在持续优化中,百度内的 wiki 上可以查询到每次改动的描述。brpc 的主要语言是 C++ 和 Java,对其他语言的支持主要是通过包装 C++ 版本,比如 brpc 的 Python 版包含 C++ 版的大部分功能。”


“brpc 目前支撑百度内部大约 75 万个同时在线的实例(不含 client),超过 500 种服务(去年的统计,现在已不统计这类数据)。Hadoop、Table、Mola(另一种广泛使用的存储)、高性能计算、模型训练、大量的在线检索服务都使用了 brpc。brpc 第一次统一了百度内分布式系统和业务线的通信框架。”


对于此次 brpc 进入 Apache 孵化器,百度表示:这是百度开源的又一个重要里程碑,标志着百度开源进入了一个高速发展的阶段,未来势必会开源更多优秀项目,打造更为强大的百度开源生态。


对于 brpc 开源对于百度开源生态的意义,戈君认为:“这些年百度对开源的认识也在不断加深,开源看似曝光了百度的核心技术,但带来的生态影响力更重要。从 Apollo、PaddlePaddle 开始,百度真的开始拥抱开源了。brpc 的开源版和内部版很接近,只是去掉了对百度内部独有的一些基础设施的支持,我们在内网写的深入分析 RPC 技术细节的文档也都一并开源了,后续也会及时推送改动,请大家放心。这是一个活项目,不会拉个开源分支就不管了。”

平台简介

brpc 目的是构建一套百度内统一的 RPC 框架,那么灵活的扩展性就是最基础的需求。brpc 在实现过程中非常注重机制与策略分离,支持了百度内使用的大部分 RPC 协议,方便业务无缝迁移业务到 brpc。除了协议之外,将名字服务、负载均衡和认证也采用了具体 policy 实现,比如 bns 名字服务、rr 负载均衡。



性能是 brpc 非常看重的一点,在百度一个框架性能好不好通常是第一评价要素。brpc 解决性能最核心的是一个 M:N 的线程库 bthread,通过 work stealing 实现最大可能的并发。brpc 在 Socket IO 上读和写都是 wait-free 的,实现最大可能的并发,例如 Server 端不同连接间请求的并行,同一连接上请求的并行。通过遍布 brpc 中的并发优化,brpc 相比其他 rpc 框架在长尾问题上表现更优。


平台特性

  • 支持的协议:baidu_std, http, nshead,hulu-pbrpc, sofa-pbrpc, nova-pbrpc, ubrpc, streaming-rpc, redis, memcached 等二十多种协议

  • 支持的 Naming 方式:list, file, bns, dns, remotefile

  • 支持的负载均衡策略: random, round_robin,consistant_hash, locality_aware

  • 支持的压缩方式: gzip, zlib, snappy

  • 支持的编程语言: C++, Java, Python, Go(非官方)

  • 支持的调用方式: 同步、异步、组合访问

  • 支持的连接方式:短连接、连接池、单连接、基于连接的认证机制、Giano 认证

  • 支持的高可用策略:超时、重试、backup request、取消请求、优雅退出

  • 问题定位支持:强大的 buildtin server,查看进程各种状态、debug、tracing、profing 信息

  • 基础库:common、bvar、bthread、iobuf 等强大的基础库,方便 C++编程


开源地址:


https://github.com/apache/incubator-brpc


2018-11-13 13:5519871
用户头像
张晓楠 InfoQ总编辑

发布了 144 篇内容, 共 104.7 次阅读, 收获喜欢 378 次。

关注

评论 3 条评论

发布
用户头像
阿里Dubbo,华为ServiceComb,百度brpc。
华为ServiceComb去年进驻,今年上个月已率先在Apache毕业,成为Apache顶级项目,Dubbo也即将毕业,
祝中国开源软件发展越来越好。
2018-11-20 17:38
回复
用户头像
国产开源rpc,支持一个。
2018-11-16 23:27
回复
用户头像
牛。目前用的dubbo
2018-11-13 15:09
回复
没有更多了
发现更多内容

深度学习平台百度飞桨亮相"十三五"科技创新成就展

百度大脑

人工智能 百度

20年IT农民工终于分享出了SpringCloud微服务架构实战文档,太强了!

Java 程序员 后端

2021最新美团面经分享:999页Java程序员面试清单(下载量已突破30W

Java 程序员 后端

2021金三银四程序员必备:“基础-中级-高级,几种线程安全的Map解析

Java 程序员 后端

2021年九月最新Java面试必背八股文,338道最新大厂架构面试题

Java 程序员 后端

2021年最新Java后端学习路线,适用于所有想要踏入Java行业的初学者!

Java 程序员 后端

2021最强面试笔记非它莫属:3000字Java面试核心手册(大厂必备

Java 程序员 后端

208道Java高频面试题,让你面试之路畅通无阻!,med教程入门教程

Java 程序员 后端

2021年京东、拼多多、腾讯,javaspringboot面试题

Java 程序员 后端

用四个问题引导员工解决问题

石云升

职场经验 管理经验 10月月更

2021年面试会更难?Java必备209道真题,这份清单助你轻松入阿里

Java 程序员 后端

2021最新 SSM(Spring+Spring MVC,java分布式系统面试题

Java 程序员 后端

2021最新Java岗面试清单:15个技术模块(程序员必备,威力加强版

Java 程序员 后端

2021最新华为面经分享:Java高分面试指南(25分类1000题50w字解析

Java 程序员 后端

2021年去一线大厂面试先过SSM框架源码这一关!,你还看不明白?

Java 程序员 后端

2021!阿里技术官最新发布Java零基础就业宝典,不用再怀疑人生了

Java 程序员 后端

20年IT农民工终于分享出了SpringCloud微服务架构实战文档,太强了!(1)

Java 程序员 后端

21 利用分布式消息队列降低系统耦合性,java后端项目实战

Java 程序员 后端

23种设计模式与六大原则看了又忘,忘了又看?是你看的方法不对

Java 程序员 后端

2021年Java面试题抢先看,够全!,java技术支持面试题

Java 程序员 后端

太难为我了,三战阿里,拿下27K*16offer(附七面面经)

Java 程序员 架构 面试 后端

2021首次分享面试阿里P6心得:1000字超全面试题答案解析

Java 程序员 后端

30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软

Java 程序员 后端

32 岁的我裸辞了,八年 Java 老鸟,只因薪水被应届生倒挂

Java 程序员 后端

43 道检验基础的 JavaScript 面试题,一招教你看懂Netty

Java 程序员 后端

2021全网最新、最全面“互联网大厂面试题库2400页,nginx反向代理负载均衡原理

Java 程序员 后端

2021备战金三银四血拼一波算法:字节+百度,Java进阶推荐

Java 程序员 后端

2021年Java面试题抢先看,够全!中篇,java基础程序

Java 程序员 后端

2021年备战金三银四:死磕“源码,百度网盘搜索引擎java

Java 程序员 后端

2021年金三银四最新美团、字节、阿里,阿里巴巴java面试流程

Java 程序员 后端

2021终于拿到阿里Java后端岗offer!只因我做了这个决定

Java 程序员 后端

百度开源项目brpc进入Apache孵化器_开源_张晓楠_InfoQ精选文章