我正在尝试使用两个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 ==
我已经尝试过的事情:
sudo cat /var/lib/rabbitmq/.erlang.cookie.export ERL_EMPD_PORT=4370 netstat -an |grep 4369 | grep -i listen 更改了所有者和权限也使用
sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
Run Code Online (Sandbox Code Playgroud)添加端口
sudo iptables -I INPUT -p tcp --dport 4369 --syn -j ACCEPT
Run Code Online (Sandbox Code Playgroud)sudo rabbitmqctl …
我安装了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应用程序并不断从队列接收日志.
使用 RabbitMQ 作为代理,我想将所有消息从一个队列复制到另一个队列以进行测试/调试。通过 RabbitMQ Web 管理控制台/cli 最简单的方法是什么?
PS 在指定队列的 web 控制台下,我只能移动消息而不是将消息复制到新队列。
我们正在运行 RabbitMQ 并且它写入日志文件夹的 .log 变大了。
在那里做什么是正确的,我们可以不时删除它,我们应该旋转它们然后删除它们吗?我找不到任何关于此的文档。
我有几个虚拟主机的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文档说我们需要在生产之前进行一些配置.其中一个配置是关于最大打开文件号(这是一个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.
可能是什么导致了这个问题?
我使用以下命令在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 MNESIA 目录更改为/diskfolder 而不是 default /var/lib。我做了变化,/usr/lib/rabbitmq/bin在rabbitmq-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) 尝试使用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) 我在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 容器时,我找不到任何关于如何从集群外部查询兔子健康状况的解决方案。