我正在編寫服務器/客戶端遊戲,一個典型的場景如下所示:一個客戶端(clientA)向服務器發送消息,服務器中有一個MessageDrivenBean來處理此類消息。 MDB完成其作業後,會將結果消息發送回另一個客戶端(clientB)。關於JMS系統結構
在我看來,我只需要兩個隊列進行這種通信,一個用於輸入另一個用於輸出。爲每個連接創建新的隊列不是一個好主意,對吧? 輸入隊列相對清晰,如果有更多的客戶端同時發送消息,則消息只是在隊列中等待,而服務器中有更多的MDB實例,這不應該是一個很大的性能問題。
但在另一方面,我不太清楚輸出隊列,我應該使用主題而不是隊列嗎?每個客戶端正在監聽輸出隊列,其中一個獲取新消息並檢查屬性以確定消息是否屬於該消息,如果不是,則回滾事務,消息返回隊列並準備好用於其他客戶端... It應該工作,但一定很慢。如果我使用topic,每個客戶端都會得到一份消息副本,如果不是這樣,就會忽略消息。它應該會更好,對吧?
我是新的消息系統。有沒有關於我的實施的建議?謝謝!
感謝您的回答。現在我對JMS更加清楚了。順便說一句。我使用JMS是因爲前端使用flash,我使用blazeds消息系統與java後端進行通信。 http絕對是一種選擇,但blazeds消息系統具有服務器數據推送功能,這意味着不必每秒都查詢服務器響應,客戶端在收到響應時立即獲得響應。所以我決定使用jms。 – cn1h
@ cn1h隨着服務器將數據推送到客戶端,這是有道理的。你有這樣的技術是很好的,謝謝你的解釋。 – MaDa