问题标签 [rabbitmqctl]

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.

0 投票
1 回答
2556 浏览

rabbitmq - 我们可以在 RabbitMQ 中选择下一个主节点吗?

我们可以让一个从节点成为主节点而不是另一个从节点吗?假设我想选择下一个主节点作为具有最少主节点的节点,或者如果当前主节点出现故障,则具有最大可用资源。可以组织吗?

0 投票
1 回答
386 浏览

rabbitmq - Windows 上的 RabbitMQ SSL 集群中断 rabbitmqctl

我正在尝试按照此处的 RabbitMQ 文档中的步骤使用 SSL 在 Windows 上进行集群。我注意到,在设置了这些步骤中定义的环境变量后,“rabbitmqctl status”命令开始失败。执行“rabbitmqctl status”时出现以下错误:

我已经将 RabbitMQ 配置为使用 TLS 1.2 并验证它可以正常工作。我确保我的 Erlang 18 cookie 在机器上的用户目录 C:\users\me 和 C:\Windows 中是相同的,但错误仍然存​​在,并且正在阻止其他服务器与其集群。文档说 Windows SSL 集群设置“即将推出”......这是我迄今为止在 server1 上采取的步骤。我认为Erlang 想要路径中的正斜杠 - 这与 rabbit.config SSL 设置相匹配。

  1. 通过命令“type server\cert.pem server\key.pem > server\rabbit.pem”将我的 server\cert.pem 和 server\key.pem 的内容合并到 rabbit.pem
  2. 创建环境变量 ERL_SSL_PATH 并设置为:“C:/Program Files/erl7.0/lib/ssl-7.0/ebin”
  3. 创建环境变量 RABBITMQ_CTL_ERL_ARGS 并设置为: -pa "%ERL_SSL_PATH%" -proto_dist inet_tls -ssl_dist_opt server_certfile C:/OpenSSL-Win64/server/rabbit.pem -ssl_dist_opt server_secure_renegotiate true client_secure_renegotiate true
  4. 创建环境变量 RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS 并设置为与 RABBITMQ_CTL_ERL_ARGS 相同的值
  5. 将 C:\Windows.erlang.cookie 中的 erlang cookie 复制到我的本地用户配置文件目录。
  6. 使用 rabbitmq-service start 重启 rabbit
  7. 此时,在 server1 上,“rabbitmqctl status”不再起作用。尝试将 server2 加入 server1 会导致“节点关闭”错误。

编辑 1:我无法在文档中开始要求 Erlang 在 Windows 上报告其 SSL 目录以正确设置 ERL_SSL_PATH。Erlang 安装在我服务器上的 C:\Program Files\erl7.0 中。

编辑 2:使用 werl.exe(在 C:\Program Files\erl7.0\bin\werl.exe),我能够发出命令“Foo=io:format(code:lib_dir(ssl, ebin))。 " 并将路径报告为:c:/Program Files/erl7.0/lib/ssl-7.0/ebin。但是,这似乎不是这个问题的原因,因为这已经是我正在使用的。

谢谢,安迪

0 投票
1 回答
16911 浏览

rabbitmq - 连接时出现 Rabbitmq 通道错误

我的 srv0 与通常连接到 rabbitmq 的应用程序一起工作

我已经将 srv0 克隆到 srv1 只是通过自定义 ip chanded(用于测试目的)

现在 srv1 上的客户端应用程序无法连接到 rabbit(Catalina.out):

Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'wrs-checklist-delete' in vhost '/', class-id=50, method-id=10)

