TCP RPC和HTTP RPC

最近在了解SOA和微服務(wù)相關(guān)的東西,服務(wù)和服務(wù)之間都避免不了通信驹饺,一般通信分為同步的和異步的。異步的基本都是用消息隊(duì)列完成赏壹,開(kāi)源的消息隊(duì)列有很多了么伯,如基于redis的卡儒,rabbitmq田柔,kafka,Metaq(RocketMQ),ActiveMQ硬爆,ZeroMQ,httpsqs缀磕,nanomsg等,太多了不一一列出來(lái)了袜蚕。消息隊(duì)列的主要問(wèn)題作用是提高吞吐量糟把,例如在推送牲剃,發(fā)短信遣疯,發(fā)郵件凿傅,日志收集場(chǎng)景會(huì)使用到缠犀。支付寶和銀行的交易系統(tǒng)異步都是靠消息隊(duì)列在中間緩沖的聪舒,對(duì)于客戶端使用異步服務(wù)的時(shí)候,應(yīng)該提供交易狀態(tài)查詢箱残。在分布式即時(shí)通訊里面滔迈,通常使用發(fā)布和訂閱消息隊(duì)列完成一個(gè)路由功能被辑。對(duì)于消息隊(duì)列亡鼠,異步都是支持同步發(fā)送和異步發(fā)送的敷待,但是執(zhí)行絕大多數(shù)情況下是異步的仁热,典型的設(shè)計(jì)場(chǎng)景就是生產(chǎn)者和消費(fèi)者模型榜揖。在iOS里面抗蠢,有個(gè)很特殊的東西举哟,異步消息同步執(zhí)行迅矛,但是這依賴了系統(tǒng)的機(jī)制runloop完成妨猩,所以在對(duì)了解runloop的人秽褒,做app ui渲染優(yōu)化特別有用壶硅。對(duì)于了消息的序列化有很多種方式,最終傳的基本都是二進(jìn)制庐椒,不管是使用什么協(xié)議序列化的。具體的序列化案例就不說(shuō)了约谈,因?yàn)樘嗔吮仕蓿鏹son棱诱,protobuf泼橘。對(duì)于同步的通信迈勋,本質(zhì)上都是基于socket的RPC炬灭,例如Thrift粪躬,gRPC,JsonRPC镰官,RESTful API(webservice)等提前∮具耄基本的東西就介紹到這里了狈网,切入主題吧笨腥。分布式首要解決的就是路由問(wèn)題拓哺,如何負(fù)載均衡脖母。很多時(shí)候的集群負(fù)載均衡都是依賴客戶端負(fù)載均衡士鸥,這個(gè)對(duì)進(jìn)程是很蛋疼的谆级,也很難做得比較好。對(duì)于TCP負(fù)載均衡肥照,當(dāng)然有幾個(gè)開(kāi)源的方案脚仔,nginx(非官方模塊)舆绎,haproxy鲤脏,LVS,動(dòng)態(tài)dns等猎醇。在消息隊(duì)列和RPC集群里面,大家通常會(huì)用zookeeper做集群管理和服務(wù)發(fā)現(xiàn)姑食。 TCP RPC和HTTP RPC相比, TCP RPC的優(yōu)勢(shì)在哪里呢音半?一般說(shuō)是性能問(wèn)題则拷,很多人說(shuō)到http的頭多了一些數(shù)據(jù)占用帶寬曹鸠,還有長(zhǎng)連接的問(wèn)題。事實(shí)是SPDY彻桃,http2已經(jīng)是長(zhǎng)連接了坛善,做設(shè)計(jì)RPC的時(shí)候邻眷,不妨考慮http吧眠屎,使用http RPC有很多次管理上的好處肆饶,例如可以使用nginx改衩,tengine做負(fù)載均衡驯镊,運(yùn)營(yíng)web網(wǎng)站的工具基本都是可以用的葫督。有個(gè)大牛說(shuō)板惑,用http rpc可以很輕松做到7層網(wǎng)絡(luò),但是使用TCP RPC就蛋疼了冯乘。Google開(kāi)源的gRPC就是基于http2設(shè)計(jì)的洽胶,我相信Google這樣做是有原因的裆馒。在支持http長(zhǎng)連接的環(huán)境下,使用TCP RPC不會(huì)有特別明顯的優(yōu)勢(shì)领追。基于http的RPC完成可以讓客戶端直接訪問(wèn)绒窑,gPRC本身就支持了,http://www.infoq.com/cn/news/2015/03/grpc-google-http2-protobuf
很多東西僅僅從性能上思考是不夠的些膨,大家都說(shuō)c/c++效率高蟀俊,但是有些用c++設(shè)計(jì)出來(lái)的產(chǎn)品還不如java的性能好订雾。單一層面思考的方案通常價(jià)值不大肢预。所以我們應(yīng)該多方面接觸了解洼哎,不要過(guò)于偏執(zhí)于語(yǔ)言烫映。對(duì)于單臺(tái)服務(wù)器噩峦,linux3.9內(nèi)核開(kāi)始支持SO_REUSEPORT锭沟,對(duì)于端口復(fù)用识补,對(duì)于像nginx族淮,node.js等多實(shí)例程序很友好凭涂,內(nèi)核自動(dòng)完成cpu負(fù)載均衡祝辣,避免沒(méi)有必要的競(jìng)爭(zhēng)切油。具體 http://www.blogjava.net/yongboy/archive/2015/02/12/422893.aspx http://www.blogjava.net/yongboy/archive/2015/02/25/423037.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市白翻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滤馍,老刑警劉巖岛琼,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巢株,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡阁苞,警方通過(guò)查閱死者的電腦和手機(jī)困檩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)那槽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人骚灸,你說(shuō)我怎么就攤上這事。” “怎么了义郑?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)非驮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)劫笙,這世上最難降的妖魔是什么芙扎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任邀摆,我火速辦了婚禮,結(jié)果婚禮上栋盹,老公的妹妹穿的比我還像新娘。我一直安慰自己例获,他們只是感情好汉额,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布榨汤。 她就那樣靜靜地躺著,像睡著了一般收壕。 火紅的嫁衣襯著肌膚如雪妓灌。 梳的紋絲不亂的頭發(fā)上蜜宪,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音圃验,去河邊找鬼掉伏。 笑死澳窑,一個(gè)胖子當(dāng)著我的面吹牛斧散,可吹牛的內(nèi)容都是我干的摊聋。 我是一名探鬼主播鸡捐,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼麻裁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瞻鹏!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鹿寨,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤薪夕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后原献,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體馏慨,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姑隅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讲仰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鄙陡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趁矾,到底是詐尸還是另有隱情耙册,我是刑警寧澤毫捣,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布详拙,位于F島的核電站蔓同,受9級(jí)特大地震影響饶辙,放射性物質(zhì)發(fā)生泄漏牌柄。R本人自食惡果不足惜畸悬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一珊佣、第九天 我趴在偏房一處隱蔽的房頂上張望蹋宦。 院中可真熱鬧咒锻,春花似錦冷冗、人聲如沸惑艇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)思灌。三九已至,卻和暖如春泰偿,著一層夾襖步出監(jiān)牢的瞬間熄守,已是汗流浹背耗跛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工裕照, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留调塌,地道東北人晋南。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓羔砾,卻偏偏與公主長(zhǎng)得像负间,于是被迫代替她去往敵國(guó)和親姜凄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子唉擂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容