我正在尋找Java EE的全雙工流式傳輸解決方案。Java EE中的雙工流式傳輸
情況:客戶端應用程序(JavaFX)從外圍設備讀取數據。這些數據需要幾乎實時地傳輸到服務器進行處理,並且還可以異步地獲取響應,同時不斷髮送新數據進行處理。
與服務器的通信需要儘可能低的開銷。進入的數據基本上是一些傳感器數據,並且在處理之後它被轉換成可被描述爲一組命令的內容。
我已經看了什麼爲:
- TCP/IP服務器(這是一個非Java EE的做法)。這將是顯而易見的解決方案。從每個客戶端應用程序並行打開兩個連接:一個用於上游數據,另一個用於下游數據。
- 遠程&無狀態EJB。這意味着沒有流式傳輸,並且我將傳感器數據打包在較小的窗口中(傳感器數據爲1-2秒),然後發送到服務器進行處理並獲得處理結果作爲響應。對於這種方法,雖然它具有可擴展性,但我不確定考慮每隔1-2秒發出一次請求的速度有多快。我仍然需要測試這個,但我有我的疑惑。
- RMI。從技術上講,這與EJB有什麼不同?
- 兩個長查詢的servlet(向上/向下)。我以前沒有這樣做過,所以這是要測試的東西。
現在我想測試我的方法#2的性能。第一個解決方案肯定會起作用,但我不太喜歡有一個單獨的服務器(在Tomcat旁邊,我已經有一些東西在運行)。然而,與此同時,值得了解是否還有其他可以輕鬆解決這個問題的Java特定(EE或非)特定技術(EE或不)的技術。如果有人有想法,請分享。
是的,我將與ActiveMQ一起(至少對於測試)。我有時間研究它,另一方面的MDB也無濟於事,因爲我需要將處理後的消息返回給發件人。但是我發現ActiveMQ支持消息轉換。基本上,我可以在經紀人傳遞給消費者之前處理消息。 – 2013-02-20 21:03:53