我正在设置一个RabbitMQ实例在我的开发工作站上运行,以便进行testing。 我想玩configuration(conf在我的情况下stream量控制)。 我已经安装了erlang,rabbitmq-server-3.1.1,将RABBITMQ_BASE设置为某个目录,将RABBITMQ_CONFIG_FILE设置为c:/path/to/myconf (所以它引用了c:\path\to\myconf.config )。 现在我打开我的cmd并执行rabbitmq-service install。 Webpipe理器显示我的RMQ服务器已启动并正在运行。 但是我设置的disk_free_limit的值不匹配。 我不知道如果configuration文件没有读取,或者如果我的configuration文件有错误,因此被忽略。 我的conf文件的内容: [ {rabbit, [ {disk_free_limit, 250000000} ] } ]. 在日志中启动报告(显示我的conf文件不被读取): =INFO REPORT==== 12-Jun-2013::17:06:44 === node : rabbit@DEV-WORKSTATION home dir : C:\Windows config file(s) : (none) cookie hash : 2SazL+DgWDMqrHlr4w8R8A== log : c:/rabbitmq_server-3.1.1/RabbitMQ/log/DEV-WORKSTATION.log sasl log : c:/rabbitmq_server-3.1.1/RabbitMQ/log/[email protected] database dir : c:/rabbitmq_server-3.1.1/RabbitMQ/db/rabbit@DEV-WORKSTATION-mnesia 谢谢你的帮助。
我试图永久增加RabbitMQ文件描述符限制。 我已经将系统限制增加到了65535,并且通过在/etc/security/limits.d/rabbitmq.conf文件中添加一个条目来为RabbitMQ进程做相同的操作。 ulimit -n输出是65536 。 su – rabbitmq -s /bin/sh -c 'ulimit -n'是65535 。 输出rabbitmqctl status | grep -A 4 limit rabbitmqctl status | grep -A 4 limit是: {vm_memory_limit,16900370432}, {disk_free_limit,16900370432}, {disk_free,1786935627776}, {file_descriptors, [{total_limit,924},{total_used,5},{sockets_limit,829},{sockets_used,1}]}, {processes,[{limit,1048576},{used,204}]}, {run_queue,0}, {uptime,3}] 如果我运行rabbitmqctl eval 'file_handle_cache:set_limit(65000).' 那么我得到: {vm_memory_limit,16900370432}, {disk_free_limit,16900370432}, {disk_free,1786935721984}, {file_descriptors, [{total_limit,65000}, {total_used,5}, {sockets_limit,58498}, {sockets_used,1}]}, {processes,[{limit,1048576},{used,204}]}, {run_queue,0}, {uptime,91}] 有谁知道我如何永久增加file_descriptors total_limit ? 每次重新启动RabbitMQ时,都会返回到924。 […]
该环境由运行RabbitMQ的两台2012R2虚拟机在其队列中的高可用性(ha-all)组成。 我使用Veeam创build作为DR策略一部分的异地发送的快照备份。 我所看到的是Veeam备份发生时群集的间歇性故障。 当群集中断时,会导致loggingMnesia事件,或者有时会导致一个节点完全closures。 我相信这个问题是虚拟机如何被Veeam所掀起,在这个虚拟机暂停虚拟机一会儿,然后继续。 当这个点出现时,两个节点看到另一个消失,并且二级促进立即掌握。 两个主人一看到对方(几秒钟之后)就立即开始行动,他们碰头,集群破裂。 我在这里阅读了关于net_ticktime ,并实现了300秒,认为这将有助于使群集更加适应短Veeam点,但似乎没有帮助。 当一个节点看到另一个消失时,二级促进自己立即掌握并且似乎没有利用net_ticktime设置。 示例Mnesia错误: Mnesia('rabbit@Node01'): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, 'rabbit@Node02'} 有没有人经历过这个或类似的东西? 使用RabbitMQ或Erlang进行额外的configuration设置是否有助于使群集更具弹性,以便节点之间的连接丢失小点?
我想知道重新启动Celery的最佳方式是什么,而不会丢失任何任务。 我目前正在使用celery提供的init.d /脚本将其作为守护进程运行 – 一切正常。 尽pipe如此,我还是需要重新启动它(我认为?)才能看到代码更新。 我担心的是,如果有人上传照片,我们想在5秒钟左右的时间内对其进行处理,芹菜重新启动,任务将永远丢失,我们将开始看到奇怪的问题。 有没有build议的方式来重新加载芹菜代码,同时没有丢失任何交易? 谢谢, 菲尔
我需要在Ubuntu 10.04上使用RabbitMQ。 我之前安装过它,但是它是用于代码testing/学习的目的。 我想使用比Lucid Lynx软件库中提供的更新版本的Erlang和RabbitMQ来实际使用,因为许多事情在最新版本中已经改变了。 从软件变化得出的两个主要观点是: 在RabbitMQ中,一些客户端库不再使用2.0之前的古代版本库。 apt包erlang-nox是Erlang版本R13B,这是RabbitMQ所需的最低版本。 但是,由于SSL是我们体系结构的严格要求,因此根据此页面 ,我们至less需要R14。 RabbitMQ提供了一个.deb软件包 ,但它明确要求通过名为erlang-nox的软件包pipe理器来安装软件包。 相反,我尝试从源代码编译Erlang和RabbitMQ,但RabbitMQ一直是一个无尽的依赖关系的兔子洞; 即使Makefile也有依赖关系,因为它正在尝试使用默认情况下未安装在Ubuntu Server中的程序。 当然,它试图使用的程序在apt中也有很多依赖。 我并不担心通常会解决一些依赖问题,但我并不想真正想要安装500-1000 MB的依赖关系来安装RabbitMQ,不pipe它有多重要。 我认为Ubuntu Backports可能是一个select,但我知道并不是每个软件包都有一个backport。 我们计划在今年迁移到Ubuntu 12.04,但现在不是优先考虑的事情…将RabbitMQ部署到生产中。
我们使用RabbitMQ作为消息队列,使用Celery作为任务队列,并且我试图将我的头包裹在队列中。 有人可能会解释任务队列和消息队列之间的操作差异吗? 到目前为止,我得到的消息队列将用于实际的数据,如文本消息或日志片段。 它被放置在消息队列中,所以工作人员可以收集它并对其进行处理,parsing,存储等。 任务队列部分混淆了我,不知道为什么,什么时候或将会做什么? 我认为工作人员(AKA任务?)会不断地轮询消息队列中的事情,所以为什么会有一个任务队列呢?
这是我得到的错误: ubuntu@sync1:/etc/puppet$ sudo /usr/bin/apt-get -q -y -o DPkg::Options::=–force-confold install rabbitmq-server Reading package lists… Building dependency tree… Reading state information… rabbitmq-server is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. 1 not fully installed or removed. After this operation, 0 B of additional disk space will be used. […]
这篇文章与使用YUM的安装Sensu相结合,用于安装,configuration和启动Sensu及相关服务: sudo yum install -y erlang && \ sudo rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.0/rabbitmq-server-3.5.0-1.noarch.rpm && \ sudo yum install -y redis && \ echo '[sensu] name=sensu baseurl=http://sensu.global.ssl.fastly.net/yum/$basearch/ gpgcheck=0 enabled=1' | sudo tee /etc/yum.repos.d/sensu.repo && \ sudo yum install -y sensu && \ sudo yum install -y uchiwa && \ for s in rabbitmq-server redis.service sensu-server sensu-api uchiwa; […]
我尝试使用以下命令启动rabbitmq: /etc/init.d/rabbitmq-server start 然后我得到 Starting rabbitmq-server: TIMEOUT – check /var/log/rabbitmq/startup_{log,err} rabbitmq-server. 我检查了startup_log和startup_err,但他们没有显示任何东西。 有什么build议么?
我正在学习RabbitMQ,并在http://www.rabbitmq.com/tutorials/tutorial-one-python.html上运行hello world示例,在localhost上没有问题。 现在我想testing从我的电脑到另一台服务器的消息,receive.py似乎从来没有得到任何消息。 也许我没有正确指定主机名? Receive.py: #!/usr/bin/env python import pika import json connection = pika.BlockingConnection(pika.ConnectionParameters( host='66.175.x.x')) channel = connection.channel() channel.queue_declare(queue='hello') print ' [*] Waiting for messages. To exit press CTRL+C' def callback(ch, method, properties, body): data = json.loads(body) print "Log filename is " + data["filename"] print data["content"] channel.basic_consume(callback, queue='hello', no_ack=True) channel.start_consuming() send.py: #!/usr/bin/env python import pika […]