分布式系统之通信技术学习
2019獨角獸企業重金招聘Python工程師標準>>>
分布式系統之通信技術學習(導師leaderus)
1,幾種常見的通信技術
????1,RPC
?????????
????????RPC是建立在socket通信基礎之上的,采用ascii編碼代替普通的字節流,從圖中可以看出RPC的過程
? ?2,遠程數據共享
????????常見的有FTP,到進來流行的zookeeper
? ?3,消息隊列
????????結構模型簡單,可以輕松實現客戶端多語言支持,在現在系統中運用很廣,基本上每個分布式系統都存在消息隊列。一般可以配合RPC使用
2,RPC通信技術原理
????????
????? ? ? ? ? 1,服務端設置監聽端口,監聽客戶端發起的鏈接和調用
????? ??? ??? ? 2,監聽端口監聽到請求,放到call隊列
????? ??? ??? ? 3,handler定時到call隊列去處理請求
????? ? ??? ??? ??? ? 如果不能一次性發送完所有的數據,會將未發送完的響應發送給responder
????? ??? ??? ? 客戶端:
????? ??? ??? ???1, 客戶端調用線程發起鏈接和call調用
????? ??? ??? ? ?2,同步等待響應
?3 RPC架構圖
? ? ? ? ?
???? 1,服務提供這在遠程調用管理組建注冊信息
???? 2,管理組建定時像服務提供者發送心檢測和注冊通知
???? 3,服務調度者像管理組建發送請求,管理組建像服務調度者提供可供服務的遠程服務
???? 4,實現遠程調度
????這是一個RPC通信框架的核心,這是一個衡量RPC通信通信框架完整與否的重要考量
4 ?幾種常用的RPC技術和框架
?????
????????1,j2ee 采用RMI通信協議,不夠通用
???????? 2,zeroc ice和阿里的duboo都采用custom socket通信(二進制傳輸性能較高)
???????? 備注:thrift支持多語言的一個高性能RPC通信框架,
????????????????????dubbo,阿里開源的RPC平臺,具有相對完善的生產環境組建,服務注冊,負載均和,管理和監控工具,
????????????????????但是只支持java于sping捆綁密切
???????? ? ? ? ? ? zeroc ice,rpc平臺,多語言跨平臺,具有相對完善的生產環境組建,服務注冊,負載均衡,管理和監控工具
?5 幾種RPC通信的技術實現
????????1 corba
????????????
???? ? ?corba用idl定義了客戶端和服務的對象接口
???? 2 webservice/soa
? ? ?3 Rest
????????采用了http通信,傳輸的采用json,xml,atom,rss定義一個接口,不用像corba,webservice定義一個靜態類生成大量的中間類,可以輕松實現多語言的調用
????????但是想比于傳統的socket通信,效率不高,而且也不安全
????? 3 zeroc ice rpc
???????? 跨平臺/夸語言,性能較高,安全
6 zeroc?ice?
????????1,提供客戶端和服務端的多語言注冊
????????2,zeroc icegrid介紹
???????????? ? 1,將部署和服務注冊放到一起
????????????????
????????? ? ?2,zeroc ice的服務路由和負載均衡
????? ? ? ? ???????? ?每個node是一個獨立進程組建,負責啟動本機上的多個ice server
? ? ? ? ?????????????? 不同node上的相同的server服務實例組成一個Replication Group,并可以定義負載均衡策略,比較常用的是輪訓方式以及基于機器負載的策略。
????????????????? ?可以不同的服務定義不同定義不同的策略。
????????????????????????平臺很具負載均衡策略返回一可用的地址列表,客戶端緩存這個地址,供后繼的服務訪問中使用,當緩存超時或者地址不可用重新獲取服務地址。 ?
??????????????????????
7,zeroc ice 運用到基于服務總線系統的常規框架
????????下圖是服務總線的架構圖
????????????
? ? ? ? ?從上圖可以看出有三個關鍵組建,負載均衡,服務目錄組成,服務提供提供者。
?????????????
????????????? ? ? ? ?
???? ?
轉載于:https://my.oschina.net/osenlin/blog/518682
總結
以上是生活随笔為你收集整理的分布式系统之通信技术学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux定时任务Crontab详解_定
- 下一篇: EMV内核使用中的常见问题