2013-11-24 132 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将推回到客户端。