这是什么?
bRPC 是一个工业级的 C++ RPC 框架,由百度开发,用于搜索、存储、机器学习、广告和推荐等高性能系统;名称含义是“better RPC”。
这是现成的服务器,还是用来构建我自己服务的框架?
它是一个 C++ 框架/库,你将其链接到自己的代码中,用来构建可在同一端口上支持多种协议的服务器,以及可以同步、异步或半同步方式访问这些服务器的客户端。
我该如何构建并开始使用它?
可以按照项目的入门指南从源码构建(支持 Bazel/Make),或使用提供的 Dockerfile;项目还包含示例服务,方便你立即试用各种协议。
文档中提到的所有协议都开箱即用吗?
大部分可以,但其中至少有一个协议(hadooprpc)标注为可能会开源,因此并非所有提到的内容都保证已在公开仓库中提供。
这是面向小型个人项目,还是大规模系统的?
它面向大规模、高性能的生产系统,已用于百度的搜索、存储、机器学习、广告和推荐等基础设施。
它能在 Windows 上运行,还是只支持 Linux 和 macOS?
项目的 CI 流水线仅覆盖 Linux 和 macOS,没有 Windows 的 CI 任务,因此 Windows 并不是官方测试过的平台。
“brpc”这个名字到底是什么意思?
项目自己的 README 将其解释为“better RPC”,是对通用术语 RPC 的一个双关。
单个 bRPC 服务器能支持哪些协议?
单个服务器可以在同一端口上处理多种协议,包括 HTTP/HTTPS、gRPC(h2)、Redis、Memcached、Thrift、RTMP/FLV/HLS,以及多种百度内部协议。
如何用它构建高可用的分布式服务?
bRPC 提供了工业级的 RAFT 一致性算法实现,该实现也作为独立项目 “braft” 开源,可用于构建高可用的分布式服务。
我能调试或分析正在运行的 bRPC 服务吗?
可以。内置的基于 HTTP 的调试功能可以查看状态、变量、连接和参数标志,并能直接在线上服务器上运行 CPU、堆内存和锁竞争分析器。
Which topics is it in?
protocol-buffers, profiler, consensus, load-balancer, rpc, grpc, concurrency, high-performance, microservices, redis, http, distributed-systems
