Quarkus - SmallRye 反应式消息传递 - RabbitMQ:将消息发送到默认交换

2024-02-13

使用远程过程调用 https://www.rabbitmq.com/tutorials/tutorial-six-java.html模式,我需要将答案发送到回复队列,即我需要将消息发送到默认交换机,并以队列名称作为路由键。

我在 Quarkus 上使用 SmallRye Reactive Messing RabbitMQ 插件。所有通道都是在配置文件中静态定义的(这是可以的),但是,由于配置机制的工作方式(microprofile config),我无法使用空字符串作为配置值,这是默认交换的名称。

省略交易所的名称没有帮助,因为默认情况下使用通道名称。

有没有办法使用 SmallRye RabbitMQ 插件向默认交换器发送消息?

编辑:我无法控制 RabbitMQ 服务器。


您应该能够向default direct RabbitMQ通过设置以下属性进行交换:

  • Exchange.name(设置为空字符串)
  • Exchange.type(设置为直接)

假设你的反应式消息传递频道已命名pets-out,这里有一个配置示例:

mp.messaging.outgoing.pets-out.connector=smallrye-rabbitmq
mp.messaging.outgoing.pets-out.exchange.name=
mp.messaging.outgoing.pets-out.exchange.declare=false
mp.messaging.outgoing.pets-out.exchange.type=direct
mp.messaging.outgoing.pets-out.default-routing-key=pets

EDIT

深入挖掘后Smallrye 反应式消息传递实施,我发现空的交换名称将导致回退到频道名称作为交换名称。

因此,应该没有办法发送direct消息发送给默认 RabbitMQ 交换.

