2013-11-24 177 views
0

目前我正在做一個項目的集成工作。在這個項目中,我們需要用java框架Wink公開一個restful api。由於我們還有其他幾個要集成的組件,因此我們在api層和其他服務部分之間放置了一個消息隊列(activemq)。但是這次api層將以異步方式與較低級別進行通信。在我的理解中,restful api應該以同步的方式運行。例如,在api層,如果一個線程收到一個請求,響應將返回到同一個線程中。所以這兩種溝通方式之間存在內在的不匹配。我的問題是,我們如何整合這兩部分來使api層工作而不犧牲消息隊列中的功能,如可靠性和性能? 任何建議將在這裏apprciated。 感謝集成api服務與消息隊列

回答

0

異步回調是REST通信成爲可能,看這件球衣框架,例如: https://jersey.java.net/documentation/latest/async.html

但是,是延時應控制您的客戶將等待服務器響應,而將是一件好事,如果客戶端以AJAX的方式調用它。

最簡單的方法是通過「執行程序服務」來分發新進程,該程序將通道中的消息發送到較低級別的api,並偵聽另一個通道(MQ通信)中的響應。並且在流程完成時返回一個響應,然後更高的API將推回到客戶端。