标签: rabbitmq

RabbitMQ/ActiveMQ或Redis超过250,000 msg/s

虽然redis和消息排队软件通常用于不同的目的,但我想问一下使用redis的优缺点以下用例:

  • 事件收集器组将传入消息写为键/值.消费者获取和删除已处理的密钥
  • 负载从100k msg/s开始,在短时间内(如月)超过250k,目标是达到百万msg/s
  • 坚持不是严格要求的.在失败期间丢失非日志消息是可以的
  • 性能非常重要(因此,处理负载所需的系统数量)
  • 消息不必按照它们到达的顺序进行处理

你知道redis选择传统消息排队软件的用例吗?或者你会考虑别的吗?

注意:我也看过这个但没有帮助: 实时应用新手 - Node.JS + Redis或RabbitMQ - >客户端/服务器怎么样?

谢谢

performance activemq-classic message-queue rabbitmq redis

23
推荐指数
1
解决办法
2万
查看次数

预订Django + Celery + RabbitMQ?

OK,我一直在阅读有关的celeryrabbitmq,而我很欣赏的项目和文档的努力,我仍然感到困惑了很多东西.

http://www.celeryproject.org/

http://ask.github.com/django-celery/

我很困惑芹菜是否仅适用于Django或独立服务器,因为第二个链接声称celery与Django紧密相关.两个网站都展示了不同的设置和使用方式celery,这对我来说是混乱的.

足够的咆哮,有没有合适的书我可以买?

python django rabbitmq celery

23
推荐指数
1
解决办法
5649
查看次数

SocketIO扩展架构和大房间要求

我们在大型聊天应用程序中使用socketIO.

在某些时候,我们希望向所有其他用户发送"在线状态"(用户可用性).

io.in('room1').emit('availability:update', {userid='xxx', isAvailable: false});
Run Code Online (Sandbox Code Playgroud)

room1可能包含很多用户(最多500个).当触发许多可用性更新时,我们观察到NodeJS负载显着增加.

我的想法是使用与Socket IO类似的redis商店.让Web浏览器客户端连接到不同的NodeJS服务器.

当我们想要发射到房间时,我们使用Redis PubSub ZeroMQ甚至RabbitMQ将"emit to room1"有效负载分配给所有其他NodeJS进程以实现持久性.每个进程本身都会调用自己的io.in('room1').emit目标来定位其连接用户的子集.

这种设置的一个问题是进程间通信可能变得非常繁忙,我想知道它是否会成为未来的问题.

这是我想到的架构.

在此输入图像描述

scalability rabbitmq redis node.js socket.io

23
推荐指数
1
解决办法
2186
查看次数

AMQP 1.0实现在哪里?等待会有意义吗?

我正在研究如何确定我们未来产品的解决方案,我无法真正理解这一点.

有一堆AMQP 0.9.1实现(RabbitMQ,Apache Qpid,OpenAMQ,仅举几例),但没有AMQP 1.0实现,尽管1.0已经在2011年10月完成.好吧,除了SwiftMQ [1].

阅读1.0,它似乎与1.0之前的规范有很大的不同,所以似乎可以理解的是,对一些工作正常的重大改写几乎没什么热情.事实上,我不明白为什么RabbitMQ和其他人不会决定迁移到ZeroMQ而不是AMQP 1.0.

尽管如此,除了一些模糊的承诺,例如"努力始终实施最新的AMQP规范"之外,我还没有找到任何关于1.0 AMQP前规范的实施者的明确声明.

编辑: RabbitMQ确实说

RabbitMQ的未来版本将实现AMQP 1.0.请联系我们.

然而,有些东西告诉我,声明已超过3年,即它早于AMQP 1.0的发布.

那么有没有迹象表明AMQP 1.0可能成为一个标准,除了主要银行 - 和微软 - 支持它的事实?顺便说一句.没有自己的实现.

看起来AMQP 0.9.1似乎比1.0更标准.

嗯,有https://github.com/rabbitmq/rabbitmq-amqp1.0,它自称的状态是原型,显然没有工作半年.

[1]我对SwiftMQ的第一印象是我通过其作者对Spring缺乏AMQP支持的咆哮得到的,这就是为什么我暂时不考虑它.我不想指望那个家伙的支持.

amqp rabbitmq qpid

22
推荐指数
4
解决办法
1万
查看次数

无法在Windows中创建Cookie文件RabbitMQ

我正在尝试运行以下命令

rabbitmq-plugins.bat enable rabbitmq_management  
Run Code Online (Sandbox Code Playgroud)

它给我一个错误无法创建cookie文件h:/.

我使用的是Windows 7,Erlang版本R16B01和RabbitMQ-Server 3.1.5版

我正在使用我的工作PC,我们的公司政策将HOMEDRIVE设置为h:和HOMEPATH为/我不认为他们会让我改变这一点.

我可以在C:\ Windows下看到.erlang.cookie文件.

