相关疑难解决方法(0)

真实世界使用JMS /消息队列?

我只是在阅读关于JMS和Apache ActiveMQ的abit.并且想知道现实世界中有人使用JMS或类似的消息队列技术吗?

java jms message-queue

174
推荐指数
10
解决办法
11万
查看次数

ZeroMQ,RabbitMQ和Apache Qpid之间的性能比较

我需要一个高性能的消息总线为我的应用程序,所以我正在评估ZeroMQ,RabbitMQApache Qpid.为了衡量性能,我正在运行一个测试程序,该程序使用其中一个消息队列实现发布说10,000条消息,并在同一台机器上运行另一个进程来使用这10,000条消息.然后我记录发布的第一条消息和收到的最后一条消息之间的时差.

以下是我用于比较的设置.

  1. RabbitMQ:我使用了"扇出"类型交换和具有默认配置的队列.我使用了RabbitMQ C客户端库.
  2. ZeroMQ:我的发布者tcp://localhost:port1使用ZMQ_PUSH套接字发布,My broker侦听tcp://localhost:port1并将消息重新发送到tcp:// localhost:port2,我的消费者tcp://localhost:port2使用ZMQ_PULL套接字侦听.我正在使用代理而不是对等通信ZeroMQ来使性能比较公平到使用代理的其他消息队列实现.
  3. QpidC++消息代理:我使用了"扇出"类型交换和具有默认配置的队列.我使用了Qpid C++客户端库.

以下是效果结果:

  1. RabbitMQ:接收10,000条消息大约需要1秒钟.
  2. ZeroMQ:接收10,000条消息大约需要15毫秒.
  3. Qpid:接收10,000条消息大约需要4秒钟.

问题:

  1. 有人在消息队列之间运行类似的性能比较吗?然后我想将你的结果与你的结果进行比较.
  2. 有什么方法可以调整RabbitMQQpid使其性能更好?

注意:

测试是在具有两个分配处理器的虚拟机上完成的.结果可能因硬件而异,但我主要对MQ产品的相对性能感兴趣.

message-queue rabbitmq zeromq qpid

76
推荐指数
4
解决办法
8万
查看次数

MongoDB作为队列服务?

我很想听到有关MongoDB作为队列服务的真实应用程序体验的更多信息,如果您为此目的使用MongoDB,您可以分享您的想法,以及它的使用环境吗?

social queue mongodb web

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

Apache kafka与ActiveMQ有什么区别?

我正在研究Apache Kafka.我想知道哪一个更好:KafkaActiveMQ.这两种技术的主要区别是什么?我想在Spring MVC中实现Kafka.

activemq-classic apache-kafka

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

C++和Python之间的简单IPC(跨平台)

我有一个在后台运行的C++进程,它将不经常生成'事件',以便在同一个盒子上运行的Python进程需要获取.

  • C端的代码需要尽可能轻量级.
  • Python端是只读的.
  • 实施必须是跨平台的.
  • 发送的数据非常简单.

我有什么选择?

谢谢

c++ python cross-platform ipc

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

适用于Linux的灵活IPC解决方案?

我正在用Python编写一个程序,我正在考虑使用本地客户端 - 服务器模型,但我正在努力找出服务器与客户端通信的最佳方式.一个简单的罐装解决方案是最好的 - 我不打算重新发明轮子.以下是我对此计划的需求:

  • 在Linux上运行
  • 服务器和客户端在同一系统上,因此我不需要通过网络.
  • 延迟不太可能让交互式用户烦恼.
  • 多个客户端可以连接到同一服务器.
  • 客户端独立于服务器启动,可以随时连接/断开连接.
  • 客户数量可以测量数十个; 我不需要非常高.
  • 客户可以有几种不同的风格:
    1. 流阅读器 - 读取连续的数据流(实际上,这是所有文本).
    2. 状态读者 - 读取一些状态信息,每隔一段时间更新一次.
    3. 写入者 - 将一些数据发送到服务器,每次都会收到一些响应.

