国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

讓Thrift支持雙向通信

2019-11-11 06:19:58
字體:
供稿:網(wǎng)友

【問題】

Thrift采用了C/S模型,不支持雙向通信:client只能遠程調(diào)用server端的RPC接口,但client端則沒有RPC供server端調(diào)用,這意味著,client端能夠主動與server端通信,但server端不能主動與client端通信而只能被動地對client端的請求作出應(yīng)答。這種RPC模式在某些應(yīng)用中存在缺陷,比如:有些應(yīng)用,在大部分情況下,client端會主動向server端發(fā)請求或者向server端發(fā)送數(shù)據(jù),而在少部分情況下,server端也需要主動向client發(fā)送一些命令,告知進行某些操作。

為了解決該問題,通常有三種方案可供選:

方案一:輪詢

該方案很容易想到:client端周期性地向server端詢問是否需要進行某些操作,如果需要,則什么也不做,如果需要,則按照server的應(yīng)答(response)要求進行操作。該方案的不足是延遲較大、且會浪費大量資源,造成不必要的訪問開銷。

方案二:雙client/server

通信雙方都既是client,也是server。該方案需要在通信雙方之間建立兩個通信通道,開啟兩個端口,這比較繁瑣,且很不優(yōu)雅。但仍是目前普遍采用的一套方案。

client/server <————————-> client/server

方案三:異步共享通道

Thrit底層實際上是socket,而socket是支持雙向傳輸?shù)?,因此,我們完全可以通過修改thrift本身實現(xiàn)雙向傳輸。有興趣的讀者可參考:

http://joelpm.com/2009/04/03/thrift-bidirectional-async-rpc.html


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 红河县| 新闻| 大冶市| 麻城市| 大同县| 越西县| 肃北| 商都县| 逊克县| 衡东县| 余干县| 鄂托克前旗| 盐源县| 岐山县| 温泉县| 五峰| 太仆寺旗| 东乌珠穆沁旗| 鲜城| 吕梁市| 通许县| 锡林郭勒盟| 迁安市| 沙河市| 蒙自县| 望江县| 海原县| 莱西市| 思茅市| 霸州市| 璧山县| 手游| 武安市| 莱芜市| 肇庆市| 湘潭县| 永平县| 荣昌县| 乡宁县| 昆山市| 乌恰县|