RabbitMQ 3.7.0 Milestone 7 发布了，RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现，由以高性能、健壮以及可伸缩性出名的 Erlang 写成，因此也是继承了这些优点。
这是一个预计将于 2017 年上半年发布的预览功能版本。部分更新内容如下：
GitHub issue: rabbitmq-server#546
3.7.0, Java client releases are decoupled from RabbitMQ server releases and exclusively distributed via Maven: RabbitMQ Milestones Maven repository, RabbitMQ Maven repository, as well as Maven Central.
New configuration file format
RabbitMQ now supports a new configuration file format.
The format is based on sysctl
and is similar to
.inifiles. Erlang term configuration files are still supported, it is also
possible to combine the two formats (use both
GitHub issue: rabbitmq-server#550
Pluggable cluster peer discovery
Automatic clustering for blank (without an existing database) nodes now can discover
peers using a pluggable backend. This is a feature borrowed from the rabbitmq-autocluster plugin
by Gavin Roy.
GitHub issue: rabbitmq-server#486
Nodes in a cluster now can be restared in arbitrary order. They will attempt to contact
one of the previously seen peers periodically (10 times with 30 second intervals by default).
GitHub issue: rabbitmq-server#1022
Support config file path values with and without file extensions
RabbitMQ no longer requires
RABBITMQ_CONFIG_FILEvalues to not have a
.confsuffix. It will try appending both suffixes as needed when searching for suitable config file(s) to load.
Github Issue: rabbitmq-server#691
Operators now can configure how many concurrent connections are allowed in a vhost.
GitHub issue: rabbitmq-server#500
Operators now can configure how many queues can exist in a vhost.
GitHub issue: rabbitmq-server#501
Operator policies: their definitions are merged with the standard (user) policies and allow operators put global
limits in place, e.g. max queue length or message TTL.
GitHub issue: rabbitmq-server#930
Plugin version constraints
RabbitMQ now has a mechanism for plugin authors to indicate what versions a plugin is compatible with. Incompatible plugins are logged and ignored.
Lager-based logging: pluggable backends, debug log level, more flexibility in
RabbitMQ now uses Lager for its logging subsystem.
This brings a group of benefits: (quite verbose) debug log level, pluggable logging
backends (e.g. logging to Syslog no longer requires external tools), and much
more flexibility in logging configuration.
for examples of logging configuration with Lager.
GitHub issue: rabbitmq-server#94
Deleting a vhost now will force close all connections in it.
GitHub issue: rabbitmq-server#627
LF and CR are now stripped off of names of queues and exchanges
Although line feeds in names are permitted under the AMQP 0-9-1 spec, in practice they can make it very difficult to work with queues and exchanges. Stripping them out makes life much easier for developers.
Github issue: rabbitmq-server#710
Deletion of auto-delete and exclusive queues now leaves (debug) log entries
GitHub issue: rabbitmq-server#590
Mirrored queue could terminate if a policy is re-applied concurrently after promotion
GitHub issue: rabbitmq-server#803
Old incarnations of queue mirrors are stopped before new ones start
GitHub issue: rabbitmq-server#863
Channel interceptors are enabled/disabled together with plugins
GitHub issue: rabbitmq-server#559