亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

今年7月底,搜狗公司開源了內(nèi)部的工業(yè)級C++服務(wù)器引擎Workflow,一路收獲業(yè)內(nèi)許多認(rèn)可和關(guān)注。9月15日,作為Workflow最重要的生態(tài)項目——srpc,一個基于其打造的輕量級RPC框架,也在GitHub上開源了。

GitHub搜索“sogou srpc”即可找到該項目。

  一個性能更好的thrift/brpc

srpc與thrift/brpc是協(xié)議與IDL均互通的。srpc除了自帶的sogou-std協(xié)議以外,還實現(xiàn)了baidu-std協(xié)議和thrift framed協(xié)議,因此srpc可以與thrift或brpc(連接池模式)互通。另外,接口描述文件支持protobuf和thrift,這意味著用戶不僅可以一鍵遷移基于protobuf或thrift作為IDL的項目,還可以用srpc作為一個性能更優(yōu)的thrift框架或者brpc框架。

與thrift相比,srpc所實現(xiàn)的thrift framed協(xié)議在吞吐和長尾方面性能都遠(yuǎn)超thrift原生框架。且srpc對于thrift接口描述文件實現(xiàn)了解析和代碼生成,因此用戶在srpc上使用thrift IDL時無需依賴thrift庫。

而在baidu-std協(xié)議的實現(xiàn)上,吞吐和長尾在大部分場景下依然是srpc更優(yōu)。且由于workflow支持Windows(同機(jī)性能比linux快20%),所以這等同于用戶得以在Windows下使用brpc。還有一點值得一提的是,同樣是支持protobuf的RPC框架,由于srpc實現(xiàn)了部分IDL解析和代碼生成,接口形式無需受protobuf原始限制,因而所提供的接口比brpc更為簡潔,以server的rpc接口為例:

  一個通用、易擴(kuò)展的RPC框架

除了支持binary傳輸,還支持HTTP+json和HTTP+binary的傳輸方式,業(yè)務(wù)可以借用HTTP實現(xiàn)跨語言,而傳輸本身對業(yè)務(wù)透明。這是除了上述介紹的協(xié)議層和接口描述文件層以外,srpc的另外一個重要層次。其中傳輸方式和協(xié)議層還可以互相結(jié)合,如果接收方為任何一種協(xié)議+HTTP作傳輸?shù)膕erver,則用戶都可以對其輕松地發(fā)送一個如下請求:

srpc內(nèi)部實現(xiàn)層次精巧,非常注重縱向?qū)哟尾鸱趾蜋M向解耦。其中壓縮層、序列化層、協(xié)議層是互相解耦的,利用函數(shù)重載、派生子類實現(xiàn)父類接口和模版特化等多種多態(tài)方式,來實現(xiàn)內(nèi)部使用同一套代碼的高度復(fù)用。后續(xù)架構(gòu)升級或者用戶進(jìn)行二次開發(fā),無論是中間再加一層、還是某層內(nèi)橫向添加一種內(nèi)容,都不需要改動現(xiàn)有的代碼,十分方便。

  一個打通了Workfflow、功能更強(qiáng)大的任務(wù)流RPC

任務(wù)流是Workflow 在設(shè)計之初就引入的概念,其可將資源高度封裝,用戶可不用關(guān)心內(nèi)部細(xì)節(jié)、不接觸到連接池、線程池,僅需要了解業(yè)務(wù)關(guān)系就能實現(xiàn)復(fù)雜的業(yè)務(wù)邏輯。srpc除了提供同步、半同步接口外,其異步接口可以利用Context拿到Series來打通Workflow 任務(wù)流,這就意味著srpc可以把RPC調(diào)用當(dāng)作任務(wù)流來組建。

srpc還可以使用Workflow 自帶的其他功能,一方面是服務(wù)治理。Workflow 的upstream是本進(jìn)程內(nèi)把一批機(jī)器綁定到一個域名下,自帶多種方式的負(fù)載均衡和熔斷恢復(fù)等機(jī)制,srpc的client對應(yīng)的是一個ip,或者一個帶本地服務(wù)治理的集群,直接可以使用負(fù)載均衡和熔斷恢復(fù)等機(jī)制。

另一方面,srpc 還可以調(diào)用 Workflow 其他資源。RPC只是網(wǎng)絡(luò)資源,而Workflow 包含了如計算調(diào)度和異步文件IO等資源,還有目前已經(jīng)實現(xiàn)的多種常用網(wǎng)絡(luò)協(xié)議(包括HTTP、Redis、MySQL、Kafka),這些都可以為srpc所用。

srpc目前在搜狗搜索和搜狐集團(tuán)團(tuán)隊中多個線上業(yè)務(wù)已經(jīng)穩(wěn)定使用一段時間,由于接口簡介易上手,且直接打通workflow的任務(wù)流、計算調(diào)度、服務(wù)治理等功能, 因此對開發(fā)效率有非常大的提升。但srpc相對來說也是一個很年輕且代碼量不多(約一萬行)的項目,搜狗后續(xù)還會持續(xù)推進(jìn)其生態(tài)建設(shè),有信心為不同的RPC開發(fā)場景提供更加全面的解決方案。

分享到:
標(biāo)簽:高性能 搜狗 開源 框架 通用 srpc RPC
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定