www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]RPC 是遠(yuǎn)程過程調(diào)用協(xié)議,實(shí)現(xiàn)跨進(jìn)程透明通信,通過注冊中心動態(tài)管理服務(wù),支持高效二進(jìn)制傳輸(如 Protobuf)、負(fù)載均衡和故障容錯,解耦服務(wù)間依賴,提升分布式系統(tǒng)擴(kuò)展性與可靠性。

1、定義

    RPC-遠(yuǎn)程過程調(diào)用,是一種通信協(xié)議,允許調(diào)用不同進(jìn)程空間的程序,即調(diào)用另一個地址空間(通常是遠(yuǎn)程機(jī)器)的過程或函數(shù),就像調(diào)用本地函數(shù)/方法一樣

2、優(yōu)點(diǎn)

  • 無論是客戶端還是服務(wù)端,不需要額外的定義,RPC直接調(diào)用
  • RPC使用自定義的協(xié)議格式,減少冗余報(bào)文
  • RPC采用更高效的序列化協(xié)議,將文本轉(zhuǎn)換為二進(jìn)制傳輸
  • RPC更容易擴(kuò)展和集成

3、RPC框架處理的問題

  • 兩個應(yīng)用程序部署在兩臺機(jī)器選擇TCP協(xié)議或者HTTP協(xié)議
  • 兩個應(yīng)用程序部署在一臺機(jī)器選擇Unix Socket協(xié)議
  • 報(bào)文編碼格式選擇JSON或者XML
  • 報(bào)文較大選擇protobuf

4、注冊中心

    客戶端和服務(wù)端互相不知道對方的存在,服務(wù)端啟動時,將自己注冊到注冊中心;客戶端調(diào)用時,從注冊中心獲取到所有可用的實(shí)例,選擇一個來調(diào)用。注冊中心還需要實(shí)現(xiàn)服務(wù)動態(tài)添加、刪除,使用心態(tài)確保服務(wù)處于可用狀態(tài)。

核心角色

  • 服務(wù)端(Provider):啟動時向注冊中心注冊自己的地址和元數(shù)據(jù)
  • 客戶端(Consumer):調(diào)用服務(wù)時從注冊中心獲取可用服務(wù)端地址
  • 注冊中心(Registry):記錄服務(wù)地址并提供健康檢查(如 Consul、EtcdZooKeeper

5、關(guān)鍵流程解析

服務(wù)注冊:

  • 服務(wù)端啟動時將自己的地址(如 192.168.1.100:8080)和元數(shù)據(jù)(服務(wù)名稱、健康檢查接口)注冊到 Consul
  • Consul 會定期調(diào)用健康檢查接口(如 /health),自動剔除故障節(jié)點(diǎn)

服務(wù)發(fā)現(xiàn):

  • 客戶端不直接寫死服務(wù)端地址,而是向 Consul 查詢 math-service 的可用實(shí)例列表
  • 客戶端通過負(fù)載均衡策略(隨機(jī)、輪詢、權(quán)重等)選擇一個可用地址進(jìn)行調(diào)用

解耦效果:

服務(wù)端無需知道客戶端的存在,只需關(guān)注自身服務(wù)實(shí)現(xiàn);客戶端無需維護(hù)服務(wù)端地址列表,動態(tài)感知服務(wù)實(shí)例變化;注冊中心統(tǒng)一管理服務(wù)拓?fù)潢P(guān)系。

6、場景模擬

假設(shè)有 3 個服務(wù)端實(shí)例:

math-service-1192.168.1.101:8080

math-service-2192.168.1.102:8080

math-service-3192.168.1.103:8080

當(dāng)客戶端調(diào)用時:

  •     Step1:通過 Consul 獲取到 3 個實(shí)例地址
  •     Step2:隨機(jī)選擇其中一個(如 math-service-2)發(fā)起 RPC 調(diào)用
  •     Step3:如果 math-service-2 宕機(jī),Consul 會在下次健康檢查時將其標(biāo)記為不可用
  •     Step4:客戶端下次發(fā)現(xiàn)時只會獲得剩余 2 個健康實(shí)例

7、關(guān)于GeeRPC