/var/log/rabbitmq/*.log 答案

=ERROR REPORT==== 24-Nov-2016::17:54:19 === Channel error on connection <0.344.0> (127.0.0.1:16899 -> 127.0.0.1:5672, vhost: '/', user: 'guest'), channel 1: {amqp_error,not_found,"no queue 'wrs-checklist-delete' in vhost '/'", 'queue.declare'}

检查:

  • $HOSTNAME 返回 srv1 的主机

我应该从哪里开始意识到问题?

0 投票
1 回答
2638 浏览

python - 为什么 celery.control.inspect 报告的排队任务比 rabbitmqctl 少?

rabbitmqctl正确报告数千个排队任务:

然而芹菜报告:

正确数量(数千)的任务似乎出现在 中,但我真的很想知道 python 中未完成的队列任务app.control.inspect().stats()['celery@default']['total']的正确数量,而等人似乎只报告了 16 个左右——也许有一个限制?active()

没有使用特权子进程调用rabbitmqctl,我怎样才能从 python 中获取完整的排队任务计数,最好是通过celery(顺便说一下,这个服务器目前使用的是 Celery 3.1.8)

0 投票
2 回答
3893 浏览

python - “错误:无法初始化 erlang 分发:”尝试运行“rabbitmqctl 状态”

之前已经问过这个问题(RabbitMQ Failed to initialize erlang distribution),但我无法从现有答案中找出如何解决它。在https://www.rabbitmq.com/man/rabbitmqctl.1.man.html之后,我想运行rabbitmqctl status命令来显示有关 RabbitMQ 代理的信息。但是,我收到一条错误消息:

错误:无法初始化 erlang 分发:{{shutdown, {failed_to_start_child, net_kernel, {'EXIT',nodistribution}}}, {child,undefined, net_sup_dynamic, {erl_distribution, start_link, [['rabbitmq-cli-13', shortnames ]]}, 永久,1000,主管,[erl_distribution]}}。

只有 root 或 rabbitmq 应该运行 rabbitmqctl

如果我使用 运行命令sudo,我仍然会收到一条错误消息:

错误:无法初始化 erlang 分发:{{shutdown, {failed_to_start_child, net_kernel, {'EXIT',nodistribution}}}, {child,undefined, net_sup_dynamic, {erl_distribution, start_link, [['rabbitmq-cli-69', shortnames ]]}, 永久,1000,主管,[erl_distribution]}}。

我怎样才能解决这个问题?

0 投票
1 回答
2983 浏览

rabbitmq - 为什么不启动rabbitmq-server?

晚上好。面临的问题:在某些时候消息代理“浮动”(停止更新 Web 界面并建立连接)。当您尝试重新启动rabbitmq-server start 命令进程停止响应后消息输出:

提示,为固定一个?

PS命令systemctl status rabbitmq-server.service打印:

0 投票
2 回答
4191 浏览

json - 如何使用 rabbitmqadmin 命令发布 Json

我想使用 rabbitmqadmin 命令行发布 Json 消息。我们如何做到这一点,因为我正在阅读我们只能在有效负载中发送字符串消息,如下所示 rabbitmqadmin publish exchange=default routing_key=test payload="hello, world"。

但我想发送这样的东西:rabbitmqadmin publish exchange=default routing_key=test payload=file.json

我们如何在命令行中做到这一点?

0 投票
0 回答
130 浏览

powershell - rabbitmqctl 显示 nodedown,但如果我使用 Invoke-Command 并提供计算机名称则不会

我在 Windows Server 2008 R2 上安装了 RabbitMQ 3.6.5 / Erlang 18.0。我知道我的 RabbitMQ 节点“rabbit@447523-testap01”已启动,因为我可以使用管理 UI 连接到它。如果我运行以下命令:

我收到以下“nodedown”消息:

但是,如果我使用在同一台机器上执行的 PowerShell Invoke-Command 并提供如下所示的计算机名称,它会报告它已启动!

如果我省略 -computername 参数,它会报告相同的“nodedown”消息。这里发生了什么?我已经验证了 Erlang cookie 文件在 C:\Windows\.erlang.cookie 和 %UserProfile%\.erlang.cookie 之间是相同的,并且 RabbitMQ 日志文件没有显示任何错误。

0 投票
2 回答
1731 浏览

rabbitmq - rabbitmq-server 开始通过持久队列丢失数据

在 Windows 上,当我使用rabbitmq-server start/stop命令时,会删除 RabbitMQ 持久队列上的数据。当我启动 RabbitMQ 服务器时,似乎重新创建了队列。

如果我使用rabbitmqctl stop_app/ start_app,我不会丢失任何数据。为什么?

如果我的服务器出现故障会发生什么情况?我如何确定我不会丢失数据?

0 投票
4 回答
18696 浏览

logging - 如何处理 RabbitMQ 日志?

我们正在运行 RabbitMQ,它写入日志文件夹的 .log 变得非常安静。

在那里做什么是正确的,我们可以不时删除它,我们应该将它们轮换然后删除它们吗?我找不到任何关于此的文档。