Apache bRPC 1.4.0 版本已發(fā)布,支持 RDMA。據(jù)稱這是畢業(yè)之后的第一個(gè)版本,由新的版本經(jīng)理王曉峰負(fù)責(zé),順利完成。


【資料圖】

bRPC 于 2014 年誕生于百度基礎(chǔ)架構(gòu)部,是一款采用 C++ 編寫的工業(yè)級(jí) RPC 框架,常用于搜索、存儲(chǔ)、機(jī)器學(xué)習(xí)、廣告、推薦等高性能系統(tǒng)。2017 年正式在 GitHub 進(jìn)行開源,并于 2018 年 11 月正式捐獻(xiàn)給全球頂級(jí)開源社區(qū) Apache 軟件基金會(huì) (ASF),對(duì)外開源版本的名稱為 Apache bRPC,成為 ASF 孵化級(jí)項(xiàng)目。

據(jù)介紹,bRPC 以功能全、可擴(kuò)展、高性能等特性得到越來越多用戶的認(rèn)可和使用,經(jīng)過四年多的孵化,bRPC 開發(fā)者數(shù)量增長數(shù)倍、在 GitHub 上的 Star 數(shù)也超過 14.4K,目前已覆蓋了互聯(lián)網(wǎng)、人工智能、搜索、推薦、電商和教育等多個(gè)行業(yè)和領(lǐng)域,被許多公司廣泛使用并對(duì)該項(xiàng)目進(jìn)行持續(xù)貢獻(xiàn),線上服務(wù)實(shí)例數(shù)已超過 600W,現(xiàn)已成為業(yè)界廣受歡迎的開源 RPC 框架之一。

1.4.0 版變更如下

新功能

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

MVariable支持導(dǎo)出到Prometheus by@ldak4747 in #1964

支持超時(shí)限流by @yanglimingcn in #2027

支持限制同一連接上消費(fèi)隊(duì)列大小by @chenbay in #1958

支持出錯(cuò)時(shí)自定義 HTTP body by @jamesge

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

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

優(yōu)化并發(fā) channel,支持配置各 channel 分片總數(shù)by @cdjingit in #2057

Bug 修復(fù)

修正使用 LLD 鏈接器時(shí)符號(hào)重復(fù)導(dǎo)致的鏈接錯(cuò)誤 by @adonis0147 in #1936

修正 aarch64 下使用 clang 編譯后運(yùn)行時(shí) "sched_to itself" 的問題by @adonis0147 in #1950

修正解析 redis 消息時(shí)數(shù)據(jù)不足導(dǎo)致已解析消息被釋放的問題 by @dorothy00dd2 in #1959

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

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

修正未清除先前錯(cuò)誤信息導(dǎo)致的獲取 ssl 錯(cuò)誤碼錯(cuò)誤的問題 by @yyweii in #2019

修正 domain buffer 長度比標(biāo)準(zhǔn)小的問題 by @wayslog in #1965

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

功能增強(qiáng)

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

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

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

歸還 socket 時(shí)更新寫入時(shí)間;調(diào)整 -idle_timeout_second 默認(rèn)值為 30. by @jamesge

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

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

統(tǒng)一序列化 / 反序列化行為,僅支持反序列化根對(duì)象數(shù)組為單個(gè) repeated 成員的

protobuf 對(duì)象 by @chenBright in #2035

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

其他

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

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

減少單元測(cè)試輸出日志 by @wwbmmm

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

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

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

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

刪除不必要的分號(hào) by @guodongxiaren in #2004

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

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

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

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

其他文檔類改進(jìn) by @fansehep, @cuishuang, @tanzhongyi003, @lorinlee,

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

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

and @yanglimingcn

標(biāo)簽: Apache,Apache bRPC,攻略,教程