我只是在阅读关于JMS和Apache ActiveMQ的abit.并且想知道现实世界中有人使用JMS或类似的消息队列技术吗?
我需要一个高性能的消息总线为我的应用程序,所以我正在评估ZeroMQ,RabbitMQ和Apache Qpid.为了衡量性能,我正在运行一个测试程序,该程序使用其中一个消息队列实现发布说10,000条消息,并在同一台机器上运行另一个进程来使用这10,000条消息.然后我记录发布的第一条消息和收到的最后一条消息之间的时差.
以下是我用于比较的设置.
RabbitMQ:我使用了"扇出"类型交换和具有默认配置的队列.我使用了RabbitMQ C客户端库.ZeroMQ:我的发布者tcp://localhost:port1使用ZMQ_PUSH套接字发布,My broker侦听tcp://localhost:port1并将消息重新发送到tcp:// localhost:port2,我的消费者tcp://localhost:port2使用ZMQ_PULL套接字侦听.我正在使用代理而不是对等通信ZeroMQ来使性能比较公平到使用代理的其他消息队列实现.QpidC++消息代理:我使用了"扇出"类型交换和具有默认配置的队列.我使用了Qpid C++客户端库.以下是效果结果:
RabbitMQ:接收10,000条消息大约需要1秒钟.ZeroMQ:接收10,000条消息大约需要15毫秒.Qpid:接收10,000条消息大约需要4秒钟.问题:
RabbitMQ或Qpid使其性能更好?注意:
测试是在具有两个分配处理器的虚拟机上完成的.结果可能因硬件而异,但我主要对MQ产品的相对性能感兴趣.
我很想听到有关MongoDB作为队列服务的真实应用程序体验的更多信息,如果您为此目的使用MongoDB,您可以分享您的想法,以及它的使用环境吗?
我正在研究Apache Kafka.我想知道哪一个更好:Kafka或ActiveMQ.这两种技术的主要区别是什么?我想在Spring MVC中实现Kafka.
我有一个在后台运行的C++进程,它将不经常生成'事件',以便在同一个盒子上运行的Python进程需要获取.
我有什么选择?
谢谢
我正在用Python编写一个程序,我正在考虑使用本地客户端 - 服务器模型,但我正在努力找出服务器与客户端通信的最佳方式.一个简单的罐装解决方案是最好的 - 我不打算重新发明轮子.以下是我对此计划的需求:
客户类型1似乎很简单; 这是一个单向的哑管.客户端类型2更有趣.我想避免简单地轮询服务器以定期检查新数据,因为这会为用户增加明显的延迟.当状态信息被更新时,服务器需要某种方式向所有且仅向相关客户端发信号,以便客户端可以从服务器接收更新的状态.客户端类型3必须是双向的; 它会将用户提供的数据发送到服务器,并在每次发送后收到某种响应.
我查看了Python的IPC页面(http://docs.python.org/2/library/ipc.html),但我认为这些解决方案中的任何一个都不适合我的需求.子进程模块是完全不合适的,其他一切都比我想要的低一些.
类似的问题Efficient Python to Python IPC并不完全相同; 我不需要传输Python对象,我并不特别担心我拥有的客户端数量的CPU效率,我只关心Linux,而且无论如何这个问题的答案对我都没有帮助.
我不能接受只是指向框架/库/模块/工具的答案,而不实际解释它如何用于我的三种不同的服务器 - 客户端关系.如果你说,"所有这一切都可以通过命名管道完成!" 我不得不问"怎么样?" 代码片段是理想的,但对解决方案的高级描述也可以起作用.
我想知道当我们需要在django项目中使用某种任务队列时需要考虑什么标准,我正在考虑性能,开发速度,灵活性等.
我一直在使用Celery + RabbitMQ和Django-ztask + ZeroMQ一段时间(我确定还有其他好的),但我没有一个准确的佳能来获取最适合每种情况.
您是否可以为每个允许用户在它们之间选择的特性提供一些特性?它是否可能包含其他一些稳定的MQ方法?
我做在Python3的应用,这将在划分batch和gui零件.
Batch负责处理逻辑并gui负责显示它.
我应该使用哪个进程间通信(IPC)框架满足以下要求:
附加:如果GUI保证也用Python编写,那么选择是否是其他选择?
编辑: 我发现了很多IPC库,比如:高效Python到Python IPC或ActiveMQ或RabbitMQ或ZeroMQ或.
到目前为止,我发现的最佳选择是:
它们是否适合这个问题?如果不是为什么?如果事情好转,请告诉我为什么.
我正在Rails 3.1中编写一个简单的聊天室应用程序 - 用于学习目的.对于初学者我有所有需要的模型(消息,用户,房间等),事情很好.客户端每分钟轮询服务器(例如)并获得新消息(如果有).
我想将简单轮询更改为长轮询,并且无法确定是否可以在同一个应用程序中完成此操作,或者我是否必须为长轮询创建其他推送服务器.
我阅读了很多关于EventMachine的内容,并将我的rails应用程序更改为用户,因为我想将EventMachine用于事件驱动的机制.我认为EventMachine频道会派上用场.客户端将连接并等待聊天室中的消息,并且仅当一个人被发送到房间时它才会收到消息.
我无法弄清楚的是如何在所有客户端连接之间共享EventMachine :: Channel实例.这种方法是否可行,或者我是否采取了错误的方式?
如果可能的话,我想要一个可以作为Heroku上托管的单个rails应用程序运行的解决方案.