如何在服務(wù)器群集中的服務(wù)器之間進行通信?
發(fā)布時間:2020-07-15 點擊數(shù):6636
在建立服務(wù)器群集時,群集中的服務(wù)器需要進行通信。例如,Client1(簡稱C1)連接到Server1(簡稱S1),Client2連接到Server2,并且Client1需要向Client2發(fā)送消息。 S1不知道C2已連接到S2。
我想到了兩個選擇:
方案A:采用組播(或廣播)。 S1收到C1消息后,發(fā)送廣播報文查詢C2所在服務(wù)器。此時,S2回復(fù)S1,S1將消息發(fā)送到S2,S2將其轉(zhuǎn)發(fā)到C2,但是udp并不可靠,盡管服務(wù)器位于同一局域網(wǎng)中,如果消息丟失,則C2可以沒有收到C1的消息。
選項B:添加路由服務(wù)器,所有服務(wù)器都連接到路由服務(wù)器(tcp長連接),S1將消息轉(zhuǎn)發(fā)到路由服務(wù)器,路由服務(wù)器廣播到所有服務(wù)器,由每個服務(wù)器判斷,但是復(fù)雜度高程序數(shù)量的增加順便說一下,如果消息數(shù)量大量增加,則每個服務(wù)器將處理自身未處理的消息,并且路由服務(wù)器將成為瓶頸。
這不是消息隊列。簡單的可以使用zeromq來完成,稍微復(fù)雜的可以使用Rabbitmq / activemq / qpid和其他成熟的解決方案。
Rabbitmq
MQ被稱為消息隊列,消息隊列(MQ)是一種應(yīng)用程序到應(yīng)用程序的通信方法。應(yīng)用程序通過在隊列(應(yīng)用程序的數(shù)據(jù))之間讀取和寫入消息進行通信,而無需專用連接來鏈接它們。消息傳遞是指通過發(fā)送消息中的數(shù)據(jù)進行通信的程序,而不是通過直接相互調(diào)用來相互通信的程序,通常用于諸如遠(yuǎn)程過程調(diào)用之類的技術(shù)。排隊是指通過隊列進行通信的應(yīng)用程序。隊列的使用消除了接收和發(fā)送應(yīng)用程序以同時執(zhí)行的需求。在更成熟的MQ產(chǎn)品中,有IBM WEBSPHERE MQ等。
ActiveMQ
1. ActiveMQ是一種消息排隊技術(shù),其誕生是為了解決高并發(fā)問題!
2. ActiveMQ生產(chǎn)者消費者模型(生產(chǎn)者和消費者可以跨平臺和系統(tǒng))
有中間平臺3,ActiveMQ支持兩種消息傳輸方式
1)隊列,隊列模式,生產(chǎn)者產(chǎn)生一條消息,該消息只能由一個消費者使用
2)主題,發(fā)布/訂閱模型,生產(chǎn)者產(chǎn)生一條消息,可由多個消費者使用
Qpid
AMQP是用于業(yè)務(wù)消息的開放網(wǎng)絡(luò)協(xié)議。他定義了一個二進制的線級協(xié)議,該協(xié)議允許雙方執(zhí)行可靠的業(yè)務(wù)消息傳遞。該協(xié)議的目標(biāo)是成為所有消息中間件之間互操作性的標(biāo)準(zhǔn)協(xié)議。
消息隊列是進程間通信線程之間或同一進程的不同線程之間的通信方法。
Qpid是Apache開發(fā)的消息隊列,實現(xiàn)AMQP協(xié)議并支持多種語言和多種平臺。
零平方米
這是一系列類似于Socket的接口。它和Socket的區(qū)別在于普通套接字是端到端的(1:1關(guān)系),而ZMQ是N:M關(guān)系。您了解有關(guān)點對點連接的更多信息。點對點連接需要顯式建立連接,破壞連接,選擇協(xié)議(TCP / UDP)和處理錯誤。 ZMQ屏蔽了這些細(xì)節(jié),使您的網(wǎng)絡(luò)編程更加輕松。 ZMQ用于節(jié)點與節(jié)點之間的通信。節(jié)點可以是主機或進程。
引用官方聲明:“ ZMQ(ZeroMQ縮寫為ZMQ)是一個簡單易用的傳輸層。它是一個類似于框架的套接字庫。它使套接字編程更簡單,更簡潔并且具有更高的性能。它是一個消息處理隊列庫,可以在多個線程,核心和主機盒之間靈活伸縮。ZMQ的明確目標(biāo)是“成為標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議棧的一部分,然后進入Linux內(nèi)核?!彼麄冞€沒有看到他們的成功,但是,毫無疑問,這是極其有希望且要求更高的BSD套接字上的封裝層。ZMQ使編寫高性能網(wǎng)絡(luò)應(yīng)用程序變得極為輕松和有趣。
這不只是一個消息隊列嗎?簡單的可以使用zeromq完成,稍微復(fù)雜的可以使用Rabbitmq / activemq / qpid和其他成熟的解決方案
希望全網(wǎng)數(shù)據(jù)小編的方法對大家有用,全網(wǎng)數(shù)據(jù)為大家提供專業(yè)的深圳服務(wù)器托管,深圳服務(wù)器租用,深圳主機托管,云服務(wù)器租用等服務(wù)器資源,詳情歡迎咨詢客服了解。