【问题标题】:spring integration jms components understadingspring集成jms组件理解
【发布时间】:2014-09-20 03:03:17
【问题描述】:

我对 Spring 集成和 JMS 适配器项目工作比较陌生,我正在尝试了解各种适配器。请有人解释一下,为什么以及何时使用以下

<bean id="jmsDestination" class="com.tibco.tibjms.TibjmsQueue">
    <constructor-arg value="queue.sample" />
</bean>

这就像一个队列?

&lt;integration:channel id="requests"/&gt;这是什么?为什么以及何时我们应该定义和使用 with what?

&lt;int-jms:outbound-channel-adapter&gt;&lt;int-jms:inbound-channel-adapter&gt; 何时以及为什么我们应该使用它?请注意,我从文档中了解到一个是消费者,另一个是向频道创建新消息。

最后,&lt;int-jms:message-driven-adapter&gt; 我们何时以及为什么要使用它?

我可以浏览文档,理解其中的每一个,但无法弄清楚 Spring 集成代码的编写顺序,以便我可以将它们连接在一起。

例如:以“您需要定义一个通道,然后它应该有一个目标名称与通道 id.etc 等匹配的出站适配器有很大帮助”的形式回答

提前感谢您的帮助。

【问题讨论】:

    标签: spring spring-integration


    【解决方案1】:

    Spring Integration 是 Enterprise Integration Patterns 的一个实现。

    Message Channel 将生产者绑定到消费者。最常见的类型是 DirectChannel,也就是您在上面定义的类型。

    您的第一个 &lt;bean/&gt; 与 Spring Integration 无关,它是 Tibco 对 JMS Destination 的实现(在本例中是一个名为 queue.sample 的队列)。不幸的是,JMS 选择了“目的地”,因为您不仅可以发送到目的地,还可以从目的地接收。

    Spring Integration 适配器(以及它所在的 Spring JMS)向 JMS 目标发送消息并从其接收消息。目标是适配器配置的一部分。

    outbound-channel-adapter 用于向 JMS 发送消息。有两种类型的入站通道适配器,inbound-channel-adapter 是轮询消息源 - 您配置轮询器以每隔一段时间运行一次,它会调用适配器“轮询”消息;轮询器通常会在客户端阻塞一个可配置的超时。 message-driven-channel-adapter 未被轮询;它有(一个或多个)事件驱动的内部线程——当消息到达队列时,它会被推送到适配器的通道。

    在这两者中,消息驱动适配器最常用,但如果您希望仅在一天中的特定时间(使用 cron 触发器)检索消息,则可能需要使用轮询适配器。

    一个典型的流程可能是

    message-driven-adapter->transformer->outbound-channel-adapter
    

    -&gt; 是通道,转换器对数据进行一些操作,适配器将被配置为读取和写入目标。

    我建议你阅读Reference Manual的介绍和JMS章节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-23
      • 2013-01-06
      • 1970-01-01
      • 2015-11-01
      • 2013-02-04
      • 1970-01-01
      • 2021-11-06
      • 2018-12-25
      相关资源
      最近更新 更多