伺服器端的訊息分發和路由機制
阿新 • • 發佈:2019-02-07
伺服器端的大資料處理和分散式應用,一直是最近幾年很火的框架應用,有很多開源框架,都是針對大資料的處理而設計的,這些資料處理框架能很好的利用叢集中計算機的分佈處理效能。
但是遷移到開源的框架總是有代價的,這涉及到原有的系統升級和新的介面修訂,為了向框架靠攏而靠攏,但很多時候,需要的資料處理,可能只是這些大框架的一部分,因此可以自己構建自己的分散式應用框架。
基於已完成的通用通訊模組部分,整個分散式處理的基石就有了,因為要與老的系統介面保持相容性,因此原來的序列化機制也就不做改動了,直接引入新的框架。
在老的系統處理中,面臨的最大問題,是訊息的分發和自動路由的負載均衡,因為系統是要用來處理業務,就不去按照MapReduce做分散式計算了,這個在眼前還沒法駕馭其在一個事務中。
新的系統中資料的處理思路還與老的系統一致,但是老的系統有一個很大的問題在於訊息分發時,很多時候都是在硬編碼,而不是在訊息層去通過訂閱機制處理,這就造成了開發中的極大的不通用性,老系統還面臨的問題,是資料的集中處理,想要分佈到其他空閒的應用伺服器上,就比較吃力,尤其是在應用擴充套件時,如何實現裝置動態擴容,就更無法想象了。本著解決上述問題的思路,引入新的訊息處理機制。
新的訊息分發處理中,引入了訊息中心機制,他負責生產者的訊息投遞和消費者的消費,訊息中心開放監聽埠,訊息釋出者和消費者通過各自的TCP處理通道,來發布和訂閱訊息,訊息介面統一,在拉取時,根據介面進行自動配對,通過監聽各應用處理伺服器的效能,來達到負載均衡的目的。
本質上是將客戶端和伺服器端服務的直接通訊過程,通過訊息中心進行了分解,將一個同步的過程變成了非同步的過程。