Apache bRPC 1.13.0 版本现已发布,包含许多新功能和问题修复。主要更新内容如下:
新功能
- 支持ProtoJson格式的HTTP请求体
- 支持动态更新方法并发度
- 支持baidu-std协议多种负载类型:JSON、ProtoJson和ProtoText
- 支持AddressSanitizer内存检测工具
- 在Redis连接上下文中保留会话信息
Bug修复
- 修复内存泄漏问题
- 修复Apple M1芯片MacOS系统编译问题
- 修正VersionedRefWithId的描述
- 修复Prometheus指标格式
- 修复ParkingLot::signal未修改_pending_signal的问题
- 修复包含glog时的链接错误
- 修复baidu-std协议消息重复释放问题
- 修复部分不稳定的单元测试
- 修复AddressSanitizer切换协程时栈信息错误
- 修复编译器优化导致的线程局部变量访问问题
- 适配Protobuf v27+的类数据
- 使用BAIDU_VOLATILE_THREAD_LOCAL防止编译器优化
- 修复AgentCombiner线程安全问题
- 修复批量创建流与SetHostSocket的线程安全问题
- 修复Wrapper的线程安全问题
- 修复json2pb编译错误
- 修复HttpResponseSenderAsDone空消息运行问题
- 修复WeightedRandomizedLoadBalancer可能不会选中低权重server的问题
- 移除RemoveServersInBatch中的错误日志
- 修正bthread标签默认值
功能增强
- 自动分片处理大型brpc流式消息
- 支持Bazel构建bthread tracer
- 为iobuf新增reserve_aligned
- DoublyBufferedData支持更安全的读取函数及可变参数
- 将CI环境从Ubuntu 20.04升级至22.04
- 减少ParkingLot中futex的使用
- 记录事件分发器延迟
- 优化服务端延迟
- 优化HTTP请求体的零拷贝性能
- 代码细节优化
其他
- 启用GitHub Discussions功能
- 文档及细节改进
更新说明:https://github.com/apache/brpc/releases/tag/1.13.0