在工作中,我们需要构建一个作业服务器,用于发送电子邮件,构建PDF,处理一些数据等.显然,我们希望建立一些通用的排队系统.我熟悉Gearman,这是它试图解决的确切问题:将工作放在工作人员来接他们的队列中.但是,我看到很多关于Rabbitmq的提及,我不清楚它在这种情况下是如何使用的.
Rabbitmq是构建分布式作业系统的好框架吗?
我在VPS Debian Linux机器上安装了最新版本的RabbitMQ.试图通过访客/访客登录,但返回登录失败的消息.我做了一点研究,发现出于安全原因,禁止远程访客/访客登录.
我也尝试通过rabbitmq.config手动创建文件来远程登录此版本的访客用户(因为安装没有创建一个)并仅放置以下条目
[{rabbit, [{loopback_users, []}]}].
Run Code Online (Sandbox Code Playgroud)
使用以下命令重启rabbitmq后.
invoke-rc.d rabbitmq-server stop -- to stop
invoke-rc.d rabbitmq-server start -- to start
Run Code Online (Sandbox Code Playgroud)
它仍然没有与访客/客人登录.我也尝试在Windows VPS上安装RabbitMQ并尝试通过localhost通过guest/guest登录,但我再次收到相同的消息登录失败.
还为我提供了一个源代码,我可以尝试安装旧版本的RabbitMQ,它支持通过访客/来宾远程登录.
我可以得到RabbitMQ和MSMQ之间的比较.可以获得有关不同因素的有用性能信息.
操作系统:Mac OSX 10.9
我已经rabbitmq通过家庭酿造安装,当我去/usr/local/sbin运行rabbitmq-server它时说:rabbitmq-server: command not found即使作为sudo它也表示同样的错误.
如果它不是命令,我如何让rabbitmq启动?我也尝试chmod +x rabbitmq-server在该目录中将其作为可执行文件,同样的问题.
根据我的理解,Celery是一个分布式任务队列,这意味着它应该做的唯一事情是将任务/作业分派给其他服务器并获得结果.RabbitMQ是一个消息队列,仅此而已.但是,工作人员只能在收到消息时监听MQ并执行任务.这完全符合Celery的要求,为什么需要Celery呢?
我是RabbitMQ的新手.
我已经建立了一个'主题'交换.消费者可以在发布者之后开始.我希望消费者能够接收在他们启动之前已经发送的消息,而这些消息还没有被消费.
交换使用以下参数设置:
exchange_type => 'topic'
durable => 1
auto_delete => 0
passive => 0
Run Code Online (Sandbox Code Playgroud)
使用此参数发布消息:
delivery_mode => 2
Run Code Online (Sandbox Code Playgroud)
消费者使用get()从交换中检索消息.
不幸的是,任何客户端启动之前发布的任何消息都将丢失.我使用了不同的组合.
我想我的问题是交换机没有保留消息.也许我需要在发布者和队列之间有一个队列.但这似乎不适用于通过密钥路由消息的"主题"交换.
知道我该怎么做.我使用Perl绑定Net :: RabbitMQ(应该无关紧要)和RabbitMQ 2.2.0.
我需要创建一个队列进行处理.队列本身的体积相对较小.每小时可能有大约1,000次写入.每个任务的执行可能大约需要一分钟,并且几乎在项目添加到队列后立即处理.
我有没有理由想要实现RabbitMQ,而不是像Amazon SQS那样现成的东西?应用程序需要自己的排队系统而不是SQS之类的原因是什么?
如果我在我的机器上安装了RabbitMQ,是否有办法从命令行创建消息队列并将其绑定到某个交换而不使用客户端?
我认为这是不可能的,但我想确定.
简介:有没有办法通过ubuntu软件包安装rabbitmq-plugins?
细节:
我的ubuntu系统中有rabbitmq正常运行,现在我正在尝试通过管理插件监控正在发生的事情.我正在关注rabbitmq.com/management.html说明,但无法执行
rabbitmq-plugins enable rabbitmq_management
Run Code Online (Sandbox Code Playgroud)
因为我的系统没有安装rabbitmq-plugins.
它是Ubuntu 1110,并附带了rabbitmq作为一个软件包安装(aptitude安装rabbitmq-server librabbitmq-dev).配置和服务器运行正常(安装的版本是2.5.0).
以为插件会通过安装"sudo aptitude install rabbitmq-plugins-common"来安装,但这样做不会安装rabbitmq-plugins.
有没有安装插件的软件包?我想避免如果可能必须清除运行正常的rabbitmq服务器,然后通过源代码下载+构建重新安装它,所有这些只是为了获取插件.
谢谢.
在Windows 7企业版机器上,我重新安装了Erlang 17.4和RabbitMQ 3.4.3 x64.安装成功且平安无事.
我还没有尝试创建我的第一个队列或交换,但我已经看到了麻烦.这个问题类似于另一个SO帖子,但其他帖子似乎涉及群集,我没有.此外,其他海报可以通过重新启动RabbitMQ服务来规避他的问题; 这种方法对我不起作用.
我的"nodedown"问题在RabbitMQ命令提示符下很明显:
C:\ Program Files(x86)\ RabbitMQ Server\rabbitmq_server-3.4.3\sbin> rabbitmqctl status节点兔子的状态@ TPAJ05421843 ...
错误:无法连接到节点兔子@ TPAJ05421843:nodedown诊断
试图联系:[rabbit @ TPAJ05421843]
rabbit @ TPAJ05421843:
*连接到TPAJ05421843上的epmd(端口4369)
*epmd报告:节点'rabbit'未
在TPAJ05421843 上的所有其他节点上运行:['RabbitMQ']
*建议:启动节点当前节点详细信息:
- 节点名称:'rabbitmqctl-19884 @ TPAJ05421843'
- 主目录:H:\
- cookie哈希:PD4QQCYrf0TME9vIko3Xuw ==
基于以上所述,我选择检查明确命名为"RabbitMQ"的节点的状态.我明白了:
C:\ Program Files(x86)\ RabbitMQ Server\rabbitmq_server-3.4.3\sbin> rabbitmqctl -n RabbitMQ status
节点'RabbitMQ @ TPAJ05421843'的状态...
错误:无法连接到节点'RabbitMQ @ TPAJ05421843':nodedown诊断
试图联系:['RabbitMQ @ TPAJ05421843']
RabbitMQ @ TPAJ05421843:
*连接到TPAJ05421843上的epmd(端口4369)
*epmd报告节点'RabbitMQ'在端口59301上运行
*TCP连接成功但Erlang分发失败
*建议:主机名不匹配?
*建议:cookie设置正确吗?当前节点详细信息:
- 节点名称:'rabbitmqctl-23076 @ TPAJ05421843'
- 主目录:H:\
- cookie哈希:PD4QQCYrf0TME9vIko3Xuw …