我有一只兔子mq ha /集群,并由起搏器在两个节点之间共享一个虚拟ip。 问题是,如果整个活动主机closures,起搏器将只能进行故障切换,但是如果rabbit mq在主动主机上closures,则不会起作用。 我不能只添加兔子mq作为资源,因为起搏器将停止被动主机上的服务,这将阻止兔子mq同步消息… 如果兔子mq在主动主机上closures,我该如何进行虚拟ip故障转移? (我正在旅行,所以我不得不在我的电话上填写,我为任何错误而道歉。)
我有多个rabbitmq监听器在Linux机器上运行。 然而,当我发布消息A(需要一些时间来处理,大约5分钟)时,A之后的新消息在队列中等待直到A被处理,而不是进入下一个空闲监听器。 因此我无法利用多个听众
我们在Windows Server 2008上使用Erlang 17.4运行RabbitMq 3.6.2。我们在sasl日志中一遍又一遍地看到以下logging。 这种情况正在发生(每几个小时),没有特定的模式。 =SUPERVISOR REPORT==== 05-Jul-2016::09:52:42 === Supervisor: {<0.835.211>,amqp_channel_sup_sup} Context: shutdown_error Reason: shutdown Offender: [ {nb_children,1}, {name,channel_sup}, {mfargs, {amqp_channel_sup,start_link, [direct,<0.864.211>, <<"">>]}}, {restart_type,temporary}, {shutdown,brutal_kill}, {child_type,supervisor}] 我在这里读到,pipe理插件通过HTTP API可能与活性testing有关。 我们还使用来自负载均衡器的活性testing来定义哪些节点应该接收stream量。 任何帮助理解日志实际上意味着什么,以及如何防止(如果需要),将不胜感激。 我也在这里发布了Stack Overflow的这个问题。
我似乎是Django-Celery-RabbitMQ项目部署的最后一步。 通过systemd运行芹菜,httpd和rabbitmq-server服务,当我在Django中触发任务时,我看到消息Received task: smartalec.tasks.match_loadfile_task 在哪里smartalec是我的应用程序,并match_loadfile_task是我的任务,该项目被称为tcida_api。 但30秒左右之后,会有一个巨大的堆栈跟踪,如下所示(完整的debugging日志,下面有例外)。 [2016-09-09 15:34:20,040: ERROR/MainProcess] Task smartalec.tasks.match_loadfile_task[740dc792-7410-4418-aa44-dd9c56b63b04] raised unexpected: DatabaseError(' <cx_Oracle._Error object at 0x3a3ed50>',) 谷歌search“Django甲骨文Celery数据库错误”得到一些关于在单个连接共享线程的查询,但我不知道是否适用于我,因为我在我的数据库configurationproject.settings中“threaded = TRUE”。 从命令行运行芹菜时,我也一样。 sudo /opt/tcida/virtualenv/smartalec/bin/celery -A my_django_project worker -l info 我没有安装django芹菜,Django可以使数据库查询没有问题,通过shell和网页,configuration在我的本地机器上使用django的开发服务器工作。 什么可以导致或解决这个exception? 全芹菜DEBUG日志,uncluding完整的堆栈跟踪。 [amartin@ip-10-50-7-148 tcida_api]$ sudo /opt/tcida/virtualenv/smartalec/bin/celery -A tcida_api worker –concurrency 1 -l debug /opt/tcida/virtualenv/smartalec/lib/python2.7/site-packages/celery/platforms.py:812: RuntimeWarning: You are running the worker with superuser privileges, which is […]
从rabbitMQ的主页面,我可以看到有8个队列,但是当我切换到队列页面时,没有一个。 我使用pipe理员帐户login。 其他选项卡正确显示。
将RabbitMQ节点join群集之后,我们注意到群集中的其他节点将其标记为closures,处于警报状态: root@rabbit2:# rabbitmqctl cluster_status Cluster status of node 'rabbit@rabbit2' … [{nodes,[{disc,['rabbit@rabbit1','rabbit@rabbit2', 'rabbit@rabbit3']}]}, {running_nodes,['rabbit@rabbit1','rabbit@rabbit3','rabbit@rabbit2']}, {cluster_name,<<"[email protected]">>}, {partitions,[]}, {alarms,[{'rabbit@rabbitmq-1',[nodedown]}, {'rabbit@rabbitmq-3',[]}, {'rabbit@rabbitmq-2',[]}]}] 检查问题的点头,没有问题: root@rabbit1:# rabbitmqctl cluster_status Cluster status of node 'rabbit@rabbitmq-1' … [{nodes,[{disc,['rabbit@rabbit1','rabbit@rabbit2', 'rabbit@rabbit3']}]}, {running_nodes,['rabbit@rabbit2','rabbit@rabbit3','rabbit@rabbit1']}, {cluster_name,<<"[email protected]">>}, {partitions,[]}, {alarms,[{'rabbit@rabbit2',[]}, {'rabbit@rabbit3',[]}, {'rabbit@rabbit1',[]}]}] 我们已经尝试清除rabbitmq的安装以及所有的erlang组件并重新开始,但是节点仍然给出相同的问题。
我有一个Debian 8虚拟机(在proxmox)dynamic内存分配范围从512 MB到4GB的内存。 我在该机器上安装了rabbitmq-server,并想知道内存工作stream程如何与这个设置一起工作。 我已经将内存水印设置为0.9,但是当然,这是启动rabbitmq-server时分配的内存(通常非常低,约900MB)的90%。 使用绝对值不起作用,因为它将获得指定的绝对值或指定的RAM的最小值。 当兔子开始时,它会很快达到门槛,并阻止出版商等等。 什么是解决这个问题的最好方法(我在这里有点迷路) – 我希望兔子根据需要使用所有可用的内存 – 我是否应该请求分配内存或者有一些方法来设置兔子禁用这个水印? 谢谢!
我有一台带有rabbitmq服务器和4台芹菜工作站的机器( test-server ),另外一台机器( test-worker )有240名芹菜工人,它们连接到test-server服务器上的rabbitmq test-server 。 所有队列目前都是空的。 有了这个设置, beam.smp (我收集的是一个rabbitmq相关的进程)在200-250%的CPU,并消耗几百MB的RAM(这可能是好的,不知道)。 如果我停止远程机器上的工作,它将恢复正常。 如果我只启动例如40个工人,而不是240个,那么它或多或less都可以 – 仍然占用CPU,但是大约有50%。 主要的beam.smp线程卡在select ,我认为是好的,因为它只是在听线程的子线程。 以下是子线程的一个子集。 有一些调用epoll_wait与零超时,还有很多futex调用。 我也发现这个错误,在oslo中描述(不知道是什么) https://bugs.launchpad.net/oslo.messaging/+bug/1518430 ,也提到了零超时epoll_wait调用,并提到rabbitmq。 任何想法,如果这是兔子在这些条件下的预期行为? 我应该在哪里寻找原因? 谢谢 test-server$ sudo strace -p 26866 2>&1 | head -n 50 Process 26866 attached futex(0x82e500, FUTEX_WAKE_PRIVATE, 1) = 1 epoll_wait(3, {}, 256, 0) = 0 clock_gettime(CLOCK_MONOTONIC, {87999, 785829269}) = 0 futex(0x82e500, […]
Erl.exe坐在90%以上的CPU,而兔子服务器基本闲置。 这是在Windows 2012R2上的全新安装,兔子版本3.6.6在日志中没有什么,但我注意到GC /上下文切换的数字是天高: GC操作84,190 / s GC字节回收325,660,781 / s上下文切换操作284,047 / s 有任何想法吗?
你如何查看RabbitMQpipe理中的挂起/排队消息? 我运行了RabbitMQpipe理工具,概览页面显示已有超过4000条消息。 这也表明,有超过90个消费者。 然而,现成的消息数量没有变化,我的Celery处理器没有报告他们正在处理任何任务。 如何查看在Rabbit中排队的实际消息? pipe理员中的任何页面都不会显示给你消息。 在“队列”下单击可显示准备就绪消息最多的队列,但再次单击进入其中一个队列不会显示任何消息。 另外,我已经configuration了Celery运行2个进程,1个消耗队列“默认”,一个消耗队列“长”,为10个不同的客户端应用程序。 所以我期望在RabbitMQ中列出2 * 10 = 20个队列,但是它列出了超过100个像“f5e18f4a079045cbafbca48fb20c7cec”这样的随机名字,而且他们中的任何一个似乎都没有得到处理。 这些垃圾队是什么?