是否需要使用中间件来使用REST服务?

时间:2015-09-16 04:10:01

标签: rest jersey integration esb mq

有一个外部网络服务(基于REST),提供物流服务。为了从我们的应用程序(即java堆栈)中使用它,我创建了一个客户端库(使用jersey和jackson,它是一个独立的jar文件,并提供简单的getter和setter来使用)。使用此REST服务所需的只是此jar文件(用作可重用资产)。

然而,我们的一位客户问道,“既然我们已经有了ESB(来自IBM的中间件)用于我们现有的集成,为什么我们也不能通过ESB进行这种集成?”

  • 是否可以使用ESB(或MQ)等中间件来使用基于REST的服务?如果是这样,怎么样?
  • 这样做是明智的吗?
  • 我可以向客户提出哪些论据告诉他们这可能不起作用?

感谢。

1 个答案:

答案 0 :(得分:0)

Is it possible to consume the REST based service using a middleware such as ESB(or MQ) ? If so, how ? - 

是。每个ESB都有其语法/ API。如果您已经在使用REST / http请求,那么应该不难理解。注意,MQ是一个允许异步通信的消息代理。例如,想要使用REST服务的应用程序可以向代理发送消息,而不是等待来自外部服务的响应。消息代理反过来可以将REST与外部服务对话。消息代理可能会公开REST接口以使用消息。但这一切都取决于用例。您可能希望同步调用REST服务。

大多数ESB支持调用外部Web服务REST / SOAP。所以ESB并不一定意味着MQ。

Will it be wise to do it ?

这取决于。许多组织将ESB / Gateway设置为策略并路由/过滤/管理所有外部路由。还要管理负载,HA等。

What arguments can I posit to my client to tell them this may not work ?

它肯定会起作用。您应该根据您的要求评估使用ESB是否是一种开销。