2016-07-23 51 views
0

嗨,我真的是新來的RabbitMQ。我想實現RPC模式,但有多個客戶端和一臺服務器。任何人都可以推薦一種實現這一點的響應方式我有點擔心我實現一個客戶端的代碼,一個服務器會引入阻塞問題,理想情況下我希望客戶端能夠相當快地得到響應。任何recomendations或方法是受歡迎的。乾杯。RabbitMQ RPC多個發件人一個收件人

+0

請問您需要解決哪些業務問題? –

回答

0

一是剛拿到術語直:

    在RMQ方面
  • ,RMQ是一個經紀人(服務器),其客戶是生產者和消費者。
  • 在RPC上下文中(和例如the tutorial),我們有一個RPC客戶端和一個RPC服務器。所以當我們將它映射到RMQ上下文時,我們說RPC客戶端實際上既是RMQ生產者又是RMQ使用者(因爲它發送請求並接收應答)並且該RPC服務器既是RMQ使用者又是RMQ生產者(因爲它等待然後發送回覆)

現在,如果您按照教程中所述的方式(前面提到的鏈接)實現它,則不會有任何問題。您應該簡單地啓動更多的RPC服務器,以便可以並行處理更多的請求。

+0

好的,以回答Alexy的問題。業務問題是我們有一個網站,需要與相當老的會計軟件溝通,他們的API更適合在網絡上長時間運行連接的桌面應用程序。供應商不支持並暗示我們場景中的線程問題。所以我們的下一個方法是讓網絡應用程序發送消息到RabbitMQ,並有一個控制檯應用程序永久連接到會話應用程序,該應用程序監聽隊列,如果進程不是太長,就能夠通知Web應用程序用戶交易已被處理/排隊 – user1102550

+0

所以要回到從教程cantSleep(我用了一個不同的)。從性能/明智的架構方法。 RPC客戶端可以在每個呼叫的基礎上爲Web應用程序創建一個臨時隊列並返回到該應用程序。目前我不在我的電腦中,所以我無法運行教程。但從它看它會創建一個隊列。只是有點擔心一個隊列可能會產生瓶頸。我見過一些例子,它們創建了持續交易持續時間的暫時隊列。這是一個更可擴展的方向嗎? – user1102550