news 2026/9/13 12:56:19

brpc 生产落地案例全景解析:从互联网业务到分布式数据库的工业级 RPC 实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
brpc 生产落地案例全景解析:从互联网业务到分布式数据库的工业级 RPC 实践

brpc 生产落地案例全景解析:从互联网业务到分布式数据库的工业级 RPC 实践

【免费下载链接】brpcbrpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".项目地址: https://gitcode.com/GitHub_Trending/brpc/brpc

brpc("better RPC")是一个用 C++ 编写的工业级 RPC 框架,常用于搜索、存储、机器学习、广告、推荐等高性能系统。本指南以 community/cases.md 收录的社区落地案例为核心,系统梳理 brpc 在百度、vivo、爱奇艺、小红书、滴滴等互联网公司,以及 Apache Doris、StarRocks、BaikalDB 等开源数据库中的真实应用场景、集群规模与版本选择,并结合 README_cn.md 与 docs/cn/overview.md 中的框架能力说明,帮助读者理解 brpc 适合解决哪些问题、在何种规模下经受住了考验,以及如何按规范向社区提交自己的落地案例。

这份案例文档是什么

community/cases.md是 brpc 社区维护的应用案例集合,它的定位非常明确:

  • 方便用户参考:了解 brpc 可以在哪些真实场景下落地,包括推荐系统、广告、搜索、风控、直播、存储、数据库等;
  • 方便社区统计:帮助社区开发者统计 brpc 的版本分布、集群规模、QPS 量级等信息。

换句话说,这份文档既是"brpc 能做什么"的实证清单,也是社区了解框架实际服役状态的窗口。案例信息由各企业的一线工程师(信息提供者)提交,属于社区自报的落地事实,读者在使用时应注意其数据口径来自各提供者自身。

统一的案例记录模板

为了让每个案例可比、可统计,文档定义了一套落地 case 的标准模板,字段如下:

  • 公司名称:落地该场景的企业
  • 落地项目:例如 app 的个性化推荐系统的预测服务
  • 集群规模:例如 100 台
  • QPS:例如峰值 1000 万、均值 100 万
  • 使用版本:例如社区版本 0.9.7
  • 信息提供者:某某

如果有多个场景,文档建议分开记录。这套模板意味着社区鼓励贡献者提供"可量化"的案例——规模、QPS、版本号都是评估框架服役状态的关键指标。

互联网业务场景:推荐、广告、搜索与风控

案例中占比最大的一类,是互联网公司的核心在线业务系统。brpc 在这些场景中扮演业务服务间通信的底座,覆盖了 docs/cn/overview.md 中所描述的高性能系统典型形态。

百度:框架的诞生地与最大规模战场

  • 公司名称:百度
  • 落地项目:基础架构(分布式计算、存储、数据库等),业务系统(Feed、凤巢、地图等)
  • 集群规模:4000 多个活跃模块,600w 以上实例
  • 使用版本:baidu 内部版本
  • 信息提供者:wwbmmm

百度是 brpc 的原产地与最大规模验证场。docs/cn/overview.md 明确指出 brpc 是"百度内最常使用的工业级 RPC 框架",有 1,000,000+ 个实例(不包含 client)和上千种服务,在百度内被叫做"baidu-rpc"。案例中"4000 多个活跃模块、600w 以上实例"的口径,印证了它作为百度内部统一通信架构的地位。Feed(信息流)、凤巢(搜索广告)、地图等业务系统与分布式计算/存储/数据库等基础架构同时运行在同一套 RPC 底座上,说明 brpc 既能承载对延迟敏感的在线检索类服务,也能支撑底层基础设施的节点通信。

维沃(vivo):在线推荐系统

  • 公司名称:维沃(vivo)
  • 落地项目:在线推荐系统
  • 使用版本:社区版本 0.9.7
  • 信息提供者:guodongxiaren

vivo 的在线推荐系统直接使用社区版本 0.9.7,是"直接用开源主线版本即可上线"的典型案例。

爱奇艺(iqiyi):广告、推荐、搜索三线并进

  • 公司名称:爱奇艺(iqiyi)
  • 落地项目:广告、推荐、搜索
  • 使用版本:基于社区版本定制
  • 集群规模:3000+ 台机器(广告)
  • 信息提供者:cdjingit

爱奇艺在广告、推荐、搜索三条业务线上都使用 brpc,其中广告场景集群规模达 3000+ 台机器,属于大规模定制化使用。

