[英]spring integration jms components understading
我对Spring集成和JMS适配器项目不熟悉,我试图了解各种适配器。 请有人解释,为什么以及何时使用以下内容
<bean id="jmsDestination" class="com.tibco.tibjms.TibjmsQueue">
<constructor-arg value="queue.sample" />
</bean>
这充当队列吗?
<integration:channel id="requests"/>
这是什么? 为什么以及何时应该定义和使用什么?
<int-jms:outbound-channel-adapter>
和<int-jms:inbound-channel-adapter>
什么时候以及为什么我们应该使用它? 请注意,我从文档中了解到,一个是消费者,另一个是向频道创建新消息。
最后, <int-jms:message-driven-adapter>
什么时候以及为什么我们应该使用它?
我可以浏览文档,了解其中的每一个,但是无法弄清楚编写Spring集成代码的顺序,以便我可以将它们连接在一起。
例如:回答如下:“您需要定义一个通道,然后它应该有一个出站适配器,其目的地名称与通道ID相匹配。等,这样会很有帮助”
我在这里先向您的帮助表示感谢。
Spring Integration是企业集成模式的实现。
Message Channel
将生产者绑定到消费者。 最常见的类型是DirectChannel
,它是您在上面定义的一种。
您的第一个<bean/>
与Spring Integration无关,它是Tibco对JMS Destination
的实现(在本例中为称为queue.sample
的队列)。 不幸的是,JMS选择了“目的地”,因为您不仅要发送到目的地,而且还要从目的地接收。
Spring Integration适配器(及其所在的Spring JMS)将消息发送到JMS目标并从JMS目标接收消息。 目标是适配器配置的一部分。
outbound-channel-adapter
用于将消息发送到JMS。 入站通道适配器有两种类型, inbound-channel-adapter
是已轮询的消息源-您将轮询器配置为每隔很长时间运行一次,它将轮询适配器以对消息进行“轮询”。 轮询器通常会在客户端中阻止可配置的超时。 message-driven-channel-adapter
未轮询; 它具有(一个或多个)事件驱动的内部线程-当消息到达队列时,消息会被推送到适配器的通道。
在这两种驱动程序中,最常用的是消息驱动适配器,但是如果希望仅在一天中的特定时间(使用cron触发器)检索消息,则可能希望使用轮询适配器。
典型的流程可能是
message-driven-adapter->transformer->outbound-channel-adapter
在->
是通道的情况下,转换器对数据进行一些处理,并且适配器将配置为可从目标读取和写入目标。
建议您阅读参考手册的介绍性章节和JMS章节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.