对于低端设置,RabbitMQ 有啥好的替代品吗?
Posted
技术标签:
【中文标题】对于低端设置,RabbitMQ 有啥好的替代品吗?【英文标题】:Are there any good alternatives to RabbitMQ for low-end setups?对于低端设置,RabbitMQ 有什么好的替代品吗? 【发布时间】:2011-10-16 21:14:19 【问题描述】:我现在已经在一些设置中使用了 RabbitMQ,我无法摆脱这样的感觉,即肯定有一些更容易设置的东西。尽管它很方便,但很难为每天只处理几千条消息的解决方案证明 MQ 的合理性,因为维护 RabbitMQ 的工作量很大。
有人知道安装和维护过程简单的 AMQP 实现吗?
对于不了解的人,RabbitMQ 是一个用 Erlang 编写的 AMQP 实现。它应该是非常稳定的,但只有当你对 Erlang 有足够的了解以避免它的问题时,情况才会如此。无论是内存限制还是主机名的更改,总是需要深入了解它。
【问题讨论】:
如果您达到了内存限制,那么您所做的很多比“每天几千条消息”还要多。如果您更改主机名,是的,这将有效地禁用 mnesia 数据库。另一方面,它通常使用 13 Mb 的 RAM,因此要求非常低,并且安装通常是 Deb、RPM 或 MSI。既然您似乎已经遇到了常见问题,那么 RabbitMQ 可能仍然是您最好的选择。 内存限制指的是 Erlang 中的默认内存限制设置。当消费者因默认进程限制很小而排队等待太多消息时,我遇到了问题,由于外部网络名称更改以及相当一部分我无法跟踪的崩溃倒是没有对Erlang有更深的了解。 Erlang 复杂的多处理环境需要太多的学习和维护才能随意使用。 @lyschoening 您好,我很想知道您是否决定使用 Qpid 或其他完全替换 RabbitMq?干杯 如果人们想知道,我最终决定我的应用程序不需要 AMQP,并且从那时起就使用 Redis 和 0MQ。 【参考方案1】:http://www.zeromq.org/ 可能是您正在寻找的。 如果你在 Windows 上,你可能会使用 MSMQ
编辑:我想我错过了问题的 AMQP 部分。
【讨论】:
0MQ AMQP 兼容吗?我认为 OP 想要一个 AMQP 代理。 0MQ 不是 AMQP。它使用自己的有线格式,没有队列、交换等高级概念。IIRC,它在大多数情况下也是对等的(即任何对等点都是服务器,不像 AMQP 中的客户端和代理完全是两个不同的东西)。还有一个 RabbitMQ 插件,允许它与 0MQ 客户端对话;因此,如果 OP 想要一个轻量级客户端并且可以使用 AMQP 代理,那么这是一个选择(尽管可能不是一个好选择)。 MSMQ 根本不支持通过互联网接收消息,所以我能看到的几乎唯一真正的用例是在同一台机器上运行的应用程序。有关详细信息,请参阅***.com/q/19156136/3136474。【参考方案2】:ActiveMQ 似乎是一个不错的选择,我使用 RabbitMQ 在 WAN 上设置“集群”,但 RabbitMQ 集群不支持,因为它需要同一位置的所有机器。
似乎ActiveMQ比RabbitMQ更好,因为它易于设置和维护,用于“集群”
【讨论】:
【参考方案3】:Apache Qpid 是另一个开源 AMQP 代理:http://qpid.apache.org/
免责声明:我自己没有使用过它,所以我无法告诉你它与 RabbitMQ 的比较。
【讨论】:
它比 RabbitMQ 更重。如果您有很多遗留的企业代码并且只想将其绑定到 AMQP,那么 QPid 通常是您的选择。 另一方面,与 Qpid 相比,RabbitMQ 的语言绑定很少。 所有使用 RabbitMQ 的 AMQP 客户端都应该使用 Qpid,所以语言绑定应该不是问题。以上是关于对于低端设置,RabbitMQ 有啥好的替代品吗?的主要内容,如果未能解决你的问题,请参考以下文章
有啥好的 C++ 项目构建工具可以替代 make 吗? [关闭]
指南针精灵生成器有啥好的替代品吗? (Rails 精灵生成器)