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

我可以将Kafka与Apache Camel一起用作ActiveMQ的替代品吗?

周高畅
2023-03-14

我有一个用Spring Boot构建的Camel应用程序。此应用程序使用ActiveMQ在两个系统之间传递消息。现在,我需要根据配置添加在ActiveMQ和Apache Kakfa之间选择作为消息代理的能力。

这是可以做到的吗?我对Kafka一无所知,但就我所阅读的内容而言,它的工作方式与ActiveMQ不同。

假设我的Camel应用程序向这样的队列发布消息:

from("direct:inbound")
     //random stuff happening
    .to(ExchangePattern.InOnly, "jms:queue:custom-queue")

我的申请表中有。yml此配置

spring:
  activemq:
    packages:
      trusted:
      - java.util
      - java.lang
    broker-url: tcp://localhost:61616

我能用Kafka特定的配置替换activemq配置并期望它神奇地工作吗?至少,这是我的首相所期望的。

共有1个答案

钮鸿煊
2023-03-14

Spring的云就是这样。只需添加特定的活页夹,就可以使用各种消息传递系统。

一个起点是为ActiveMQ和Kafka创建“适配器路由”,并根据当前的配置有条件地创建它们。

这些适配器路由必须处理所有消息传递系统特定的东西,以便“主路由”不需要关心这些(即六边形架构)。

  • 你的核心逻辑是“主要路线”,他们使用直接的endpoint
  • 有一个ActiveMQ使用者转发到主路由
  • 有一个Kafka消费者转发到主要路线
  • 有一个ActiveMQ生产者,它生成从主路由接收的消息
  • 有一个Kafka制作人可以生成从主要路线接收的消息
  • 主要路由向活动生产者发送消息,例如使用Recepient List EIP

然而,ActiveMQ和Kafka是非常不同的。如果你真的想走这条路,可能会很颠簸:-)

 类似资料:
  • 问题内容: 我正在使用BeautifulSoup抓取网址,并且我有以下代码 现在在上面的代码中,我们可以用来获取标签和与其相关的信息,但是我想使用xpath。是否可以将xpath与BeautifulSoup一起使用?如果可能的话,任何人都可以给我提供示例代码,以使其更有帮助吗? 问题答案: 不,BeautifulSoup本身不支持XPath表达式。 另一种库,LXML, 不 支持的XPath 1.

  • 就像在主题中一样,我可以使用Thymeleaf布局方言和spring吗?我必须使用Spring标准方言吗? 网上有这么多的资料,这让我很困惑。 我已经开始使用布局方言,但我无法使用整个应用程序。 这是我的模板主文件: 以及控制器返回的我的示例主体文件: 但不幸的是,这段代码只适用于布局方言。 有人能帮我把代码转换成spring标准方言吗? 我的手机配置:

  • 问题内容: 我正在使用大猩猩架构根据用户的表单提交来填充结构。我的结构包含,并且我目前收到以下错误: 如何在要使用大猩猩架构填充的结构中使用? 问题答案: 我创建了一个要点(https://gist.github.com/carbocation/51b55297702c7d30d3ef),它显示了解决此问题的一种方法。您需要为以下四种类型的每一种创建一个:sql.NullString,sql.Nu

  • 问题内容: 我有一类范围 如果我使用正常的工作原理是完美的,但是必须等待每个命令完成并且每个查询需要8秒钟,所以10个查询需要80秒钟。 在并行版本中,如果仅打印范围,则效果很好,但如果尝试执行命令,则说明该过程已在进行中。 {“操作已经在进行中。”} 我该如何解决? 问题答案: Npgsql连接不能同时使用-在任何给定时间点只能运行一个命令(换句话说,没有MARS支持)。 打开多个连接以并行执行

  • 问题内容: 将getDerivedStateFromProps添加为遗留componentWillReceiveProps的一种更安全的替代方法。 这就是16.3文档所说的内容。这个生命周期还有什么要改变的吗?还是只是改名? 问题答案: 不只是将名称更改为。这是一个静态方法,在实例化组件之后或在接收新道具之前会调用它,这与在初始渲染时未调用过的方法不同。 返回对象以更新属性以响应道具更改。 返回n

  • 问题内容: 我看到了其他有关xpath 2.0的问题,它显然简化了字符串表达式。我正在使用Firefox 3.5.5和Selenium 1.0.1。 如何检查我的Firefox和Selenium版本是否支持它? Selenium是否遵循Firefox的内置Xpath实现? 在那种情况下,如果我开始将另一个(也许是较旧的)浏览器与selenium一起使用,是否会因为期望xpath 2.0而遇到问题?