首頁 >Java >Java基礎 >自建RPC都需要哪些功能?

自建RPC都需要哪些功能?

大鹏
大鹏原創
2021-06-01 12:56:471641瀏覽

現在已經有很多完善的開源rpc架構了,如果要理解程式如何能高效穩定運行,理解rpc建立的過程很有必要,自建過程大致可以分成兩部分,通訊部分和協調部分。

通訊部分有服務端和客戶端,服務端監聽約定好的端口,等待連接,客戶端建立與服務端的連結。為了資訊高效傳輸,資料需要序列化之後傳輸,接收後反序列化。

有了以上兩個需求,總結一些服務端和客戶端的功能。

服務端功能可以有:監聽埠、回應連線請求、接收資料包、解析資料包、呼叫回應方法、組裝請求處理結果資料包、傳送結果資料包;客戶端功能可以有:建立連接、組裝資料、發送資料包、接收處理結果資料包、解析資料包回傳結果。

到此一個簡單的rpc功能就完成了。

作為生產層級的產品,只有核心通訊功能是不夠用的,還需要協調管理功能,讓功能穩定且有效率地運作。

需要連線池加快連結建立的速度,叢集部署的消費者需要負載平衡,叢集中的節點需要路由管理,需要隨時維護服務狀態,剔除錯誤節點,需要優雅關閉,避免重啟導致訊息遺失,需要過載保護,丟棄超時請求等等。

好了綜上所述,再總結一下消費者和生產者的功能需求。

消費者可以有:連線管理、負載平衡、請求路由、逾時處理、健康檢查;生產者可以有:執行緒池、逾時丟棄、優雅關閉、過載保護。

以上是總結的自建rpc需要的功能,有遺漏歡迎補充。

相關推薦:《java影片教學

#

以上是自建RPC都需要哪些功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn