Apache bRPC 1.8.0 发布

来源: OSCHINA
2024-02-09 18:11:53

Apache bRPC 1.8.0 版本现已发布,支持多线程池等新特性。主要更新内容如下:

新功能

  • 支持bthread多线程池,用tag区分 (#2358) (#2476) 

  • 支持在发送完response、析构request/response对象之前执行用户自定义函数 (#2328)

  • 支持url安全的base64转换 (#2337)

  • 支持 loongarch64架构  (#2364)

  • 支持联编 boringssl (#2399)

  • baidu_std协议支持用户自定义字段 (#2406)

  • 支持客户端 ALPN协议 (#2251)

  • 支持 c++20 协程 (#2121)

  • 支持 grpc 健康检查内置服务(#2493)

  • 支持一种多生产者、单消费者的无锁队列 (#2492)

  • 支持异步日志 (#2413)

  • 支持在内置服务展示内存详情 (#2505)

Bug修复

  • 修复在 ubuntu18.04 下的编译问题 (#2422)

  • 修复大的 rdma_recv_block_type 不生效的问题 (#2326)

  • 修复http2在 SETTINGS_HEADER_TABLE_SIZE设置为0的情况下不正常的case (#2373)

  • 修复多维度bvar转换成prometheus格式的问题 (#2235)

  • 修复bthread_usleep在调度定时器失败时仍返回成功的问题 (#2435)(#2511)

  • 修复stream后台写入不生效的问题 (#2440)

  • 修复http verbose模式下内存泄漏的问题 (#2429)

  • 修复window update的阈值 (#2418)

  • 修复 brpc/details/http_message.h 在CentOS8下编译失败的问题 (#2474)

  • 修复example中 json2pb 编译错误  (#2482)

  • 修复 scoped_refptr 的 ptr_ 成员未初始化问题  (#2491) 

  • 修复ssl初始化失败时LoadBalancerWithNaming 的内存泄漏 (#2503)

其他改进

  • 连接池保留至少一个空闲的Socket (#2390)

  • rpm:更新DoublyBufferedData所依赖的编译器

  • 不允许Channel对象复制和赋值 (#2439)

  • LALB增加尝试左子结点的逻辑,避免选不出实例 (#2428)

  • wrr负载均衡增加回退策略 (#2441)

  • 支持火焰图的最大宽度 (#2452)

  • 对HTTP GET请求删除 Content-Length header (#2458) 

  • HTTP server支持 100-continue 、删除请求中的Expect header (#2499)

  • 优化HTTP回复HEAD请求的返回结果中的 Content-Length (#2469)

  • 修复 Content-Length 和 Transfer-Encoding 并存的问题 (#2518)

  • 优化 ssl 读取日志 (#2451)

  • 优化 ParallelChannel 的AddChannel 接口 (#2467) 

  • 支持 uint32类型的 reloadable flags (#2483)

  • 编译单测时使用全局的 CMAKE_CPP_FLAGS (#2494) 

  • 优化竞争: 支持 tcmalloc GetStackTrace 、减少重复的hash计算 (#2488)

  • gdb bthread stack脚本支持 libc++ (#2516) 

  • 添加 lldb bthread stack 脚本  (#2514)

  • 优化 HttpResponseSender 的move 构造函数 (#2504)

  • 把 UserDataDeleter 的类型从函数指针改成 std::function (#2431)

  • 添加fuzz测试 (#2420)

  • 优化文档和注释

详情可查看更新说明

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
2 收藏
分享
返回顶部
顶部