标签: rabbitmqctl

RabbitMQ错误:无法连接到节点:nodedown

我正在尝试使用两个Rhel实例进行聚类.我能够互相ping,即使我正在尝试使用命令empd -names,我得到它已启动并运行在4369.当我使用命令,因为sudo rabbitmqctl join_cluster rabbit@ip-10-23-20-36我得到以下错误确保以及我是stop_app首先..

sudo rabbitmqctl join_cluster rabbit@ip-10-23-20-36
Run Code Online (Sandbox Code Playgroud)

使用'rabbit @ ip-10-23-209-142'聚类节点'rabbit @ ip-10-23-20-36'...错误:无法连接到节点['rabbit @ ip-10-23-209 -142']:nodedown

诊断

试图联系:['rabbit @ ip-10-23-209-142']

rabbit @ ip-10-23-209-142:*无法连接到ip-10-23-209-142上的epmd(端口4369):nxdomain(不存在的域)

当前节点详细信息: - 节点名称:'rabbitmq-cli-80 @ ip-10-23-20-36' - 主目录:/ var/lib/rabbitmq - cookie哈希:u7nRIpJ40Fd356iLbkDO6Q ==

我已经尝试过的事情:

  1. 检查cookie名称,在两个实例中使用相同
    sudo cat /var/lib/rabbitmq/.erlang.cookie.
  2. 也改变了epmd端口 export ERL_EMPD_PORT=4370
  3. netstat -an |grep 4369 | grep -i listen
  4. 在插件管理的GUI中更改主机名.
  5. 更改了所有者和权限也使用

    sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
    sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
    
    Run Code Online (Sandbox Code Playgroud)
  6. 添加端口

    sudo iptables -I INPUT -p tcp --dport 4369 --syn -j ACCEPT
    
    Run Code Online (Sandbox Code Playgroud)
  7. sudo rabbitmqctl …

rabbitmq rabbitmqctl

7
推荐指数
1
解决办法
2万
查看次数

同时从Rabbitmq接收日志并运行您的烧瓶应用程序

我安装了rabbitmq并正常工作,我知道如何接收日志,但不知道如何将其显示到带烧瓶的UI.

flask_app.py

from flask import Flask
from threading import Thread
app = Flask(__name__)
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.exchange_declare(exchange='logs',
                     type='fanout')

result = channel.queue_declare(exclusive=True)
queue_name = result.method.queue

channel.queue_bind(exchange='logs',
               queue=queue_name)

print('[*] Waiting for logs. To exit press CTRL+C')
def callback(ch, method, properties, body):
    print(body)

channel.basic_consume(callback,
                      queue=queue_name,
                      no_ack=True)

thread = Thread(channel.start_consuming())
thread.start()

@app.route('/')
def index():
    return 'hi'
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用多线程来运行flask应用程序并不断从队列接收日志.

python multithreading rabbitmq flask rabbitmqctl

7
推荐指数
1
解决办法
297
查看次数

如何将消息复制到RabbitMQ上的另一个队列?

使用 RabbitMQ 作为代理,我想将所有消息从一个队列复制到另一个队列以进行测试/调试。通过 RabbitMQ Web 管理控制台/cli 最简单的方法是什么?

PS 在指定队列的 web 控制台下,我只能移动消息而不是将消息复制到新队列。

message-queue amqp rabbitmq rabbitmqctl

7
推荐指数
2
解决办法
9201
查看次数

如何处理RabbitMQ日志?

我们正在运行 RabbitMQ 并且它写入日志文件夹的 .log 变大了。

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

logging administration rabbitmq rabbitmqctl

6
推荐指数
1
解决办法
2万
查看次数

所有虚拟主机上的rabbitmq列表队列

我有几个虚拟主机的rabbitmq,每个都有几个队列.如何使用rabbitmqctl列出所有vhost中的所有队列?我试过了:

