小吴同学
善良比聪明更重要
RPC 系列(十六):何时该用 bthread RPC 系列(十六):何时该用 bthread
brpc 提供了异步接口,所以一个常见的问题是:我应该用异步接口还是 bthread? 提示:简短回答——延时不高时,你应该先用简单易懂的同步接口;不行的话用异步接口;只有在需要多核并行计算时才用 bthread。 为什么不首选回调式的
2023-12-19
RPC 系列(十五):bthread 是什么 RPC 系列(十五):bthread 是什么
bthread 是 brpc 使用的 M:N 线程库,目的是在提高程序的并发度的同时,降低编码难度,并在核数日益增多的 CPU 上提供更好的 scalability 和 cache locality。「M:N」是指 M 个 bthread
2023-12-12
RPC 系列(十四):brpc 的线程与协程 RPC 系列(十四):brpc 的线程与协程
线程模型是服务端编程的根基。在进入 brpc 的线程设计之前,先梳理几类常见的服务端线程模型:thread-per-connection、单线程 reactor(event-loop)、N:1 线程库、多线程 reactor 与 M:N 线
2023-12-05
RPC 系列(十三):brpc 全景 RPC 系列(十三):brpc 全景
互联网上的机器大都通过 TCP/IP 协议相互访问,但 TCP/IP 只是往远端发送了一段二进制数据,为了建立服务还有很多问题需要抽象。RPC 可以解决这些问题,它把网络交互类比为「client 访问 server 上的函数」:client
2023-11-28
RPC 系列(十二):gRPC 客户端负载均衡 RPC 系列(十二):gRPC 客户端负载均衡
本篇将基于 etcd 服务发现,介绍如何实现 gRPC 客户端负载均衡。 gRPC 负载均衡的三种方案gRPC 官方文档提供了关于 gRPC 负载均衡的方案(Load Balancing in gRPC),此方案是为 gRPC 设计的,下面
2023-11-21
RPC 系列(十一):gRPC 大数据量消息传递 RPC 系列(十一):gRPC 大数据量消息传递
本文探讨 gRPC 中大数据量消息的传输限制及相应的两种解决方法:修改限制值大小和流式数据传输,并给出 gRPC C++ 版本下采用流式数据传输的示例,同时说明如何在 Visual Studio 下进行 proto 文件编写、编译以及 gR
2023-11-14
RPC 系列(十):gRPC 流式消息的大小限制 RPC 系列(十):gRPC 流式消息的大小限制
在工作中遇到了 gRPC 的 stream 通信(server 通过 stream 向 client 返回一个消息的 stream)中 client 收不到消息的情况。排查发现,收不到的这条消息比较大,跟同事讨论后认为,可能是 gRPC 限
2023-11-07
RPC 系列(九):gRPC 的 deadline 语义 RPC 系列(九):gRPC 的 deadline 语义
最近在将应用的 RPC 更换为 gRPC,使用过程中发现报错 rpc error: code = DeadlineExceeded desc = context deadline exceeded。这是啥?原来是某位仁兄设置了环境的超时时间
2023-10-31
RPC 系列(八):Go gRPC 的 TLS 认证 RPC 系列(八):Go gRPC 的 TLS 认证
前面篇章的 gRPC 都是明文传输的,容易被篡改数据。本篇将介绍如何为 gRPC 添加安全机制,包括 TLS 证书认证和 Token 认证。 TLS 证书认证什么是 TLSTLS(Transport Layer Security,安全传输层
2023-10-24
RPC 系列(七):Go gRPC 超时设置 RPC 系列(七):Go gRPC 超时设置
gRPC 默认的请求超时时间是很长的。当你没有设置请求超时时间时,所有在运行的请求都占用大量资源且可能运行很长的时间,导致服务资源损耗过高,使得后来的请求响应过慢,甚至会引起整个进程崩溃。 为了避免这种情况,我们的服务应该设置超时时间。当客
2023-10-17
RPC 系列(六):Go gRPC 双向流式 RPC RPC 系列(六):Go gRPC 双向流式 RPC
上一篇介绍了客户端流式 RPC,客户端不断地向服务端发送数据流,在发送结束或流关闭后,由服务端返回一个响应。本篇将介绍双向流式 RPC。 双向流式 RPC:客户端和服务端双方使用读写流去发送一个消息序列,两个流独立操作,双方可以同时发送和同
2023-10-10
RPC 系列(五):Go gRPC 客户端流式 RPC RPC 系列(五):Go gRPC 客户端流式 RPC
上一篇介绍了服务端流式 RPC:客户端发送请求到服务器,拿到一个流去读取返回的消息序列,客户端读取返回的流的数据。本篇将介绍客户端流式 RPC。 客户端流式 RPC 与服务端流式 RPC 相反:客户端不断地向服务端发送数据流,而在发送结束后
2023-10-03
5 / 24