Apache bRPC 1.4.0 版本已發布,支持 RDMA。據稱這是畢業之后的第一個版本,由新的版本經理王曉峰負責,順利完成。


【資料圖】

bRPC 于 2014 年誕生于百度基礎架構部,是一款采用 C++ 編寫的工業級 RPC 框架,常用于搜索、存儲、機器學習、廣告、推薦等高性能系統。2017 年正式在 GitHub 進行開源,并于 2018 年 11 月正式捐獻給全球頂級開源社區 Apache 軟件基金會 (ASF),對外開源版本的名稱為 Apache bRPC,成為 ASF 孵化級項目。

據介紹,bRPC 以功能全、可擴展、高性能等特性得到越來越多用戶的認可和使用,經過四年多的孵化,bRPC 開發者數量增長數倍、在 GitHub 上的 Star 數也超過 14.4K,目前已覆蓋了互聯網、人工智能、搜索、推薦、電商和教育等多個行業和領域,被許多公司廣泛使用并對該項目進行持續貢獻,線上服務實例數已超過 600W,現已成為業界廣受歡迎的開源 RPC 框架之一。

1.4.0 版變更如下

新功能

支持RDMA by @Tuvie in #1836, #1967, #2005, #2036

MVariable支持導出到Prometheus by@ldak4747 in #1964

支持超時限流by @yanglimingcn in #2027

支持限制同一連接上消費隊列大小by @chenbay in #1958

支持出錯時自定義 HTTP body by @jamesge

支持禁用采樣線程by @leaf-potato in #1990

MVariable 添加 delete_stats 和 has_stats 接口by @serverglen in #2041

優化并發 channel,支持配置各 channel 分片總數by @cdjingit in #2057

Bug 修復

修正使用 LLD 鏈接器時符號重復導致的鏈接錯誤 by @adonis0147 in #1936

修正 aarch64 下使用 clang 編譯后運行時 "sched_to itself" 的問題by @adonis0147 in #1950

修正解析 redis 消息時數據不足導致已解析消息被釋放的問題 by @dorothy00dd2 in #1959

修正非 http (s) 協議誤設置 host 的問題 by @thorneliu in #1973

修正 MacOS 下編譯警告: bool literal returned from "main" [-Wmain] by @zyearnin #2020

修正未清除先前錯誤信息導致的獲取 ssl 錯誤碼錯誤的問題 by @yyweii in #2019

修正 domain buffer 長度比標準小的問題 by @wayslog in #1965

修正 demangle core 問題 by @wwbmmm in #2037

功能增強

支持使用 bazel 編譯 rdma_performance by @372046933 in #1984

支持使用 bazel 作為第三方模塊被集成 by @fansehep in #1996

嘗試加載多個可能的libibverbs.so路徑以成功啟用 RDMA by @372046933 in #1985

歸還 socket 時更新寫入時間;調整 -idle_timeout_second 默認值為 30. by @jamesge

當 IOBuf::append_user_data when size == 0 時盡早返回,減少不必要的處理邏輯by @372046933 in #2009

支持設置自定義 json parser/writer by @old-bear in #2026

統一序列化 / 反序列化行為,僅支持反序列化根對象數組為單個 repeated 成員的

protobuf 對象 by @chenBright in #2035

FlatMap 支持 unique_ptr 類型作為 value by @jamesge

其他

調整警告消息,提高可讀性 by @leaf-potato in #1989

將 CI 遷移到 GitHub workflow by @guodongxiaren and @zyearnin #1899, #2008, #2015, #2018, #2023 and #2030

減少單元測試輸出日志 by @wwbmmm

支持 RHEL 9 系列發行版下 RPM 打包 by @wasphin in #1955

避免 std::string 拷貝 @ml-haha in #1969

頭文件中直接包含依賴 by @372046933 in #1993

更新 iobuf.cpp 中警告消息,提高可讀性 by @wwbmmm

刪除不必要的分號 by @guodongxiaren in #2004

profile graph 頁面添加描述信息,以方便理解 by @hongliuliao in #2007

刪除示例下未使用的 logoff_ms 選項 by @leaf-potato in #2064

嘗試修復 "libbrpc.so: undefined symbol: pthread_mutex_lock" 問題by @co0l1ce in #2049 and #2076

保持 bthread TaskGroup abi 兼容 by @wwbmmm in #2047

其他文檔類改進 by @fansehep, @cuishuang, @tanzhongyi003, @lorinlee,

@Huixxi, @steven-66, @serverglen, @wwbmmm, @wasphin, @Tuvie, @0xflotus,

@thinh2, @leaf-potato, @TousakaRin, @cdjingit, @chenBright, @freemandealer

and @yanglimingcn

標簽: Apache,Apache bRPC,攻略,教程