ZeroMQ、node.js、beanstalkd、Twisted
我有以下要求:
- 可靠的消息传递:有保证 交货,按顺序, 基于无重复
- 消息过滤和路由 根据可定制的标准
- 消息多播
- 消息收件人列表、发送消息 仅发送给指定的收件人
- 消息优先级
- 内置安全性
我想知道标题中提到的每个解决方案都支持上述的哪些要求。
如果您只了解一种产品,请分享您的想法。
I have the following requirements:
- Reliable messaging: ensured
delivery, in-order,
no-duplication - Message filtering and routing based
on customizable criteria - Message multi-cast
- Message recipient list, send messages
to only specified recipients - Message priorities
- Built-in Security
I want to know for each of the solutions mentioned in the title what requirements from the above are supported.
If you know only about one product please share your thoughts on it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
0Mq 和 Twisted 是构建连接系统的工具,node.js 是一个网络服务器(具有各种插件可以通过 beanstalkd 或 0Mq 与其他系统通信)。
在列出的四种技术中,只有 Beanstalkd 实际上是队列。它可以使用命名的“管道”来区分潜在的目的地(根据需要让所有工作人员来自一个或多个管道)。如果每个工作人员从特定的管道中读取数据,您可以像多播一样使用它,让各个工作人员从他们自己定义的源中提取数据。
如果您确实需要多播和路由,您可能需要更复杂的东西。 Rabbit.mq 可能会完成大部分工作,但如果您想将标准放在队列/路由软件本身中,您可以需要完整的ESB。
0Mq and Twisted are tools to build connectivity systems, node.js is a webserver (that have various plugins to talk to other systems via beanstalkd or 0Mq).
Of the four technologies listed, only Beanstalkd is actually a queue. It could use named 'tubes' to differentiate potential destinations (have all the workers from from one or more tubes as required). If each worker read from specific tubes, you could use it somewhat like multi-cast, having the individual workers pull from their own defined source.
If you really need multi-casting and routing you might need something more complex. Rabbit.mq may do most of it, but if you want to put the criteria within the queue/routing software itself, you may need a full ESB.