第四范式(4paradigm):风控、推荐、智能运维

  • 公司名称:第四范式(4paradigm)
  • 落地项目:风控、推荐、智能运维等
  • 使用版本:基于社区版本定制
  • 信息提供者:dl239

第四范式将 brpc 用于 AI 相关的风控、推荐和智能运维场景,说明 brpc 在机器学习/推理类服务链路中的适用性。

小红书:推荐系统与基础架构

  • 公司名称:小红书
  • 落地项目:推荐系统,基础架构(存储等)
  • 集群规模:1w 以上实例(推荐)
  • 使用版本:基于社区版本定制
  • 信息提供者:lzfhust

小红书在推荐系统的集群规模达 1w 以上实例,同时将 brpc 用于存储等基础架构,与百度的"业务 + 基础架构"双线落地模式一致。

作业帮:长连接 IM 与消息分发

  • 公司名称:作业帮
  • 落地项目:长连接 IM,消息分发系统
  • 集群规模:2000+ 核
  • 使用版本:基于 0.9.7 定制
  • 信息提供者:xdh0817

作业帮的案例展示了 brpc 在高并发连接型业务(长连接 IM、消息分发)上的落地,集群规模以 CPU 核数(2000+ 核)为口径。

欢聚时代:推荐与直播

  • 公司名称:欢聚时代
  • 落地项目:推荐、直播
  • 使用版本:基于社区版本定制
  • 信息提供者:chenBright

欢聚时代在推荐与直播场景使用 brpc,直播属于典型的低延迟实时互动场景。

滴滴:地图等业务

  • 公司名称:滴滴(www.didiglobal.com)
  • 落地项目:地图等业务
  • 使用版本:0.9.3
  • 信息提供者:NIGHTFIGHTING

滴滴在地图等位置服务业务上使用 brpc,使用版本为较早的社区版本 0.9.3。

数美科技(nextdata):智能风控业务

  • 公司名称:数美科技(nextdata)
  • 落地项目:智能风控业务(模型特征服务、规则引擎)
  • 使用版本:1.0.0
  • 信息提供者:day253

数美科技的智能风控业务包含模型特征服务和规则引擎,使用社区版本 1.0.0,是风控领域的高 QPS 特征/规则计算场景。

信网(eyou.com):分布式元数据存储引擎服务

  • 公司名称:信网(eyou.com)
  • 落地项目:分布式元数据存储引擎服务
  • 使用版本:1.3.0
  • 集群规模:10 台+
  • 信息提供者:haihuju

信网将 brpc 用于分布式元数据存储引擎服务,集群规模 10 台以上,使用社区版本 1.3.0——这是一个规模适中、直接采用较新社区版本的典型中小集群案例。

数据库与存储:MPP 分析型数据库的标准通信底座

第二大类案例来自开源数据库/存储项目,brpc 在这些项目中通常作为节点间内部通信的 RPC 框架,而非业务服务框架。这一类案例尤其能说明 brpc 在"底层基础设施"中的可靠性。

Apache Doris

  • 落地项目:Apache Doris
  • 使用版本:1.2.0
  • 使用情况:Apache Doris 作为一款 MPP 分析型数据库,其内部节点间使用 Apache brpc 作为主要 RPC 框架。brpc 为 Doris 提供了稳定易用的高性能通信机制。并且 brpc 提供的 bthread、bvar 等基础库,以及各种性能调试工具,也极大的方便了 Doris 的开发和调试工作。
  • 信息提供者:morningman

Doris 案例直接点名了 brpc 的几项核心资产:bthread(见 docs/cn/bthread.md)提供了轻量级调度,使每个请求可运行在新建立的 bthread 中、天然随负载调节线程数;bvar(见 docs/cn/bvar.md)提供了多线程环境下近乎零开销的计数器,可通过 /vars 查看;而"各种性能调试工具"则对应 docs/cn/builtin_service.md 介绍的内置服务,以及 CPU/堆/锁竞争剖析器(cpu_profiler、heap_profiler、contention_profiler)。

StarRocks

  • 落地项目:StarRocks
  • 使用版本:内置(vendored)版本
  • 使用情况:StarRocks 作为一款 MPP 分析型数据库,其 BE 节点间使用 brpc 作为主要 RPC 框架,默认通信端口 brpc_port=8060,用于节点间数据传输与通信。
  • 信息提供者:ShawYann

StarRocks 以 vendored(内置)方式引入 brpc,默认 RPC 端口为8060(brpc_port),BE 节点间通过该端口进行数据传输与通信。这个 8060 端口在下文的腾讯、阿里巴巴案例中再次出现,是理解 StarRocks/Doris 系列部署拓扑的关键参数。

