brpc又稱為baidu-rpc,是百度開發一款“遠程過程調用”網絡框架。目前該項目已在github上開源。當然在談這些前,需要知道什么是rpc。rpc全稱是Remote Procedure Call,即遠程過程調用。
百度開源的RPC框架BRPC,以其高性能、低延遲、易用性等優勢,使得其在高性能的C++開發領域非常受歡迎。
為什么高性能、低延遲上能夠有足夠大的優勢?
線程模型(Thread Module):使用bthread 用戶態協程,結合N:M的調度模型,以及work-steal 搶占式調度實現;為bthread打造的butex同步組件,為實現高性能的RPC框架提供了較為高效和簡潔的并發編程基礎。
內存管理(Buffer & Memory Management):buffer-ManangerMent通過IOBuf(非連續零拷貝緩存)方式減少數據傳遞處理過程中的拷貝。各種ThreadLocal的ResoucePool,Object Pool等來優化定長的短生命周期的申請和釋放。
執行隊列(exec queue):多生產者單消費者無鎖隊列,實現了多生產者單消費者之間的的高效通信,在實現單TCP連接復用,高效發送-接收數據上發揮了很重要的作用。
超時定時器(Timer Keeping): 使用高效的定時器管理超時的RPC,并進行回調。
避免過多編碼:將數據Body作為Attachment的方式,而不需要編解碼
易用性體現在哪里?
ProtoBuf 支持:支持google ProtoBuf 定義RPC協議
單端口多協議支持:支持在同一端口識別不同的協議(Redis等)
高性能bvar統計:通過高性能的bvar進行方面的性能統計,并且支持導出到普羅米修斯-形成一整套監控方案。
IO模式:支持方面的同步和異步的編程模型
擴展性:支持自定義的協議實現。
APICloud-專業APP開發、app定制服務商,提供一站式移動應用解決方案,滿足您的各類需求,歡迎免費評估需求和獲取報價。
立即免費在線制作一個APP,新手注冊即送開發大禮包
提交app定制需求,免費獲取報價和周期: