RabbitMQ 3.0 的新特性?
我们已经讨论过 RabbitMQ 3.0 可能会破坏某些东西,但这并不是很积极。 让我们来看看一些新功能! 只是一些 - 3.0 中变化很大,我们没有一整天的时间...
基于策略的镜像
现在,您可以使用更简单、更灵活的方式定义队列镜像。 您的应用程序不再需要了解它,并且可以在开发和生产环境中以相同的方式工作。 您可以采用现有的未镜像队列,并使其在不停机的情况下变为镜像队列(反之亦然)。 此外,您现在可以将队列镜像到集群中的一组节点上。
更快的镜像
镜像队列也变得更快 - 虽然性能的提高取决于多种因素,但镜像队列运行速度快一个数量级甚至更多的情况并不少见。
动态联邦
联邦也变得更加灵活、对应用程序透明且动态。 您可以随时联合或取消联合交换机; 并且添加、删除和重新配置上游,而无需更改任何内容。
新的集群命令
集群现在更容易设置,并且在过程的每个步骤中都会执行更多集群一致性检查。 现在还可以从集群中删除死节点,而无需其协作。
分区检测
集群中的网络分区是一件坏事 - 因此,当发生网络分区时,RabbitMQ 现在会在管理插件中显示一个大的警告(这在 rabbitmqctl cluster\_status
中也可用)。
单消息 TTL
除了能够为每个队列指定消息的 TTL 外,单个消息还可以在发布时设置 TTL。
默认启用心跳
由于许多人在长时间运行的空闲连接被网络基础设施中断时遇到了问题,因此服务器现在默认情况下在连接协商期间每 10 分钟建议一次 AMQP 心跳。 此值可以在此处配置。
内存使用统计
现在可以简单地概述您的 Broker 使用的内存去向。
后台 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 的支持。