rabbitmqctl list_queues -p /*
rabbitmqctl list_queues -p *
rabbitmqctl list_queues -p /
rabbitmqctl list_queues -p ./*
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

rabbitmq rabbitmqctl

6
推荐指数
2
解决办法
2万
查看次数

Rabbitmq文件描述符限制

Rabbitmq文档说我们需要在生产之前进行一些配置.其中一个配置是关于最大打开文件号(这是一个OS参数).

我们使用的Rabbitmq服务器运行在Ubuntu 16.04上,根据我在网上找到的资源,我将打开文件的数量更新为500k.当我从命令行检查它时,我得到以下输出:

root@madeleine:~# ulimit -n
500000
Run Code Online (Sandbox Code Playgroud)

但是,当我查看rabbitmq服务器状态时,我看到另一个号码.

root@madeleine:~# rabbitmqctl status | grep 'file_descriptors' -A 4
 {file_descriptors,
     [{total_limit,924},
      {total_used,19},
      {sockets_limit,829},
      {sockets_used,10}]},
Run Code Online (Sandbox Code Playgroud)

好像,我设法增加了OS端的限制,但是rabbitmq仍然认为文件描述符的总限制是924.

可能是什么导致了这个问题?

rabbitmq rabbitmq-exchange rabbitmqctl

6
推荐指数
1
解决办法
6644
查看次数

RabbitMq:永久添加用户?

我使用以下命令在CentOS 7上添加RabbitMQ的用户

rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
Run Code Online (Sandbox Code Playgroud)

问题是这个配置不是永久性的,所以每次重新启动服务器时我都会做同样的事情。

有什么办法可以让它永久存在吗?

另外,如果我有一组节点,是否必须在每个节点上添加相同的用户?

rabbitmq rabbitmqctl

5
推荐指数
1
解决办法
2944
查看次数

环境变量中的RabbitMQ日志和Mnesia位置没有反映?

我想将 Rabbitmq MNESIA 目录更改为/diskfolder 而不是 default /var/lib。我做了变化,/usr/lib/rabbitmq/binrabbitmq-env

RABBITMQ_MNESIA_BASE=/disk/rabbitmq/
RABBITMQ_LOG_BASE=/disk/rabbitmq/log/
Run Code Online (Sandbox Code Playgroud)

并在重新启动它后

service rabbitmq-server restart
Restarting rabbitmq-server (via systemctl):                [  OK  ]
Run Code Online (Sandbox Code Playgroud)

但是当我检查状态时

      >      service rabbitmq-server status 
WARNING: Removing trailing slash from RABBITMQ_MNESIA_BASE
WARNING: Removing trailing slash from RABBITMQ_MNESIA_BASE
Status of node 'rabbit@ip-10-03-209-294' ...
Error: unable to connect to node 'rabbit@ip-10-03-209-294': nodedown

DIAGNOSTICS
===========

attempted to contact: ['rabbit@ip-10-03-209-294']

rabbit@ip-10-03-209-294:
  * connected to epmd (port 4369) on ip-10-03-209-294
  * epmd reports: node 'rabbit' not running at …
Run Code Online (Sandbox Code Playgroud)

rabbitmq rabbitmqctl

5
推荐指数
1
解决办法
9650
查看次数

无法在节点rabbitmq上执行操作

尝试使用rabbit@localhost 设置rabbitmq,但是:

c:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.18\sbin>rabbitmqctl status
Error: unable to perform an operation on node 'rabbit@localhost'. Please see diagnostics information and suggestions below.
Run Code Online (Sandbox Code Playgroud)

Erlang + Rabbitmq + Win7。我已经启动了 Rabbitmq 服务,它可以工作,但是节点是使用随机名称自动创建的

attempted to contact: [rabbit@localhost]

rabbit@localhost:
  * connected to epmd (port 4369) on localhost
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on localhost
  * suggestion: start the node

Current node details:
 * node name: 'rabbitmqcli-10012-rabbit@localhost'
 * effective user's home directory: C:\Users\andrey
 * Erlang cookie hash: LdQNaRpK/HR5vh8yRc6A2w==
Run Code Online (Sandbox Code Playgroud)

rabbitmq rabbitmqctl

5
推荐指数
1
解决办法
2万
查看次数

初始化容器以等待rabbit-mq准备就绪

我在docker-library/healthcheck看到了 RabbitMQ 的 docker healthcheck 示例。

我想对我的 Kubernetes 部署应用类似的机制,以等待 Rabbit 部署准备就绪。我正在对 MongoDB 做类似的事情,使用一个通过一些 ping 命令忙等待 mongo 的容器。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: app-1
  template:
    metadata:
      labels:
        app: app-1
    spec:
      initContainers:
        - name: wait-for-mongo
          image: gcr.io/app-1/tools/mongo-ping
      containers:
        - name: app-1-service
          image: gcr.io/app-1/service
          ...
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试构建这样的 init 容器时,我找不到任何关于如何从集群外部查询兔子健康状况的解决方案。

rabbitmq docker kubernetes rabbitmqctl

5
推荐指数
1
解决办法
3276
查看次数