[rabbitmq-announce] RabbitMQ 2.5.0 release (incl release notes)
jerry
jerry at rabbitmq.com
Wed Jun 15 00:03:37 BST 2011
The RabbitMQ team is delighted to announce the release of RabbitMQ
2.5.0.
This release fixes a number of bugs. In particular:
- recovery has been simplified, improving startup times when
many exchanges or bindings exist
- bindings are recovered between durable queues and
non-durable exchanges on restart of individual cluster nodes
- better performance under high load and memory pressure
- source compatibility with the new Erlang R14B03 release
New features include:
- tracing facility for debugging incoming and outgoing messages,
(see http://www.rabbitmq.com/firehose.html)
- improved inbound network performance
- improved routing performance
- new rabbitmqctl commands ('report', 'environment', and
'cluster_status')
As always, we welcome any questions, bug reports, and other feedback on
this release, as well as general suggestions for features and
enhancements in future releases. Mail us via the RabbitMQ discussion
list, or directly at info at rabbitmq.com.
For details see the release notes below.
Release: RabbitMQ 2.5.0
Release Highlights
==================
server
------
bug fixes
- reduce complexity of recovery, significantly improving startup times
when there are large numbers of exchanges or bindings
- recover bindings between durable queues and non-durable exchanges
on restart of individual cluster nodes
- do not read messages off disk in the x-message-ttl logic. This could
severely impact performance when many queues expired messages
(near)simultaneously.
- resolve a timer issue that could impact performance when under high
load and memory pressure
- make source code compilable with latest Erlang release (R14B03)
- assert x-message-ttl equivalence on queue redeclaration
enhancements
- tracing facility for incoming and outgoing messages - see
http://www.rabbitmq.com/firehose.html
- optionally serialise events for exchange types
- detect available memory on OpenBSD
- add Windows service description
- improve inbound network performance
- improve routing performance
- new rabbitmqctl commands:
report - comprehensive report of server status for support purposes
environment - display application environment (such as config vars)
cluster_status - display cluster status (formerly part of 'status')
java client
-----------
bug fixes
- compile under Java 1.5 (again)
enhancements
- experimental API employing command objects and builders. See
http://hg.rabbitmq.com/rabbitmq-java-client/file/default/test/src/com/rabbitmq/client/test/AMQBuilderApiTest.java
for some examples. Feedback welcome!
.net client
-----------
bug fixes
- make method id of 'exchange.unbind-ok' match definition in the
broker, so the client lib can recognise that command.
- WCF bindings specified in configuration files are no longer ignored
enhancements
- allow larger than default message sizes in WCF
management plugin
-----------------
bug fixes
- handle race between queue creation/deletion and stats reporting that
could result in errors in the latter, particularly when there are
large numbers of queues and/or high churn
- handle race when starting the management plug-in on multiple cluster
nodes, which in some rare (but quite reproducible) circumstances
could cause some of the brokers to crash
- remove duplicate 'messages' entry from queue stats JSON
- make binding arguments optional in the HTTP API for binding creation
- correct error handling in the HTTP API for binding creation
- prevent spurious failures of aliveness test
enhancements
- performance improvements which significantly reduce the cost of
stats reporting, allowing the management plug-in to cope with much
higher numbers of queues, bindings, etc.
- issue an alert when a configured user cannot access any vhost or a
vhost has no users
- allow choice of which stats/info items to return in the HTTP API
- include protocol adapter and direct connections in API and UI
rabbitmq-mochiweb
-----------------
enhancements
- more flexible configuration permitting different services to run on
different ports, SSL support and interface-based restrictions. See
http://www.rabbitmq.com/mochiweb.html for more details. Note that by
default the JSON-RPC channel plugin will now listen on port 55670.
STOMP plugin
------------
enhancements
- support connections over SSL
bug fixes
- correct spelling of 'heart-beat' header
build and packaging
-------------------
bug fixes
- fix breakage in /etc/init.d/rabbitmq-server rotate-logs command
enhancements
- plug-in build system: support the declaration of inter-plugin
dependencies, making development of plugins much easier.
Inter-module dependencies are calculated automatically for all
plugins. Note that some plugins and applications have been
renamed for consistency, which may require changes to any existing
`rabbitmq.config` to match.
- do not require access to www.docbook.org when building the server
w/o docbook installed
- get rid of some warnings in the .net client build
Upgrading
=========
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
install the new version. All configuration and persistent message data
is retained.
To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
the new version on all the nodes and follow these instructions:
http://www.rabbitmq.com/clustering.html#upgrading
All configuration and persistent message data is retained.
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
to 2.1.1 (which retains all data), and then to the current version as
described above.
To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
from releases prior to 2.1.0, if the RabbitMQ installation does not
contain any important data then simply install the new
version. RabbitMQ will move the existing data to a backup location
before creating a fresh, empty database. A warning is recorded in the
logs. If your RabbitMQ installation contains important data then we
recommend you contact support at rabbitmq.com for assistance with the
upgrade.
More information about the rabbitmq-announce
mailing list