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

来自Apache Camel交换的具有相同路由关键字的多个队列

晋涛
2023-03-14

我正在尝试将两个队列绑定到交换。两个队列必须使用相同的消息(路由密钥)。我能够直接使用RabbitMQ创建这两个队列。但是,当我尝试使用Apache Camel时,它会引发一个异常,指出“同一endpoint不允许使用多个使用者”。我假设Camel一定可以做到这一点,因为它是RabbitMQ中的一个基本功能。

我正在使用Camel RabbitMQ插件。是否需要一些额外的配置来实现此功能?

共有1个答案

许嘉福
2023-03-14

由于Apache Camel是一个基于企业集成模式的通用集成框架,它不允许在同一路由上有多个侦听器。因此,虽然 RabbitMQ 支持绑定到交易所的多个队列,但 Camel 不会结转此类绑定。但是,您可以尝试做的是这个。

>

  • 具有两个单独的交换机,每个交换机绑定到单个队列。

    这将允许您将两个独立的消费者分别绑定到一个单独的交换机

    这应该会有所帮助。

  •  类似资料:
    • 我试图使用BasicGet仅检索与通道的Exchange/Queue/RoutingKey组合匹配的消息。 我们的路由密钥的一个例子是 我遇到的问题是,路由密钥被完全忽略,所有消息无论指定的路由密钥是什么,都可以通过BasicGet获得。 我使用的是直接交换。我认为直接就足够了,我不需要通配符的能力,您可以通过主题交换获得路由键。 直接交换和路由密钥解决方案是否应该与BasicGet配合使用? 谢

    • AMQP/RabbitMQ新手。试图掌握概念/原则,并偶然发现了这一点。 以下两种范式之间有什么区别? Fanout Exchange:FanoutExchange- 相对 直接交换:直接交换- 两者不是都达到相同的效果吗?如果没有,请有人可以阐明它有什么不同,以及在哪些情况下比其他情况更可取? 为什么它们有这两种类型的交换,而这两种交换都可以通过调整绑定中的路由键来实现? 谢谢

    • 我在我的项目中使用RabbitMQ,我想知道是应该使用具有多个路由密钥的单个交换还是使用多个交换?哪个效率更高? 例如,如果我使用带有路由键A、B、C的单个exchange E,消费者连接到该exchange E,并使用A、B、C路由键获取数据。另一种选择是,我应该将其发送到exchange A、exchange B、exchange C,而不使用路由密钥,并且消费者可以连接到每个exchange

    • 我最近在我的路由中实现了反应路由器开关组件,以便呈现一个NoMatch组件(这只是一个404错误组件)。然而,在我的路由中实现这一点后,我注意到在我的主页上只有一个组件会呈现,标题组件。 标题和搜索栏都应该呈现到相同的路径。 我的代码如下: 我注意到如果我删除了Switch组件,那么一切都会渲染得很好,但是NoMatch组件也会渲染到路由。 问题:为什么我不能在交换机内部的同一路径上渲染多个组件?

    • 我遇到了一个问题,当使用相同的根查询在两个相邻的react-router-中继路由组件中请求数据时,第二个路由组件中的graph ql服务器查询使先前从第一个路由组件中检索到的数据无效。 例如: 我正在使用一种解决方法将字段附加到“查看器”根节点,以便从根字段查询数据数组: 我的schema.js包括查看器(用户)类型和根的以下定义: 和根: 现在,在main.jsx应用切入点中,我定义了以下路线

    • 问题内容: 我有以下代码来获取地图: 如何打印带有重复键的消息“重复键”? 问题答案: 如何打印带有重复键的消息“重复键”? 使用当前代码,您将收到消息“重复键”,其中包含至少2个实例的列表,这些实例具有与对象相同的值,例如。 如何获得对应的密钥? 到目前为止,还无法获得相应的键,当前从合并功能中获得的实际上是与相同键映射的2个值,这些值需要合并以仅保留对应键的一个值。 您的问题是 Java 9