我有一个用Sping Boot 构建的Camel应用程序。这个应用程序使用ActiveMQ在两个系统之间传递消息。现在我需要添加一个功能,即根据配置在ActiveMQ和Apache Kakfa之间选择消息代理。
这是可以做到的吗?我对Kafka一无所知,但就我正在阅读的内容而言,它的工作方式与ActiveMQ不同。
假设我的Camel应用将一条消息发布到如下队列:
from("direct:inbound")
//random stuff happening
.to(ExchangePattern.InOnly, "jms:queue:custom-queue")
我在我的application.yml中有这样的配置
spring:
activemq:
packages:
trusted:
- java.util
- java.lang
broker-url: tcp://localhost:61616
我能用Kafka的配置替换activemq配置,并期待它能神奇地工作吗?至少这是我的PM所期望的。
1条答案
按热度按时间ny6fqffe1#
Spring Cloud就可以做到这一点。只需添加特定的绑定器,就可以使用各种消息传递系统。
一个起点是为ActiveMQ和Kafka创建“适配器路由”,并根据现有配置有条件地创建它们。
这些适配器路由必须处理所有消息传递系统特定的东西,以便“主路由”不需要关心这些(即hexagon architecture)。
direct
端点的“主路由”中然而,ActiveMQ和Kafka是非常不同的。如果你真的想走这条路,它可能会变得非常颠簸:-)