BaikalDB

  • 落地项目:BaikalDB
  • 使用版本:社区版 0.9.7 & 百度内部 stable
  • 使用情况:BaikalDB 是一款面向 OLTP 场景为主的 NewSQL 数据库,其内部节点均采用 brpc 框架通信,实现数据处理和复制以及集群管理,brpc 的高性能对 OLTP 场景的低延迟至关重要,同时 brpc 集成的性能调优工具对 SQL 性能优化提效显著。
  • 信息提供者:tullyliu

BaikalDB 是一款面向 OLTP 的 NewSQL 数据库,内部节点全部采用 brpc 通信,覆盖数据处理、数据复制与集群管理。该案例特别强调了两点:低延迟(brpc 的高性能对 OLTP 场景至关重要)与调优工具链(对 SQL 性能优化提效显著),分别呼应 docs/cn/benchmark.md 中的性能对比与上述内置调试体系。

网易:分布式存储系统 Curve

  • 公司名称:网易
  • 实施项目:高性能分布式存储系统 Curve。
  • 集群规模:单个集群 30,000 个节点
  • 使用版本:1.3.0
  • 信息提供者:Divyansh200102

网易的 Curve 是高性能分布式存储系统,单个集群规模高达 30,000 个节点,使用社区版本 1.3.0。这是案例中单集群规模最大的存储场景之一,对节点间通信的稳定性与吞吐提出了极高要求。

RPC 生态与平台侧:协议兼容与命名服务定制

第三类案例体现了 brpc 作为"多协议、可扩展"框架的平台属性。

搜狗:企业级 RPC 系统 SRPC

  • 公司名称:搜狗
  • 实现项目:SRPC 是搜狗几乎所有在线服务都使用的企业级 RPC 系统之一,主要功能包括支持 bRPC 等 RPC 协议。
  • IDL:PB
  • 通讯方式:TCP
  • 网络数据:二进制
  • 信息提供者:Divyansh20010

搜狗的 SRPC 是一个企业级 RPC 系统,支持 brpc 等 RPC 协议,采用 protobuf(PB)作为 IDL、TCP 作为通讯方式、二进制作为网络数据格式。这体现的是 brpc 协议体系的开放性——通过 docs/cn/new_protocol.md 描述的扩展机制,组织可以把自研协议快速接入 brpc,也可以反过来让自研 RPC 兼容 brpc 协议。

哔哩哔哩(B 站):命名服务的 zone 发现

  • 公司名称:哔哩哔哩
  • 实现项目:支持 bilibili 在获取服务器节点时发现命名服务的 zone,支持 bilibili 发现服务
  • 使用版本:0.9.7, 0.9.6
  • 信息提供者:Divyansh200102

B 站在 brpc 的命名服务机制上做了定制,支持在获取服务器节点时发现命名服务的 zone。命名服务是 brpc 服务发现的核心扩展点,docs/cn/load_balancing.md 中介绍了基于 DNS、ZooKeeper、etcd 等实现的命名服务,以及"list://"和"file://"等内置形式,B 站的 zone 发现正是对这一扩展点的定制。

腾讯与阿里巴巴:Doris/StarRocks 生态中的 8060 端口

  • 公司名称:腾讯

  • 已实现的项目:Doris、StarRocks 是后端的 brpc 端口,用于后端实例之间的通信。

  • 端口号:8060

  • 信息提供者:Divyansh200102

  • 公司名称:阿里巴巴

  • 已实现项目:阿里云,brpc 端口用于与另一个 BE 通信。

  • 端口名称:brpc_port

  • 默认端口号:8060

  • 通讯方向:FE <--> BE,BE <--> BE

  • 信息提供者:Divyansh200102

腾讯与阿里巴巴的案例口径一致:在两家的 Doris/StarRocks 部署中,brpc 端口(brpc_port)默认均为8060,用于后端实例(BE)之间的通信,通讯方向覆盖 FE <--> BE 与 BE <--> BE。这与 StarRocks 案例中的 brpc_port=8060 完全吻合,说明 8060 已成为该数据库生态中事实上的标准 RPC 端口。阿里巴巴的案例还特别注明其部署在阿里云上,说明该生态的云上托管形态同样沿用这一端口约定。

案例趋势分析:brpc 都在解决什么问题

