当前位置: 首页 > 知识库问答 >
问题:

Spring集成-JMS到Kafka消息传输-端到端事务

段恩
2023-03-14

我使用以下代码消费来自JMS ActiveMQ的消息:

<jms:message-driven-channel-adapter
        id="helloJMSAdapater" destination="helloJMSQueue" connection-factory="jmsConnectionfactory"
        channel="helloChannel" extract-payload="true" />
<integration:channel id="helloChannel" />

我的要求是从这里消费并将其发布到Kafka出站适配器。使用以下配置:

<int-kafka:outbound-channel-adapter
            id="kafkaOutboundChannelAdapter"
            kafka-producer-context-ref="kafkaProducerContext"
            channel="inputToKafka">
</int-kafka:outbound-channel-adapter>

以下是我想实现的目标:

>

我注意到我的消息会立即出队,如果处理遇到一些异常,我无法重新处理它。我不希望这种情况发生。

我真的很难让它发挥作用。有人能帮帮我吗?

共有1个答案

濮阳宜
2023-03-14

您确实可以在

当<代码>

如果您对持续存在的错误感兴趣,则在<代码>

要使所有这些工作,您应该确保从乞讨到结束只有一个线程。没有

也不清楚为什么你仍然使用这么旧的Apache Kafka...

 类似资料:
  • 在Spring集成中使用出站网关时,我试图在JMS标头中发送回复Q详细信息。我了解到JIRA#INT-97中的增强功能在将Spring消息标头发送到JMS目标之前将其复制到JMS标头。 在将消息发送到出站网关之前,将消息头设置如下。message.getHeader(). setAtcm(JmsTargetAdapter.JMS_REPLY_TO, myReplyDestation); 但是我无法

  • 我们正试图从ActiveMQ5.x升级到最新的Artemis(2.17),但我们的一个应用程序让我们很难过。 我们单独运行了一个事务,启用了Artemis STOMP调试,下面是我们看到的: 问题的核心似乎是来自上面显示的“send”操作的消息从未到达接收者。我们已经验证了接收者是在线的,并且它响应使用JMS和Openwire连接的其他客户端--但是这个STOMP消息没有被路由到目的地。 如果关闭

  • 简单的消息发布器如下所示: ...其配置如下: 问题是,此发布服务器将消息发送到准备好的默认目标,但我需要将消息发送到不同的队列。在我的情况下,我的应用程序中的每个任务都需要一个消息队列。原因是,如果要中止任务,必须从代理中删除消息。如果一个任务有数千条消息,那么使用选择器接收所有消息不是一个好的做法。我需要从消息代理中删除中止任务的所有消息,而不接收客户端。JMS仅支持消息的发送和接收。我必须使

  • 我目前正在尝试编写一个适配器,它将使用来自ActiveMQ的消息并将其发布到Kafka。 我正在考虑使用Spring集成来集成这两个消息传递系统。 我的问题是,我的应用程序不会维护模型的注册表,许多应用程序将使用该注册表将记录发布到activeMQ。我想接收这些javax-jms消息,并想执行一些转换,比如将jmscorrelationId添加到kafka消息中。 另外,另一个要求是仅当kafka

  • 我试图通过AMQP 1.0协议向Qpid代理发送消息。队列名为,它已经在默认的虚拟主机下创建。但是,永远卡住了。相同的代码适用于连接到Azure服务总线。我使用的是qpid-jms-Client 0.58。生产者代码是: 生产时应用程序的线程转储 我尝试运行这个示例,得到了相同的结果。

  • 我目前正在尝试轻松地将消息从一个Kafka集群上的主题流式传输到另一个集群(远程)- 所以假设WordCount演示在另一台PC上的一个Kafka-Instance上,而不是我自己的PC上。我也有一个Kafka-Instance在我的本地机器上运行。 现在我想让WordCount演示在包含应该计算单词的句子的Topic(“远程”)上运行。 然而,计数应该写入我本地系统上的Topic而不是“远程”T