替代解决方案,忽略提供的开箱即用功能default交换将是

  1. 创建一个direct交换没有任何绑定队列并拥有Outgoing使用专用的消息处理程序channel绑定到它的配置:

     mp.messaging.outgoing.pets-out.connector=smallrye-rabbitmq
     mp.messaging.outgoing.pets-out.exchange.name=my-direct
     mp.messaging.outgoing.pets-out.exchange.declare=true
     mp.messaging.outgoing.pets-out.exchange.type=direct
     mp.messaging.outgoing.pets-out.default-routing-key=pets
    
  2. 创建一个交替交换配置为我的直接交换路由消息到default一。这可以在RabbitMQ经纪人直接使用rabbitmqctl:

     rabbitmqctl set_policy AE "^my-direct$" '{"alternate-exchange":""}' --apply-to exchanges
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Quarkus - SmallRye 反应式消息传递 - RabbitMQ:将消息发送到默认交换 的相关文章

  • 使用spring-amqp和rabbitmq实现带退避的非阻塞重试

    我正在寻找一种使用 spring amqp 和 Rabbit MQ 的退避策略来实现重试的好方法 但要求是侦听器不应被阻止 因此可以自由地处理其他消息 我在这里看到了类似的问题 但它不包括 后退 的解决方案 RabbitMQ 和 Sprin
  • 为什么 Celery 工作人员给出“OSError:套接字已关闭”

    我的与rabbitMQ一起工作的celery工作人员在工作几分钟后不断给我一个套接字错误 见下文 我想知道问题的主要原因是什么 我认为这可能是防火墙 但是 禁用防火墙并没有解决问题 我正在 Windows 10 机器上工作 C Users
  • 如何在 celery 内为每个用户生成队列?

    因此 我尝试将 Web 请求中的阻塞内容移至后台任务并利用队列 我对消息传递和发布 订阅也很陌生 用户将数据推送到那里并进行处理 稍后用户会收到相关通知 我为此做了一个 celery 设置 发现它不能满足我为每个用户分配自己的任务的专用队列
  • 在 Red Hat 上安装 RabbitMQ - 错误的 Erlang 版本

    我正在尝试按照以下说明在 Red Hat Enterprise Linux 7 64 位工作站版本 的评估虚拟机上安装 RabbitMQhttps www rabbitmq com install rpm html https www ra
  • quarkus-arc 不满足依赖问题

    这是我的资源类 带有存储库注入 Path posts Produces MediaType APPLICATION JSON Consumes MediaType APPLICATION JSON public class PostsRes
  • 保持鼠兔 BlockingConnection 存活而不禁用心跳

    我正在使用 pika 0 10 0 和 python 2 7 版本开发 RabbitMQ 消费者 在我的消费者客户端中 我有一个根据输入消息运行一段时间的进程 时间可能从 3 到 40 分钟不等 我不想禁用心跳 相反 我正在寻找一些回滚机制
  • 如何使用自动装配的 Spring Boot 监听多个队列?

    我是 Spring Boot 的新手 正在尝试它 目前我已经构建了一些应用程序 我希望能够通过队列相互通信 我目前有一个侦听器对象 可以从特定队列接收消息 Configuration public class Listener final
  • 无法推送到 Gitlab 注册表 | Quarkus - 臂架构建

    我目前正在开发 Quarkus 应用程序 因此需要 CI 管道 容器注册表 由于通过 docker 的容器化不起作用 docker 守护进程 特权模式 我想使用 Jib Quarkus 已经支持它 管道中的命令 mvn clean pack
  • Akka 的语言和产品替代品是什么?

    现在我正在看游戏框架 https www playframework com 并且非常喜欢它 Play 中提供的功能中最受宣传的部分之一是Akka http akka io 为了更好地理解 Akka 以及如何正确使用它 您能告诉我其他语言或
  • 列出与rabbitmq java客户端API交换的绑定

    我似乎在文档中找不到任何信息 所以我想知道是否可以通过某种方式使用 java RabbitMQ API 获取与交换相关的所有绑定 我在查询 api bindings 时正在寻找类似 http api 结果的内容 api definition
  • RabbitMQ 中多个消费者如何订阅同一主题并获取同一消息

    首先 我知道类似问题已经有答案了here https stackoverflow com questions 10620976 rabbitmq amqp single queue multiple consumers for same m
  • 何时使用 RabbitMQ 而不是 Kafka? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我被要求评估 RabbitMQ 而不是 Kafka 但发现很难找到消息队列比 Kafka 更合适的情况 有谁知道消息队列在吞吐量 耐用性 延迟或
  • 如何在 Quarkus 中处理大文件上传

    我的问题有两个 我正在寻找一种在 quarkus 应用程序服务器上实现分段文件上传的方法 该服务器允许程序员访问上传的文件 浏览文档似乎有https quarkus io guides rest client multipart https
  • Celery 与rabbitmq 创建结果多个队列

    我已经用 RabbitMQ 安装了 Celery 问题是 对于返回的每个结果 Celery 都会在 Rabbit 中创建队列 并在交换 celeryresults 中使用任务 ID 我仍然想得到结果 但在一个队列上 我的芹菜配置 from
  • 在 Celery 工作线程中捕获 Heroku SIGTERM 以优雅地关闭工作线程

    我对此进行了大量研究 令我惊讶的是我还没有在任何地方找到一个好的答案 我正在 Heroku 上运行一个大型应用程序 并且我有某些运行很长时间处理的 celery 任务 并在任务结束时保存结果 每次我在 Heroku 上重新部署时 它都会发送
  • Erl 无法连接到本地 EPMD。为什么?

    Erlang R14B04 erts 5 8 5 source 64 bit rq 1 async threads 0 kernel poll false Eshell V5 8 5 abort with G root ip 10 101
  • AMQP如何克服直接使用TCP的困难?

    AMQP如何克服直接使用TCP发送消息时的困难 或者更具体地说 在发布 订阅场景中 在 AMQP 中 有一个代理 该代理接收消息 然后完成将消息路由到交换器和队列的困难部分 您还可以设置持久队列 即使客户端断开连接 也可以为客户端保存消息
  • 服务器在 pika.exceptions.StreamLostError: Stream 连接丢失后关闭

    我的队列中有一些图像 我将每个图像传递到我的 Flask 服务器 在其中完成图像处理 并在我的rabbitmq 服务器中收到响应 收到响应后 我收到此错误 pika exceptions StreamLostError 流连接丢失 104
  • RabbitMQ:无法启动rabbitmq_management插件

    Version gt sudo rabbitmqctl status grep rabbit RabbitMQ rabbit RabbitMQ 3 5 6 Error gt sudo rabbitmq plugins enable rabb
  • 如何使用 Java 在 RabbitMQ 中实现标头交换?

    我是一个新手 试图在java客户端中实现标头交换 我知道这就是 x match 绑定参数的用途 当 x match 参数设置为 any 时 只需一个匹配的标头值就足够了 或者 将 x match 设置为 all 强制所有值必须匹配 但任何人