综合上述案例,可以归纳出 brpc 生产落地的几条清晰主线:

  1. 在线业务服务(推荐/广告/搜索):vivo、爱奇艺、小红书、欢聚时代、数美科技等,特征是 QPS 高、对延迟敏感,依赖 brpc 的多协议支持与低开销统计能力;
  2. 基础架构与存储:百度、小红书、信网、网易 Curve,特征是节点规模大、通信稳定性要求高;
  3. MPP/NewSQL 数据库内部通信:Apache Doris、StarRocks、BaikalDB,brpc 直接成为数据库节点间的"血管",默认端口 8060,这类案例最能体现框架在长期稳定运行下的可靠性;
  4. RPC 生态与平台整合:搜狗 SRPC、B 站命名服务定制、腾讯/阿里云的数据库托管,体现 brpc 协议与组件(命名服务、负载均衡)的可扩展性。

这些趋势与 docs/cn/overview.md 描述的能力一一对应:一个端口支持多协议(restful http/h2、gRPC、redis、memcached、thrift 等)、同步/异步/半同步的访问模型、组合 channels、基于 bthread 的"请求结束线程即结束"的自动线程数调节,以及通过内置服务在线查看状态、剖析 CPU/内存/锁竞争的能力。数据库类案例中反复出现的 bthread、bvar 与调优工具,正是这套能力在基础设施场景中的直接体现。

从版本分布看,社区版本 0.9.x(0.9.3、0.9.6、0.9.7)仍是存量服役的主流,1.0.0 与 1.3.0 也已有明确落地,同时多家企业基于社区版本深度定制或使用百度内部版本,说明 brpc 的源码可维护性(vendored、定制化)同样是企业选型时看重的一点。

如何为社区贡献你的落地案例

如果你所在的企业也在生产环境使用 brpc,可以参照 community/cases.md 中的模板向社区提交案例,帮助完善这份清单。建议按如下格式(多个场景请分开记录):

* 公司名称: xxx公司 * 落地项目: 例如app的个性化推荐系统的预测服务 * 集群规模: 例如100台 * QPS: 例如峰值1000万, 均值100万 * 使用版本: 例如社区版本0.9.7 * 信息提供者:某某

提交时请尽量填写可量化的指标(集群规模、QPS、版本号),并注明版本是直接使用社区版还是基于社区版定制、是否为内置(vendored)引入——这两点直接影响其他读者对案例可复现性的判断。若不清楚所选版本与框架能力的对应关系,可先阅读 docs/cn/overview.md 与 README_cn.md 了解版本与能力概览。

延伸阅读

  • README_cn.md:项目总览、文档索引与示例程序入口
  • docs/cn/overview.md:brpc 的能力边界、优势与设计理念
  • docs/cn/bthread.md:案例中反复提到的轻量级调度原语
  • docs/cn/bvar.md:多线程计数器库,Doris 案例点名的基础库
  • docs/cn/builtin_service.md:在线调试服务与状态查看
  • docs/cn/load_balancing.md:命名服务与负载均衡的扩展点
  • docs/cn/new_protocol.md:如何将组织内协议快速接入 brpc

【免费下载链接】brpcbrpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".项目地址: https://gitcode.com/GitHub_Trending/brpc/brpc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 12:55:04

用Python和Pillow构建艺术签名生成器:从字体渲染到API封装

简介&#xff1a;这是一份面向Python初中级开发者的艺术签名生成器项目源码&#xff0c;解决用户输入姓名后自动生成个性化签名并导出图片的需求。项目基于Tkinter搭建图形界面&#xff0c;借助Pillow库处理字体与图像&#xff0c;支持加载不同字体文件&#xff0c;并综合运用字…

作者头像 李华
网站建设 2026/9/13 12:49:58

面向开发者的LLM实战入门:从API调用到中文RAG搭建

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 12:48:22

Spring Boot事务失效场景与解决方案详解

1. Spring Boot事务失效的典型场景剖析 在Spring Boot项目中&#xff0c;事务管理是保证数据一致性的核心机制。但实际开发中&#xff0c;事务失效的情况远比我们想象的更常见。根据我多年处理生产环境问题的经验&#xff0c;事务失效往往发生在以下典型场景中&#xff1a; 1…

作者头像 李华
网站建设 2026/9/13 12:48:12

微信小程序手机号解密:Java后端三重校验实战

简介&#xff1a;本资源是一套完整的微信小程序用户身份与敏感信息获取解决方案&#xff0c;面向Java后端开发者及小程序全栈工程师&#xff0c;聚焦解决openid、session_key安全获取与手机号解密等核心鉴权难题。资源包含前后端可直接复用的工程化代码&#xff1a;前端含WXML/…

作者头像 李华
网站建设 2026/9/13 12:48:00

ReAct模式:AI Agent的思考与行动循环详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华