问题标签 [rabbitmq-shovel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rabbitmq - 如何通过 http api 获取rabbitmq-shovel 的状态
使用“rabbitmqctl eval 'rabbit_shovel_status:status().'”我可以在我的 rabbitmq 服务器中获取铲子的状态。
我激活了模块“rabbitmq_shovel”和“rabbitmq_shovel_management”。
我使用 HTTP API 创建了一些动态铲子,我遇到的问题是,我希望能够使用 HTTP API 获取铲子的状态,但我找不到这样做的方法。
有没有办法使用 HTTP API 做到这一点?或者我应该使用'rabbitmqctl eval ...'?
我不想使用 rabbitmqctl,因为我想在我自己的 API 中公开这些数据,所以我的应用程序应该能够访问它,而不必创建一个“exec”。
queue - RabbitMQ 铲子消息率
我有一个带有以下参数的队列:
- x-ha-政策:全部
- 耐用:真实
配置了一个静态铲子来处理这个队列,另一个服务器被设置为目标。铲子配置:
我的问题是“queuename”队列的传递/获取和确认速率永远不会超过 50/s,因此会导致队列中的大量堆积(700 万)。
我想知道更改 prefetch_count 是否会增加消息率?
还为队列的消费者启用了“需要确认”。其默认值为:on_confirm。如果消息被强制确认,是否会限制消息速率?
rabbitmq - RabbitMQ 无法加入集群并启用插件
我尝试为我的 RabbitMQ 设置集群,但是当加入集群时出现错误我不知道为什么,花了一天时间寻找解决方案但仍然没有希望。(我正在使用 Window 并使用所有默认选项进行安装)。
问题1: 无法加入集群: 我有2台电脑安装Rabbit:
- 兔子@HOANGQUOCVI2118
- ALO-PC
我可以远程登录 ALO-PC 的端口,也可以关闭防火墙,但无法通过此命令加入集群:
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.5.6\sbin>rabbitmqctl join_cluster rabbit@ALO-PC Clustering node rabbit@HOANGQUOCVI2118 with 'rabbit@ALO-PC' ...
错误:无法连接到节点 ['rabbit@ALO-PC']:nodedown
诊断
试图联系:['rabbit@ALO-PC']
rabbit@ALO-PC: * 连接到 ALO-PC 上的 epmd(端口 4369) * epmd 报告节点 'rabbit' 在端口 25672 上运行 * TCP 连接成功但 Erlang 分发失败 * 建议:主机名不匹配?* 建议:cookie 设置是否正确?* 建议:Erlang 发行版是否使用 TLS?
当前节点详细信息: - 节点名称:'rabbitmq-cli-248@HOANGQUOCVI2118' - 主目录:C:\Users\quocviet - cookie 哈希:0B/cSw97VtsfE3zp8Y+Jbg==
问题2: 无法启用插件:
联邦:
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.5.6\sbin>rabbitmq-plugins 启用 rabbitmq_federation
以下插件已启用:
rabbitmq_federation将插件配置应用于 rabbit@HOANGQUOCVI2118... 失败。错误:{noproc, {gen_server,call, [rabbit_sup, {start_child, {rabbit_federation_sup, {rabbit_federation_sup,start_link,[]}, transient,4294967295,worker, [rabbit_federation_sup]}}, infinity]}}
铲子插件:
c:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.5.6\sbin>rabbitmq-plugin ns disable rabbitmq_shovel 以下插件已被禁用:
rabbitmq_shovel将插件配置应用于 rabbit@HOANGQUOCVI2118... 失败。错误:noproc
请帮我解决这个案子。
rabbitmq - RabbitMQ 铲丢消息(尝试模拟网络问题)
我正在使用 RabbitQM 服务器构建集群。我使用铲子插件将消息从一个rabbitmq传递到其他(不同的机器)
它工作正常。但是我想测试当服务器之间没有网络连接时它的行为。
在每台服务器上,我都有本地队列。我将消息推送到它,然后铲子将消息传递到远程rabbitmq队列
为了模拟我所做的网络问题
禁用与远程服务器 xx.xx.xx.xx 的连接
然后我将消息推送到本地队列,它从队列中消失但不在远程服务器上!怎么会这样?在从队列中删除消息之前,铲子是否检查远程队列是否可用?
如何使其正常工作?我希望铲子不会从 q 队列中删除消息,直到确保 ti si 传递到远程队列。
java - 如何确保我的应用程序与 RabbitMQ 的连接是健康的?
我需要为我的 Web 应用程序(tomcat 战争)设置一个 keepalive 端点。我的 WAF 会定期对端点进行采样,以确保应用程序健康。
一个健康的应用程序意味着应用程序已启动并且与 RabbitMQ 服务器(版本 3.5.3 /spring-rabbit 1.4.5)的通信已启动且功能正常。
我将向我的 WAF 打开一些 REST API,以验证连接状态。
阅读文档,我对如何在功能上实现这一点非常迷茫。
我注意到一些可能有帮助的功能,但我不确定:
- 启用自动恢复并使用RecoveryListener并确保上次恢复没有失败。
- 配置HeartBeat并找出一种在“连接中断”时收到通知的方法</li>
- 创建一些 Heath Queue 并使用像Shovel这样的插件来回显消息,如果我没有得到任何响应,我认为队列已关闭
rabbitmq - RabbitMQ 铲除默认 uri 以外的任何内容
我使用的是 RMQ 版本 3.6.0。
使用默认的 'amqp://' uri 为源和目标创建铲子,默认的 '/' v-host 工作正常。
但是,每当我使用不同的虚拟主机或不同的用户时,它都不起作用。这包括还使用 %2F 显式声明默认 v-host。我为默认 v-host 和另一个 v-host 尝试了使用和不使用 %2F。我尝试从默认虚拟主机转到新虚拟主机,反之亦然。我尝试了使用和不使用用户名、密码并使用简单密码创建了一个管理员帐户,以排除密码的 % 编码问题。我尝试使用和不使用主机(域名)。我尝试了使用和不使用集群名称。我尝试使用和不使用端口(5672)。
尽管尝试了所有这些组合,但由于 badmatch 错误,铲子仍停留在启动状态:
crasher:
initial call: gen:init_it/6
pid: <0.27614.7287>
registered_name: []
exception exit: {{badmatch,{error,etimedout}},
[{rabbit_shovel_worker,make_conn_and_chan,1,
[{file,"src/rabbit_shovel_worker.erl"},{line,236}]},
{rabbit_shovel_worker,handle_cast,2,
[{file,"src/rabbit_shovel_worker.erl"},{line,62}]},
{gen_server2,handle_msg,2,
[{file,"src/gen_server2.erl"},{line,1049}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,240}]}]}
in function gen_server2:terminate/3 (src/gen_server2.erl, line 1160)
ancestors: [<0.3813.7286>,<0.536.0>,rabbit_shovel_dyn_worker_sup_sup,
rabbit_shovel_sup,<0.532.0>]
messages: []
links: [<0.3813.7286>]
dictionary: [{random_seed,{26721,25702,22425}}]
trap_exit: false
status: running
heap_size: 987
stack_size: 27
reductions: 1577
neighbours:
docker - RabbitMQ Shovel - 无法使用 docker 在不同的机器上连接
我在机器 A 上有以下 RabbitMQ 配置:
机器 A 上带有 Shovel 插件的 RabbitMQ 位于 docker 网络中,机器 B 上的 RabbitMQ 位于另一个 docker 网络中。在机器 B 上,端口 5672 已打开。将一些消息发送到第一个 RabbitMQ 后,它不会将其发送到第二个。
有任何想法吗?是兔子的问题还是机器的问题?
rabbitmq - 我可以使用 rabbitmq 在 WAN 上实现一致性和分区容错吗
RabbitMQ 为分布式系统提供了两种选择——Federation 和/或 shovel,它们有利于可用性(AP)而不是一致性(CP)(以及在 WAN 上工作);集群支持一致性 (CP) 而不是可用性 (AP)(但不适用于 WAN)。
有什么方法可以设置 RabbitMQ 和插件以支持 CP 并允许通过 WAN 进行镜像?
c# - RabbitMQ:根据消息路由键从一个队列铲到多台服务器
我的场景:
我们正在使用 RabbitMQ 将消息广播到网络中大约 300 台其他计算机。我们在 Windows Server、C#.Net 客户端 (EasyNetQ) 上使用 RabbitMQ
基本解决方案是为每台目标计算机分配一个路由密钥,定义一个交换并将每个路由密钥绑定到一个队列,并为每个队列定义一个铲子到目标服务器。在这种情况下,我们有 1 个交换器、300 个队列和 300 个铲子。
问题陈述:这么多的铲子和队列的维护和管理很困难,并且给rabbitmq带来了更多的负载。
问题:我认为有一种简单的方法可以做到这一点:比如定义一个交换、一个队列和基于路由的铲子(300)。你推荐什么解决方案?
提前致谢。