随机推荐

  • R中的循环:如何保存输出?

    我正在尝试保存逻辑测试循环中的数据 所以我有以下数据 T1 lt matrix seq from 100000 to 6600000 length out 676 26 26 a matrix of 26X26 here with illu
  • Python字典-二分查找一个键?

    我想编写一个像字典一样的容器类 实际上派生自字典 该结构的键将是日期 当使用键 即日期 从类中检索值时 如果该日期不存在 则使用该键之前的下一个可用日期来返回该值 以下数据应该有助于进一步解释这个概念 Date key Value 2001
  • 使用 AudioWorklet 传输捕获的音频时如何防止中断/不稳定/故障?

    我们一直在开发基于 JavaScript 的音频聊天客户端 该客户端在浏览器中运行并通过 WebSocket 将音频样本发送到服务器 我们之前尝试使用 Web Audio API 的 ScriptProcessorNode 来获取样本值 这
  • 适用于使用 SSL Pinning 的移动应用程序的 Charles Proxy

    Charles Proxy 网站评论说 请注意 某些应用程序实施 SSL 证书固定 这意味着它们专门验证根证书 由于应用程序本身正在验证根证书 因此它不会接受 Charles 的证书 并且连接将失败 如果您已成功安装 Charles 根 S
  • 最终挂起后协程的状态

    协程具有初始挂起点和最终挂起点 Acoroutine handle is done https en cppreference com w cpp coroutine coroutine handle done当它在最终暂停点暂停时 然而
  • 如何在octobercms中过滤多个类别的博客文章?

    October CMS如何过滤多个类别的博文 我正在使用 RainLab 博客插件 该插件仅允许过滤一种类别 我想要一个综合结果 请帮忙 您将需要使用一些自定义代码来根据多个类别进行过滤 如果仍然使用 PostList 组件 请进行以下更改
  • iOS 编程中的中心地图

    我们如何在地图中关注用户 我想让蓝点 用户位置 位于地图的中心 但我还允许用户放大和缩小 然后在几秒钟后放大回用户位置 我对解决方案的有根据的猜测 我们检测用户是否正在放大或缩小 在没有放大或缩小检测的三秒后 我们开始跟随用户 你的帮助会很
  • IEnumerable 的性能比较和源中每个项目的引发事件?

    我想读取包含数百万条记录的大型二进制文件 并且我想获取一些记录报告 我用BinaryReader读取 我认为在读取器中具有最佳性能 并将读取的字节转换为数据模型 由于记录的数量 将模型传递到报表层是另一个问题 我更喜欢使用IEnumerab
  • 在 WSO2 ESB 中介期间修改配置注册表资源内容

    我有一个场景 我需要在配置注册表中存储简单计数器并在序列流结束时递增它 我们需要存储在配置注册表中的原因是 如果服务器重新启动 我们将保留最后的计数器值 有人可以建议如何增加配置注册表中的计数器吗 您可以在中介中使用示例 javascrip
  • “等待返回”有什么区别吗? [复制]

    这个问题在这里已经有答案了 有什么区别吗 const foo async gt some other code that uses await return await bar and const foo async gt some oth
  • Gradle - 仅执行单一构建类型

    我在 build gradle 中定义了多种构建类型 在变体窗口中 我选择了构建变体 例如 debugAPI23 我预计只会执行一种构建类型中的代码 但在 Gradle Console 中我可以看到所有构建类型的输出 正如您所看到的 我正在
  • 在同一地址多次放置 new 是否定义明确/合法?

    注意 这个问题的动机是试图提出预处理器黑客技术来生成无操作分配来回答另一个问题 接受新对象的宏 https stackoverflow com questions 7522949 c macro that accent new object
  • 路由的处理程序无效 - Wordpress

    我正在尝试使用类在 WordPress 中创建自定义 REST API 端点 我也用传统的方式做了同样的事情 效果很好 但是 使用类时我收到错误The handler for the route is invalid 代码 class CS
  • 谁能解释一下android中未绑定服务和绑定服务之间的区别

    任何人都可以解释一下android中未绑定服务和绑定服务之间的区别 并解释一下意图服务 Thanks 绑定服务 http developer android com guide components bound services html
  • 制作堆叠矩形而不是列的直方图

    使用以下代码 我得到如下的直方图 x lt rnorm 100 hist x col gray 我该怎么做才能将条形显示为堆叠矩形 通过其轮廓可见 而不是填充颜色的变化 而不是统一的列 每个矩形代表一个频率 例如 1 尽管我希望能够通过参数
  • 使用 dropzone.js 发送附加参数

    我正在尝试添加 dropzone js 并且想通过 file 传递另一个参数 因此我将隐藏输入放入 form 中 我可以上传文件并可以在Java部分读取它 但我无法读取type chooser WebKitFormBoundaryZxF6M
  • 我的上网IP是多少

    我的电脑上安装了两张网卡 一个用于互联网连接 另一个用于与客户端计算机共享互联网 我用这段代码获取我的IP IPHostEntry HosyEntry Dns GetHostEntry Dns GetHostName foreach IPA
  • Mustache Templates可以做模板扩展吗?

    我是小胡子的新手 许多模板语言 例如 Django Jinja 会让你像这样扩展 父 模板 基本 html block content endblock 首页 html extends base html block content h1
  • 如何从 mysql 数据库中删除重复的条目?

    我有一个包含一些 id 标题的表 我想让标题列唯一 但它已经有超过 600k 条记录 其中一些是重复的 有时是几十次 如何删除除一个之外的所有重复项 以便我可以在之后的标题列中添加一个 UNIQUE 键 此命令添加唯一键 并删除生成错误 由
  • Quarkus - SmallRye 反应式消息传递 - RabbitMQ:将消息发送到默认交换

    使用远程过程调用 https www rabbitmq com tutorials tutorial six java html模式 我需要将答案发送到回复队列 即我需要将消息发送到默认交换机 并以队列名称作为路由键 我在 Quarkus