小吴同学
善良比聪明更重要
RPC 系列(四十):Backup Request 策略 RPC 系列(四十):Backup Request 策略
有时为了保证可用性,需要同时访问两路服务,哪个先返回就取哪个。在 brpc 中,这有多种做法。 在 Channel 中开启 backup requestChannel 开启 backup request 后,会先向其中一个 server 发
2024-06-04
RPC 系列(三十九):brpc 的一致性哈希 RPC 系列(三十九):brpc 的一致性哈希
一些场景希望同样的请求尽量落到一台机器上,比如访问缓存集群时,我们往往希望同一种请求能落到同一个后端上,以充分利用其上已有的缓存,不同的机器承载不同的稳定 working set;而不是随机地散落到所有机器上,那样的话会迫使所有机器缓存所有
2024-05-28
RPC 系列(三十八):lalb 自适应负载均衡 RPC 系列(三十八):lalb 自适应负载均衡
LALB 全称 Locality-aware load balancing,是一个能把请求及时、自动地送到延时最低的下游的负载均衡算法,特别适合混合部署环境。该算法产生自 DP 系统,现已加入 brpc。 为什么需要 LALB最常见的分流算
2024-05-21
RPC 系列(三十七):brpc 的负载均衡 RPC 系列(三十七):brpc 的负载均衡
上游一般通过命名服务发现所有的下游节点,并通过多种负载均衡方法把流量分配给下游节点。当下游节点出现问题时,它可能会被隔离以提高负载均衡的效率。被隔离的节点会定期被健康检查,成功后重新加入正常节点。理解「命名服务 + 负载均衡 + 健康检查」
2024-05-14
RPC 系列(三十六):brpc 的组合通道 RPC 系列(三十六):brpc 的组合通道
随着服务规模的增大,对下游的访问流程会越来越复杂,其中往往包含多个同时发起的 RPC 或有复杂的层次结构。但这类代码的多线程陷阱很多,用户可能写出了 bug 也不自知,复现和调试也比较困难。而且实现要么只能支持同步的情况,要么得为异步重写一
2024-05-07
RPC 系列(三十五):brpc Client 全解 RPC 系列(三十五):brpc Client 全解
本文对应的示例是 example/echo_c++ 中的 client 端代码。 Client 指发起请求的一端,在 brpc 中没有对应的实体,取而代之的是 brpc::Channel,它代表和一台或一组服务器的交互通道。Client 和
2024-04-30
RPC 系列(三十四):brpc Server 的调试方法 RPC 系列(三十四):brpc Server 的调试方法
工作线程是否够用查看 /vars/bthread_worker_count 和 /vars/bthread_worker_usage,分别是工作线程的个数和正在被使用的工作线程个数。如果 usage 和 count 接近,说明线程不够用了。
2024-04-23
RPC 系列(三十三):brpc 的连接管理 RPC 系列(三十三):brpc 的连接管理
/connections 服务可以查看所有的连接。一个典型的页面如下。 server 端的连接(server_socket_count: 5): CreatedTime RemoteSide SSL Protocol fd Bytes
2024-04-16
RPC 系列(三十二):brpc 的 vars 变量 RPC 系列(三十二):brpc 的 vars 变量
bvar 是多线程环境下的计数器类库,方便记录和查看用户程序中的各类数值,它利用了 thread local 存储减少了 cache bouncing,相比 UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销,也快于竞争频繁
2024-04-09
RPC 系列(三十一):bvar 与性能指标 RPC 系列(三十一):bvar 与性能指标
bvar 是多线程环境下的计数器类库,方便记录和查看用户程序中的各类数值。它利用了 thread local 存储减少了 cache bouncing,相比 UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销,也快于竞争频繁
2024-04-02
RPC 系列(三十):用 rpcz 观测 RPC RPC 系列(三十):用 rpcz 观测 RPC
用户能通过 /rpcz 看到最近请求的详细信息,并可以插入注释(annotation)。不同于 tracing system(如 Dapper)以全局视角看到整体系统的延时分布,rpcz 更多是一个调试工具。虽然角色有所不同,但在 brpc
2024-03-26
RPC 系列(二十九):brpc 的 gflags 配置 RPC 系列(二十九):brpc 的 gflags 配置
brpc 使用 gflags 管理配置。如果你的程序也使用 gflags,那么你应该已经可以修改和 brpc 相关的 flags,你可以浏览 flags 服务了解每个 flag 的具体功能。如果你的程序还没有使用 gflags,我们建议你使
2024-03-19
3 / 24