欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI

页面树结构

欢迎使用普元文档库

Skip to end of metadata
Go to start of metadata

问题描述:JMS-JMS穿透场景下如何支持多个消费者调用同一个服务并且实现请求报文发送到服务方,服务方处理后将返回报文发还给请求方?

如:有A、B、C三个消费方系统,同时调用D服务方开发同一个WebService服务 Serivce1,并且双方是JMS方式通讯。
    由于开发JMS业务服务时,只可以指定一个接出队列QueueOut,开发JMS代理服务时,只可以指定一个接入队列QueueIn。
    那只能实现请求方将请求报文发送到QueueIn,ESB将消息路由到QueueOut,服务方从QueueOut中获取消息。服务方处理完的报文要怎么返回给请求方?
    再者,如果实现了报文可以返回,请求方接收返回报文时,各系统从同一个队列中取报文,还是每个系统有一个自己专属的队列去取报文?

解决方案:可以通过异步调用的方式实现,具体模型如下图,通过三个相同模型,通过代理服务实现消费方A、B、C分别向服务方D发送请求,请求的JMS报文进入到队列后,在中介服务中实现JMS-HTTP的转换和web服务对请求的处理,再将中介服务返回的回馈报文转换为JMS后经过JMS业务服务发送到消费方,在该过程中每个消费方都有一个专属的队列;  

也可参考帮助手册中关于HTTP-JMS协议转换章节关于中介流的开发过程。