客户类型1似乎很简单; 这是一个单向的哑管.客户端类型2更有趣.我想避免简单地轮询服务器以定期检查新数据,因为这会为用户增加明显的延迟.当状态信息被更新时,服务器需要某种方式向所有且仅向相关客户端发信号,以便客户端可以从服务器接收更新的状态.客户端类型3必须是双向的; 它会将用户提供的数据发送到服务器,并在每次发送后收到某种响应.

我查看了Python的IPC页面(http://docs.python.org/2/library/ipc.html),但我认为这些解决方案中的任何一个都不适合我的需求.子进程模块是完全不合适的,其他一切都比我想要的低一些.

类似的问题Efficient Python to Python IPC并不完全相同; 我不需要传输Python对象,我并不特别担心我拥有的客户端数量的CPU效率,我只关心Linux,而且无论如何这个问题的答案对我都没有帮助.

更新:

我不能接受只是指向框架/库/模块/工具的答案,而不实际解释它如何用于我的三种不同的服务器 - 客户端关系.如果你说,"所有这一切都可以通过命名管道完成!" 我不得不问"怎么样?" 代码片段是理想的,但对解决方案的高级描述也可以起作用.

python linux client-server ipc

7
推荐指数
1
解决办法
1090
查看次数

适用于Django中的Message Queue/Scheduled任务的方法

我想知道当我们需要在django项目中使用某种任务队列时需要考虑什么标准,我正在考虑性能,开发速度,灵活性等.

我一直在使用Celery + RabbitMQDjango-ztask + ZeroMQ一段时间(我确定还有其他好的),但我没有一个准确的佳能来获取最适合每种情况.

您是否可以为每个允许用户在它们之间选择的特性提供一些特性?它是否可能包含其他一些稳定的MQ方法?

python django mq celery

7
推荐指数
1
解决办法
436
查看次数

高效的Python IPC

我做在Python3的应用,这将在划分batchgui零件. Batch负责处理逻辑并gui负责显示它.

我应该使用哪个进程间通信(IPC)框架满足以下要求:

  1. GUI可以在除批处理之外的其他设备上运行(GUI可以在同一设备上运行,在智能手机,平板电脑等上,本地或通过网络运行).
  2. 批处理(Python3 IPc库)应该在Linux,Mac,Windows上没有问题......
  3. IPC应该支持用不同语言编写的GUI(Python,Javascript,...)
  4. IPC的性能很重要 - 它应该尽可能"互动",但不要丢失信息.
  5. 几个GUI可以连接到同一批次.

附加:如果GUI保证也用Python编写,那么选择是否是其他选择?

编辑: 我发现了很多IPC库,比如:高效Python到Python IPCActiveMQ或RabbitMQ或ZeroMQ或.

到目前为止,我发现的最佳选择是:

  • 的RabbitMQ
  • zeromq

它们是否适合这个问题?如果不是为什么?如果事情好转,请告诉我为什么.

python rpc ipc communication

6
推荐指数
2
解决办法
6802
查看次数

使用EventMachine的Rails应用程序可以进行长轮询吗?

我正在Rails 3.1中编写一个简单的聊天室应用程序 - 用于学习目的.对于初学者我有所有需要的模型(消息,用户,房间等),事情很好.客户端每分钟轮询服务器(例如)并获得新消息(如果有).

我想将简单轮询更改为长轮询,并且无法确定是否可以在同一个应用程序中完成此操作,或者我是否必须为长轮询创建其他推送服务器.

我阅读了很多关于EventMachine的内容,并将我的rails应用程序更改为用户,因为我想将EventMachine用于事件驱动的机制.我认为EventMachine频道会派上用场.客户端将连接并等待聊天室中的消息,并且仅当一个人被发送到房间时它才会收到消息.

我无法弄清楚的是如何在所有客户端连接之间共享EventMachine :: Channel实例.这种方法是否可行,或者我是否采取了错误的方式?

如果可能的话,我想要一个可以作为Heroku上托管的单个rails应用程序运行的解决方案.

ruby ruby-on-rails long-polling eventmachine

5
推荐指数
1
解决办法
2572
查看次数