我正在开发一个项目,将有不受信任的客户端(可能是1000个)全部与中央服务器联系。 消息stream量低,每个客户端彼此不可见(换句话说,他们应该无法彼此交谈或窥探彼此的渠道)。 RabbitMQ在这里似乎是一个很好的select。 它将作为我的应用程序和客户之间的中介。 客户端将直接连接到RMQ,每个都有自己的独立队列,RMQ将代理客户端和服务器之间的消息。 所以我的问题 :假设我设置了所有的东西(大部分)是正确的(身份validation,每个客户端是一个单独的用户,对队列的权限等),RabbitMQ安全这种面向公众的应用程序? 有没有人有任何类似的设置在野外的例子? 作为一个说明性的例子,nginx和sshd被devise成面向公众,而像MongoDB这样的东西实际上不是。 即使我在Mongo上设置了个人用户名和密码,并在个人collections上设置了权限,但是让不信任的客户端直接连接到它,我感到不自在。
我的rabbitmq-env.conf如下所示: root@encoder001 /etc/rabbitmq# cat ./rabbitmq-env.conf CONFIG_FILE=/etc/rabbitmq/rabbitmq.config 当我重新启动时,日志说: =INFO REPORT==== 16-Sep-2017::09:22:21 === node : rabbit@encoder001 home dir : /var/lib/rabbitmq config file(s) : /etc/rabbitmq/rabbitmq.config (not found) cookie hash : r6Fx293RnLUql2MqE0Wfqg== log : /var/log/rabbitmq/[email protected] sasl log : /var/log/rabbitmq/[email protected] database dir : /var/lib/rabbitmq/mnesia/rabbit@encoder001 事实上,该文件是在那里..我prettysure它有适当的访问标志 root@encoder001 /etc/rabbitmq# ls -la |grep config -rw-r–r– 1 root rabbitmq 22994 Sep 16 09:16 bunnies.config […]
我正在用Ubuntu11.04上的RabbitMQ在一个不是django项目的python项目上testingCelery。 我有我的celeryconfig.py和我的test.py文件在/ mypath / myproject /中。 我的/etc/default/celeryd看起来像这样: # Where to chdir at start. CELERYD_CHDIR= "/mypath/myproject/" # Extra arguments to celeryd CELERYD_OPTS=”–time-limit=300” # Name of the celery config module.# CELERY_CONFIG_MODULE=”celeryconfig” 当我运行sudo /etc/init.d/celeryd start我得到这个错误信息: /etc/default/celeryd: line 2: /mypath/myproject/: Is a directory 有任何想法吗? 我按照这些说明 。
我无法在Debian 6上启动rabbitmq 它只是不会显示任何错误。 但不会启动..我find了日志文件。 … starting database …BOOT ERROR: FAILED Reason: {error,{future_upgrades_found,[exchange_event_serial, semi_durable_route,trace_exchanges]}} Stacktrace: [{rabbit_upgrade,'-maybe_upgrade/0-fun-0-',2}, {rabbit_upgrade,with_upgrade_graph,1}, {rabbit_mnesia,init_db,2}, {rabbit_mnesia,init,0}, {rabbit,'-run_boot_step/1-lc$^1/1-1-',1}, {rabbit,run_boot_step,1}, {rabbit,'-start/2-lc$^0/1-0-',1}, {rabbit,start,2}] {"Kernel pid terminated",application_controller,"{application_start_failure,rabbit,{bad_return,{{rabbit,start,[normal,[]]},{'EXIT',{rabbit,failure_during_boot}}}}}"}
我想使用HAProxy作为负载平衡器。 我想把两个rabbitmq服务器放在haproxy后面。 rabbitmq服务器都在EC2的不同实例上。 按照此参考configurationHAProxy服务器。 我的工作,但问题是消息不是发布在roundrobin模式。 消息只在一台服务器上发布。 我的要求是否有不同的configuration? 我在/etc/haproxy/haproxy.cfg中configuration listen rebbitmq *:5672 mode tcp balance roundrobin stats enable option forwardfor option tcpka server web2 46.XX.XX.XXX:5672 check inter 5000 backup server web1 176.XX.XX.XX:5672 check inter 5000 backup listen web-service *:80 mode http balance roundrobin option httpchk HEAD / HTTP/1.0 option httpclose option forwardfor option httpchk OPTIONS /health_check.html […]
是否有一个现有的puppet模块在集群模式下安装RabbitMQ? 我可以基于我的解决scheme的模块也不错。
我想我们已经达到了celery events和celery fllower可用性的极限。 是否有一个好的工具来监视在RabbitMQ下运行的芹菜的状态? 特别是在下列情况下,我希望发出警报: 我的队列正在备份 消费者注册或取消注册 这也是很好的知道: 当某种历史指标日志时,执行多less任务 平均任务持续时间等
我已经安装了一个RabbitMQ集群,我正在关于设置镜像队列( Highly Available Queues )的文档。 它说: 通过将ha-sync-mode策略密钥设置为自动,可以将队列设置为自动同步。 ha-sync-mode也可以设置为manual。 如果没有设置,则手动被假定。 为什么手动同步是默认的? 什么是手动同步的一些用例? 与此同时,我用了: rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all", "ha-sync-mode": "automatic"}'
需求: 我负载testing兔子MQ通过生成大量的请求/秒的服务器(服务器configuration:8核心,16GB)。 为了达到上述目的,我尽可能以最大速率从客户端机器产生负载(客户端configuration:4core,4GB)。 问题: 即使运行客户端产生最大req /秒,我能够实现从1客户端只有10,000req /秒。 只有20%的CPU和2%的内存被利用。 所以我假设客户端没有任何限制。 在监视服务器上每个连接的带宽使用情况时,我注意到我的客户端连接仅在12MB上分配了最大值。 增加来自客户端的连接数量也不能解决问题。 查询: 每个连接的带宽是否限制了它? 是否有其他的东西,我可以提高我的整体连接速度从客户端?
我有RabbitMQ在Apache mod_proxy后面运行,所以我可以通过端口80访问Webpipe理界面: <VirtualHost *:80> ServerName rabbit.example.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:15672/ ProxyPassReverse / http://localhost:15672/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost> 这似乎工作,但是,当我例如去队列页面,我点击列出的队列之一,我得到一个未find页面和一个像这样的URL: http://rabbit.example.com/#/queues/%2F/myqueue 连接,频道等相同的事情。我似乎只能够访问顶部页面,但更深层的东西似乎导致未find。 在Apache mod_proxy后面configurationRabbitMQ的正确方法是什么?