有人能让我知道一个解决方法吗?

提前致谢 !

erlang rabbitmq

22
推荐指数
4
解决办法
1万
查看次数

RESTful v/s MQ.除保证交付之外的差异和其他关键功能

好的..所以我开始研究MQ及其目的/用例等...我现有的应用程序(使用JSP等制作的Web)使用RestFUL接口与远程服务器通信并从服务器发布/接收数据.

我们经常要处理远程服务器的连接问题.同步问题总是在那里.

从我们的结束发送的消息.但是远程服务器发生故障.或相反亦然.

我遇到了MQ的事情,并发现在从远程服务器发送和接收消息时它是可靠的.

但同样,使用REST我认为对MQ的整个需求似乎有点模糊.我基本上在寻找MQ和RestFUL之间的一些差异.

我在其他博客文章中看到,随着RestFUL领域研究的不断增加,MQ的速度将逐渐放松.

我对MQ没有太多了解,所以不会发表任何评论,但肯定与RestFUL合作很有趣.

如果有人提供使用RestFUL和MQ之间的差异,将不胜感激.

rest activemq-classic web-applications rabbitmq

22
推荐指数
3
解决办法
2万
查看次数

OS X和rabbitMQ:错误:主机xxx的epmd错误:地址(无法连接到主机/端口)

我刚刚做了最新的OS X特立独行更新,我很惊讶看到rabbitMQ并不适合工作.我收到以下错误:

MacBook-Pro-de-Julio:~ julio$ rabbitmq-server
ERROR: epmd error for host MacBook-Pro-de-Julio: address (cannot connect to host/port)
Run Code Online (Sandbox Code Playgroud)

我使用的是独立版本rabbitMQ.我尝试重新安装它没有任何成功.当我运行hostname命令时,我得到以下结果:

MacBook-Pro-de-Julio:~ julio$ hostname
MacBook-Pro-de-Julio.local
Run Code Online (Sandbox Code Playgroud)

你知道如何解决这个问题吗?

编辑1:

通过关闭Wifi,我可以成功运行rabbitMQ.如果我打开它,我无法启动rabbitMQ.

编辑2:

感谢@old_sound的答案,我通过编辑我的问题解决了这个问题/etc/hosts.

rabbitmq osx-mavericks

22
推荐指数
2
解决办法
2万
查看次数

Celery - errno 111连接被拒绝

我的芹菜任务在两者之间停止执行.我的rabbitmq停在中间,然后我需要手动重启它.上次(15-16小时后),类似的问题发生了,我做了以下(手动),它又开始工作了.

我重新安装了rabbitmq,然后又开始工作了.

sudo apt-get --purge remove raabitmq-server

sudo apt-get install raabitmq-server

现在再次显示`

Celery - errno 111 connection refused
Run Code Online (Sandbox Code Playgroud)

以下是我的配置.

BROKER_URL = 'amqp://'
CELERY_RESULT_BACKEND = 'amqp://'

CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ACCEPT_CONTENT=['json']
CELERY_TIMEZONE = 'Europe/Oslo'
CELERY_ENABLE_UTC = True

CELERY_CREATE_MISSING_QUEUES = True
Run Code Online (Sandbox Code Playgroud)

请让我知道我哪里出错了?

我该如何纠正呢?

第2部分

另外,我有多个队列.我可以在项目目录中运行它,但是当妖魔化时,工作人员不接受任务.我仍然需要手动启动芹菜工人.我怎么能去除它呢?

这是我的celerd conf.

# Name of nodes to start, here we have a single node
CELERYD_NODES="w1 w2 w3 w4"


CELERY_BIN="/usr/local/bin/celery"

# Where to chdir at start.
CELERYD_CHDIR="/var/www/fractal/parser-quicklook/"

# Python interpreter from environment, if using virtualenv
#ENV_PYTHON="/somewhere/.virtualenvs/MyProject/bin/python" …
Run Code Online (Sandbox Code Playgroud)

python rabbitmq celery

22
推荐指数
2
解决办法
1万
查看次数

Celery:你应该什么时候选择Redis作为RabbitMQ上的消息代理?

我粗略的理解是,如果您需要内存中的键值存储功能,Redis会更好,但是我不确定这与分发任务有什么关系?

这是否意味着我们应该将Redis用作消息代理,如果我们已经将其用于其他内容?

python django rabbitmq redis celery

22
推荐指数
1
解决办法
8856
查看次数

在ASP.NET Core应用程序中设置RabbitMQ使用者

我有一个ASP.NET Core应用程序,我想使用RabbitMQ消息.

我已成功在命令行应用程序中设置发布者和使用者,但我不确定如何在Web应用程序中正确设置它.

我正在考虑初始化它Startup.cs,但当然一旦启动完成它就会死掉.

如何从Web应用程序以正确的方式初始化消费者?

c# rabbitmq .net-core asp.net-core

22
推荐指数
3
解决办法
1万
查看次数