RabbitMQ 3.0 的新功能
我们已经讨论了 RabbitMQ 3.0 如何可能破坏现有功能,但这并不是一个积极的描述。让我们来看一些新功能!仅仅是其中一部分 - 3.0 中发生了很多改变,我们没有那么多时间...
基于策略的镜像
您现在可以 以更简单、更灵活的方式定义队列镜像。您的应用程序不再需要了解它,并且可以在开发和生产环境中以相同的方式工作。您可以将现有未镜像的队列镜像到集群中的任意数量节点上,并且没有停机时间(反之亦然)。
更快的镜像
镜像队列也变得快得多 - 虽然性能提升取决于多种因素,但镜像队列的速度提高一个数量级甚至更多的情况并不罕见。
动态联合
联合也变得 更加灵活、对应用程序透明以及动态化。您可以随时联合或取消联合交换机;并且可以添加、删除和重新配置上游,而无需更改任何内容。
新的集群命令
集群现在更容易 设置,并且在流程的每个步骤中都会执行更多对集群一致性的检查。现在还可以无需死节点的协作将其从集群中删除。
分区检测
集群中的网络分区是一件糟糕的事情 - 因此 RabbitMQ 现在会在管理插件中显示一个大型警告,以表明何时发生了分区(这也是在 rabbitmqctl cluster_status
中可用的)。
每消息 TTL
除了能够为每个队列的消息指定 TTL 之外,还可以 在发布消息时为单个消息设置 TTL。
默认启用心跳
由于很多用户遇到过长时间运行的空闲连接被网络基础设施中断的问题,服务器现在在连接协商期间默认每 10 分钟建议 AMQP 心跳。此值可以 在此配置。
内存使用统计信息
现在可以获得对 代理使用的内存去向 的简单概述。
后台 GC
某些长时间运行的进程在等待垃圾回收时最终会消耗大量内存。RabbitMQ 现在强制在后台对空闲进程进行 GC,从而减少了过量的内存使用。
反向 DNS 查找
只是一件小事 - 但您现在可以使 RabbitMQ 对连接的客户端执行反向 DNS 查找,以在管理和 rabbitmqctl 中提供更清晰的名称。只需在您的 rabbitmq.config 中设置 {reverse_dns_lookups, true}
。
Web-STOMP 和 MQTT
我们添加了插件来支持 STOMP-over-websockets(包括对非 websocket 浏览器的 SockJS 支持)和 MQTT 3.1。我们还添加了对 STOMP 1.2 的支持。