ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

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/brpcbrpcbetter 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信息提供者guodongxiarenvivo 的在线推荐系统直接使用社区版本 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 的开发和调试工作。信息提供者morningmanDoris 案例直接点名了 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_port8060用于节点间数据传输与通信。信息提供者ShawYannStarRocks 以 vendored内置方式引入 brpc默认 RPC 端口为8060brpc_portBE 节点间通过该端口进行数据传输与通信。这个 8060 端口在下文的腾讯、阿里巴巴案例中再次出现是理解 StarRocks/Doris 系列部署拓扑的关键参数。BaikalDB落地项目BaikalDB使用版本社区版 0.9.7 百度内部 stable使用情况BaikalDB 是一款面向 OLTP 场景为主的 NewSQL 数据库其内部节点均采用 brpc 框架通信实现数据处理和复制以及集群管理brpc 的高性能对 OLTP 场景的低延迟至关重要同时 brpc 集成的性能调优工具对 SQL 性能优化提效显著。信息提供者tullyliuBaikalDB 是一款面向 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 协议。IDLPB通讯方式TCP网络数据二进制信息提供者Divyansh20010搜狗的 SRPC 是一个企业级 RPC 系统支持 brpc 等 RPC 协议采用 protobufPB作为 IDL、TCP 作为通讯方式、二进制作为网络数据格式。这体现的是 brpc 协议体系的开放性——通过 docs/cn/new_protocol.md 描述的扩展机制组织可以把自研协议快速接入 brpc也可以反过来让自研 RPC 兼容 brpc 协议。哔哩哔哩B 站命名服务的 zone 发现公司名称哔哩哔哩实现项目支持 bilibili 在获取服务器节点时发现命名服务的 zone支持 bilibili 发现服务使用版本0.9.7, 0.9.6信息提供者Divyansh200102B 站在 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 -- BEBE -- BE信息提供者Divyansh200102腾讯与阿里巴巴的案例口径一致在两家的 Doris/StarRocks 部署中brpc 端口brpc_port默认均为8060用于后端实例BE之间的通信通讯方向覆盖 FE -- BE 与 BE -- BE。这与 StarRocks 案例中的 brpc_port8060 完全吻合说明 8060 已成为该数据库生态中事实上的标准 RPC 端口。阿里巴巴的案例还特别注明其部署在阿里云上说明该生态的云上托管形态同样沿用这一端口约定。案例趋势分析brpc 都在解决什么问题综合上述案例可以归纳出 brpc 生产落地的几条清晰主线在线业务服务推荐/广告/搜索vivo、爱奇艺、小红书、欢聚时代、数美科技等特征是 QPS 高、对延迟敏感依赖 brpc 的多协议支持与低开销统计能力基础架构与存储百度、小红书、信网、网易 Curve特征是节点规模大、通信稳定性要求高MPP/NewSQL 数据库内部通信Apache Doris、StarRocks、BaikalDBbrpc 直接成为数据库节点间的血管默认端口 8060这类案例最能体现框架在长期稳定运行下的可靠性RPC 生态与平台整合搜狗 SRPC、B 站命名服务定制、腾讯/阿里云的数据库托管体现 brpc 协议与组件命名服务、负载均衡的可扩展性。这些趋势与 docs/cn/overview.md 描述的能力一一对应一个端口支持多协议restful http/h2、gRPC、redis、memcached、thrift 等、同步/异步/半同步的访问模型、组合 channels、基于 bthread 的请求结束线程即结束的自动线程数调节以及通过内置服务在线查看状态、剖析 CPU/内存/锁竞争的能力。数据库类案例中反复出现的 bthread、bvar 与调优工具正是这套能力在基础设施场景中的直接体现。从版本分布看社区版本 0.9.x0.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.mdbrpc 的能力边界、优势与设计理念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),仅供参考
返回列表