GeeRPC從零實(shí)現(xiàn)go語言官方的標(biāo)準(zhǔn)庫net/rpc,并在此基礎(chǔ)上增加協(xié)議交換、注冊中心、服務(wù)發(fā)現(xiàn)、負(fù)載均衡、超時處理等模塊。

聲明:該篇文章為本站原創(chuàng),未經(jīng)授權(quán)不予轉(zhuǎn)載,侵權(quán)必究。
換一批
延伸閱讀

據(jù)業(yè)內(nèi)信息,近日Tweetbot、Twitterific等推特第三方客戶端大規(guī)模失效,導(dǎo)致用戶無法正常使用,開發(fā)人員表示是推特提供給第三方的公共API出現(xiàn)驗(yàn)證失敗問題,但是目前推特方面并未做出任何正式通知。

關(guān)鍵字: 推特 客戶端 API

近來總有人唱衰客戶端開發(fā)的前景,一位干脆取名叫“iOS勸退帶頭人”的網(wǎng)友講了這樣一個案例:朋友的初創(chuàng)公司一共15人左右,招一個iOS開發(fā),預(yù)算15k以內(nèi)。周一開放職位,周二就收到了900多份簡歷。根據(jù)985學(xué)歷、大廠背景...

關(guān)鍵字: 客戶端 iOS開發(fā) 簡歷

客戶端主動調(diào)用關(guān)閉連接的函數(shù),于是就會發(fā)送 FIN 報(bào)文,這個 FIN 報(bào)文代表客戶端不會再發(fā)送數(shù)據(jù)了,進(jìn)入 FIN_WAIT_1 狀態(tài);

關(guān)鍵字: 客戶端 TCP

之前寫過 TCP 三次握手和四次揮手過程中,途中某一步的報(bào)文丟失會發(fā)生什么的文章。

關(guān)鍵字: TCP 服務(wù)端

客戶端(Client)或稱為用戶端,是指與服務(wù)器相對應(yīng),為客戶提供本地服務(wù)的程序。除了一些只在本地運(yùn)行的應(yīng)用程序之外,一般安裝在普通的客戶機(jī)上,需要與服務(wù)端互相配合運(yùn)行 [1] 。因特網(wǎng)發(fā)展以后,較常用的用戶端包括了如萬...

關(guān)鍵字: 客戶端 數(shù)據(jù)庫 即時通訊

摘 要:為減少建筑工地助力搬運(yùn)車超速運(yùn)行造成的安全事故,文中設(shè)計(jì)了一款基于WiFi網(wǎng)絡(luò)的智能監(jiān)控系統(tǒng)。該系統(tǒng)主要由服務(wù)器、WiFi網(wǎng)絡(luò)和客戶端組成。通過部署多個WiFi熱點(diǎn),建立基于WiFi的無線網(wǎng)絡(luò);服務(wù)器與客戶端通過...

關(guān)鍵字: 速度監(jiān)控 Wi-Fi 服務(wù)器 客戶端

客戶端每建立一個連接就要消耗一個端口,所以很多同學(xué)當(dāng)看到客戶端機(jī)器上連接數(shù)一旦超過3W、5W就緊張的不行,總覺得機(jī)器要出問題了。

關(guān)鍵字: TCP 客戶端

雖然大多數(shù)用戶對使用USB電纜在Android手機(jī)和PC之間傳輸數(shù)據(jù)感到滿意,但也有人希望在沒有USB電纜的情況下將數(shù)據(jù)傳輸?shù)睫D(zhuǎn)移。簡短線圈越少越好。對于大多數(shù)無線用戶PC-android來說,唯一的問題是有一個...

關(guān)鍵字: Linux Windows 客戶端

此前我們曾報(bào)道過,有推主爆料稱“《守望先鋒》客戶端將與《守望先鋒2》客戶端合并,最終只會存在一款游戲”。近日在接受外媒Kotaku采訪時,游戲總監(jiān)Jeff Kaplan也確認(rèn)了這一點(diǎn)。 外媒VG247

關(guān)鍵字: 守望先鋒 守望先鋒2 客戶端 暴雪
關(guān)閉