RabbitMQ 3.4.0 发布,AMQP 消息服务器
时间:2014-10-22 09:44 来源:linux.it.net.cn 作者:it
基于Erlang的高级消息队列RabbitMQ 3.4.0发布.新产品系列。2014-10-21。之前版本2014-08-11的3.3.5.遗留产品3.2.4/3.1.5 在高级消息队列里,RabbitMQ应该最主流的。
此版本的新特性主要有:
1. RPC客户端快速应答机制。
2. 可监控和限制队列字节长度。
3. 无须重启即可激活或卸下插件。
4. 可从持久化数据中恢复崩溃队 列。
5. 允许.Net客户端网络中断后自动重连。
6. 缺省不再支持SSL V3防止POODLE攻击。
7. SSL握手超时可配置。
8. 新的rabbitmq-plugins set子命令。
完全改进:
Release: RabbitMQ 3.4.0
Security Fixes
==============
management plugin
-----------------
26414 do not trust X-Forwarded-For header when enforcing 'loopback_users'
various
-------
26419 disable SSLv3 by default to prevent the POODLE attack
Release Highlights
==================
server
------
bug fixes
26354 prevent force_event_refresh message from killing connections that have
not fully started (since 3.3.0)
26347 ensure bindings are deleted when deleting queue records as part
of rabbitmqctl forget_cluster_node (since 3.0.3)
26341 add assertions to prevent silent failure from DETS errors in
rabbit_recovery_terms (since 3.3.0)
26171 prevent crash in rare conditions in gm:find_member_or_blank/2 during
slave startup (since 2.6.0)
26368 prevent autoheal from hanging when loser shuts down before the winner
learns it is the winner (since 3.1.0)
25850 prevent excessive binary memory use when accepting or delivering
large messages at high speed (since 1.0.0)
26230 ensure exchanges and queues are federated appropriately when
created when policy exists to make them so but the plugin is
not enabled (since 3.0.0)
26389 prevent consumer utilisation getting stuck at 0% after busy queue
goes idle (since 3.3.0)
26370 prevent "rabbitmqctl cluster_status" from breaking the database
if invoked at the wrong point during first startup (since 3.0.0)
26295 ensure "rabbitmqctl wait" waits for plugins to start
26336 fix logging when cluster auto-config fails (since 3.0.0)
26338 log enotconn as 'connection_closed_abruptly', not an internal
error (since 1.0.0)
26343 fix warning about missing behaviour_info/1 in supervisor2 with
older Erlang (since 3.2.0)
26363 ensure cluster auto-config does not try to cluster with nodes
which have had "rabbitmqctl stop_app" invoked (since 3.0.0)
26378 fix compilation warnings about conflicting behaviours (since 2.6.0)
26386 ensure broker starts even if vhost pointed to by default_vhost
config item has been deleted (since 1.0.0)
26404 prevent queue synchronisation from hanging if there is a very
short partition just as it starts (since 3.1.0)
enhancements
21446 allow crashing queue processes to recover, using persistent data
if present
25813 provide fast direct route for RPC replies
(see http://www.rabbitmq.com/direct-reply-to.html)
24926 allow plugins to be enabled / disabled without restarting the server
25884 add argument and policy to limit queue length in bytes
26150 prevent clean master shutdown from promoting unsynchronised
slaves and thus losing messages; add ha-promote-on-shutdown
to configure
26151 make queues located on down cluster nodes visible in "rabbitmqctl
list_queues"
26213 prevent undefined behaviour during partial partitions by
promoting them to full ones
26254 allow "rabbitmqctl_forget_cluster_node" to promote mirror queue slaves
that are down and thus recover from loss of a node containing masters
after it was the last node to stop
26256 add "rabbitmqctl force_boot" command to allow administrator to
override RabbitMQ's idea of the last node to shut down
26307 add messages_{ready,unacknowledged}_ram / messages_ram /
messages_persistent queue info keys
25666 / 26339 add message_bytes / message_bytes_{ready,unacknowledged,
ram,persistent} queue info keys
25214 improve robustness in the face of stray messages from Mnesia after
partitions
25279 make SSL handshake timeout configurable
25678 make mnesia table loading timeout configurable
26148 add username and vhost to amqp_error log messages
26169 add username / connection information to firehose trace messages
26242 improve clarity of rabbitmqctl error messages when stop_app has been
invoked
26225 provide connection age in rabbitmqctl list_connections
25446 add "rabbitmq-plugins set" subcommand
25824 / 26398 provide a summary of binary memory use
26397 split out memory used by slaves vs masters / unmirrored in the
memory summary
26401 split out memory used by connection readers / writers / channels / other
in the memory summary
26192 improve usability of "rabbitmqctl remove_cluster_node --offline" by
not requiring the user to start a node with RABBITMQ_NODE_ONLY
18626 add RABBITMQ_USE_LONGNAME (with thanks to Marcos Diez)
26204 allow message TTL and queue expiry times above (2^32)-1 milliseconds
26211 fix use of type specifications deprecated in Erlang 17
26366 improve error messages when queue / exchange equivalence checks fail
26387 use new strange way to determine OTP minor version number
26394 add cluster heartbeat messages at a faster rate than net_ticktime
26406 add environment for plugins and non-RabbitMQ apps to "rabbitmqctl
environment"
25848 warn if RABBITMQ_SERVER_ERL_ARGS set in a way that will lead to
poor performance
25454 warn if rabbitmq-plugins and rabbitmq-server disagree on the
location of the enabled_plugins file
26221 improve performance of queue.declare{nowait=true}
building & packaging
--------------------
enhancements
26344 ensure missing config file is correctly logged in .deb / RPM
(since 3.3.0)
26154 switch standalone OS X build to use Erlang 17.1
26040 add missing BuildRequires to RPM spec (since 1.8.0)
26411 fix warning on Debian build clean due to deleted files
management plugin
-----------------
enhancements
26107 provide (and default to) mode where we maintain message rates
only per object (queue, exchange etc) not per object
pair (queue->channel etc) to save memory
26174 improve responsiveness of management API under load
25329 maintain history and draw charts for some per-node stats
(memory, disk space etc)
25470 provide UI to show / hide series in charts in the web UI
26382 provide UI to show / hide columns columns in the web UI
26225 provide connection age in connection list
25824 provide a summary of binary memory use
26151 make queues located on down cluster nodes visible in queue list
23724 provide API to list all consumers
26340 redesigned, more concise interface for queue / exchange /
policy arguments
26193 display locations of configuration, database and logs in management
26193 detect and warn on mismatched net_ticktime setting
26235 show enabled plugins in management
25984 switch to HTML5 local storage where available, ensure
multiple web UIs on same host do not share login
26358 support setting message properties with "rabbitmqadmin publish"
26390 ensure all charts have the same time range
26391 make "rabbitmqadmin list" restrict to a default set of columns
bug fixes
26399 ensure statistics do not depend on erlang:now/0 being in sync with
os:timestamp/0 (since 3.2.0)
shovel plugin
-------------
enhancements
26239 allow dynamic shovels to set message properties like static
ones do, and allow static shovels to use add_forward_headers like
dynamic ones do
LDAP plugin
-----------
enhancements
26275 support LDAP connections using StartTLS (requires Erlang R16B03 or later)
tracing plugin
--------------
enhancements
26357 add milliseconds to timestamps
STOMP plugin
------------
enhancements
26306 add flow control for message deliveries through STOMP; greatly reduces
memory use when slow consumers without prefetch-count connect to a
large / fast moving queue
26243 ensure all stomp-named queues are named "stomp-*"
26266 support "requeue" header on NACK frames
MQTT plugin
-----------
enhancements
26330 add flow control for message deliveries through MQTT; greatly reduces
memory use when slow consumers without prefetch-count connect to a
large / fast moving queue
bug fixes
26356 fix incorrect reporting of MQTT protocol version when using MQTT 3.1.1
Web-STOMP plugin
----------------
enhancements
26392 don't depend on the SockJS CDN
java client
-----------
enhancements
26402 provide a means to configure the time given to slow consumers
to continue consuming internally queued messages after the
connection closes
26359 add listeners for queue name changes during recovery
26207 add APIs to make methods easier to use in nowait mode
26121 add --randomRoutingKey flag to PerfTest
26091 add --consumerRate flag to PerfTest
26348 make ConnectionFactory's networkRecoveryInterval property into a long
bug fixes
26364 clean up client-side references to auto-deleted queues in the
common case (since 3.3.0)
26374 limit size of WorkPool queues, thus prevent slow consumer with no
prefetch limit from consuming unbounded memory (since 2.7.0)
26413 prevent duplicate connection recovery listeners from being
registered (since 3.3.0)
dependency change
26095 drop support for Java 1.5
licencing change
24543 make the Java client additionally avaliable under the ASL2
.net client
-----------
enhancements
26130 automatic connection recovery similar to that of the Java client
26208 add APIs to make methods easier to use in nowait mode
26324 introduce an interface for ConnectionFactory
26334 set up stream timeouts as early as possible (thanks to John Oliver)
26199 allow IO and heartbeat to be background threads
25525 allow Subscription class to set explicit consumer tag
26097 add support for nack / reject in Subscription
26122 remove unnecessary lock in Subscription
feature removal
26131 / 26132 remove support for versions of AMQP prior to 0-9-1
26133 remove redirect following
erlang client
-------------
enhancements
26166 allow default ssl options to be provided in the configuration file
bug fixes
26418 ensure writer death is detected in direct connections (since 3.2.0)
(with thanks to Christopher Faulet)
26346 ensure amqp_rpc_client uses exclusive, autodelete response
queues (since 1.3.0)
下载:http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.0/rabbitmq-server-3.4.0.tar.gz
(责任编辑:IT)
基于Erlang的高级消息队列RabbitMQ 3.4.0发布.新产品系列。2014-10-21。之前版本2014-08-11的3.3.5.遗留产品3.2.4/3.1.5 在高级消息队列里,RabbitMQ应该最主流的。 此版本的新特性主要有:
1. RPC客户端快速应答机制。 完全改进: Release: RabbitMQ 3.4.0 Security Fixes ============== management plugin ----------------- 26414 do not trust X-Forwarded-For header when enforcing 'loopback_users' various ------- 26419 disable SSLv3 by default to prevent the POODLE attack Release Highlights ================== server ------ bug fixes 26354 prevent force_event_refresh message from killing connections that have not fully started (since 3.3.0) 26347 ensure bindings are deleted when deleting queue records as part of rabbitmqctl forget_cluster_node (since 3.0.3) 26341 add assertions to prevent silent failure from DETS errors in rabbit_recovery_terms (since 3.3.0) 26171 prevent crash in rare conditions in gm:find_member_or_blank/2 during slave startup (since 2.6.0) 26368 prevent autoheal from hanging when loser shuts down before the winner learns it is the winner (since 3.1.0) 25850 prevent excessive binary memory use when accepting or delivering large messages at high speed (since 1.0.0) 26230 ensure exchanges and queues are federated appropriately when created when policy exists to make them so but the plugin is not enabled (since 3.0.0) 26389 prevent consumer utilisation getting stuck at 0% after busy queue goes idle (since 3.3.0) 26370 prevent "rabbitmqctl cluster_status" from breaking the database if invoked at the wrong point during first startup (since 3.0.0) 26295 ensure "rabbitmqctl wait" waits for plugins to start 26336 fix logging when cluster auto-config fails (since 3.0.0) 26338 log enotconn as 'connection_closed_abruptly', not an internal error (since 1.0.0) 26343 fix warning about missing behaviour_info/1 in supervisor2 with older Erlang (since 3.2.0) 26363 ensure cluster auto-config does not try to cluster with nodes which have had "rabbitmqctl stop_app" invoked (since 3.0.0) 26378 fix compilation warnings about conflicting behaviours (since 2.6.0) 26386 ensure broker starts even if vhost pointed to by default_vhost config item has been deleted (since 1.0.0) 26404 prevent queue synchronisation from hanging if there is a very short partition just as it starts (since 3.1.0) enhancements 21446 allow crashing queue processes to recover, using persistent data if present 25813 provide fast direct route for RPC replies (see http://www.rabbitmq.com/direct-reply-to.html) 24926 allow plugins to be enabled / disabled without restarting the server 25884 add argument and policy to limit queue length in bytes 26150 prevent clean master shutdown from promoting unsynchronised slaves and thus losing messages; add ha-promote-on-shutdown to configure 26151 make queues located on down cluster nodes visible in "rabbitmqctl list_queues" 26213 prevent undefined behaviour during partial partitions by promoting them to full ones 26254 allow "rabbitmqctl_forget_cluster_node" to promote mirror queue slaves that are down and thus recover from loss of a node containing masters after it was the last node to stop 26256 add "rabbitmqctl force_boot" command to allow administrator to override RabbitMQ's idea of the last node to shut down 26307 add messages_{ready,unacknowledged}_ram / messages_ram / messages_persistent queue info keys 25666 / 26339 add message_bytes / message_bytes_{ready,unacknowledged, ram,persistent} queue info keys 25214 improve robustness in the face of stray messages from Mnesia after partitions 25279 make SSL handshake timeout configurable 25678 make mnesia table loading timeout configurable 26148 add username and vhost to amqp_error log messages 26169 add username / connection information to firehose trace messages 26242 improve clarity of rabbitmqctl error messages when stop_app has been invoked 26225 provide connection age in rabbitmqctl list_connections 25446 add "rabbitmq-plugins set" subcommand 25824 / 26398 provide a summary of binary memory use 26397 split out memory used by slaves vs masters / unmirrored in the memory summary 26401 split out memory used by connection readers / writers / channels / other in the memory summary 26192 improve usability of "rabbitmqctl remove_cluster_node --offline" by not requiring the user to start a node with RABBITMQ_NODE_ONLY 18626 add RABBITMQ_USE_LONGNAME (with thanks to Marcos Diez) 26204 allow message TTL and queue expiry times above (2^32)-1 milliseconds 26211 fix use of type specifications deprecated in Erlang 17 26366 improve error messages when queue / exchange equivalence checks fail 26387 use new strange way to determine OTP minor version number 26394 add cluster heartbeat messages at a faster rate than net_ticktime 26406 add environment for plugins and non-RabbitMQ apps to "rabbitmqctl environment" 25848 warn if RABBITMQ_SERVER_ERL_ARGS set in a way that will lead to poor performance 25454 warn if rabbitmq-plugins and rabbitmq-server disagree on the location of the enabled_plugins file 26221 improve performance of queue.declare{nowait=true} building & packaging -------------------- enhancements 26344 ensure missing config file is correctly logged in .deb / RPM (since 3.3.0) 26154 switch standalone OS X build to use Erlang 17.1 26040 add missing BuildRequires to RPM spec (since 1.8.0) 26411 fix warning on Debian build clean due to deleted files management plugin ----------------- enhancements 26107 provide (and default to) mode where we maintain message rates only per object (queue, exchange etc) not per object pair (queue->channel etc) to save memory 26174 improve responsiveness of management API under load 25329 maintain history and draw charts for some per-node stats (memory, disk space etc) 25470 provide UI to show / hide series in charts in the web UI 26382 provide UI to show / hide columns columns in the web UI 26225 provide connection age in connection list 25824 provide a summary of binary memory use 26151 make queues located on down cluster nodes visible in queue list 23724 provide API to list all consumers 26340 redesigned, more concise interface for queue / exchange / policy arguments 26193 display locations of configuration, database and logs in management 26193 detect and warn on mismatched net_ticktime setting 26235 show enabled plugins in management 25984 switch to HTML5 local storage where available, ensure multiple web UIs on same host do not share login 26358 support setting message properties with "rabbitmqadmin publish" 26390 ensure all charts have the same time range 26391 make "rabbitmqadmin list" restrict to a default set of columns bug fixes 26399 ensure statistics do not depend on erlang:now/0 being in sync with os:timestamp/0 (since 3.2.0) shovel plugin ------------- enhancements 26239 allow dynamic shovels to set message properties like static ones do, and allow static shovels to use add_forward_headers like dynamic ones do LDAP plugin ----------- enhancements 26275 support LDAP connections using StartTLS (requires Erlang R16B03 or later) tracing plugin -------------- enhancements 26357 add milliseconds to timestamps STOMP plugin ------------ enhancements 26306 add flow control for message deliveries through STOMP; greatly reduces memory use when slow consumers without prefetch-count connect to a large / fast moving queue 26243 ensure all stomp-named queues are named "stomp-*" 26266 support "requeue" header on NACK frames MQTT plugin ----------- enhancements 26330 add flow control for message deliveries through MQTT; greatly reduces memory use when slow consumers without prefetch-count connect to a large / fast moving queue bug fixes 26356 fix incorrect reporting of MQTT protocol version when using MQTT 3.1.1 Web-STOMP plugin ---------------- enhancements 26392 don't depend on the SockJS CDN java client ----------- enhancements 26402 provide a means to configure the time given to slow consumers to continue consuming internally queued messages after the connection closes 26359 add listeners for queue name changes during recovery 26207 add APIs to make methods easier to use in nowait mode 26121 add --randomRoutingKey flag to PerfTest 26091 add --consumerRate flag to PerfTest 26348 make ConnectionFactory's networkRecoveryInterval property into a long bug fixes 26364 clean up client-side references to auto-deleted queues in the common case (since 3.3.0) 26374 limit size of WorkPool queues, thus prevent slow consumer with no prefetch limit from consuming unbounded memory (since 2.7.0) 26413 prevent duplicate connection recovery listeners from being registered (since 3.3.0) dependency change 26095 drop support for Java 1.5 licencing change 24543 make the Java client additionally avaliable under the ASL2 .net client ----------- enhancements 26130 automatic connection recovery similar to that of the Java client 26208 add APIs to make methods easier to use in nowait mode 26324 introduce an interface for ConnectionFactory 26334 set up stream timeouts as early as possible (thanks to John Oliver) 26199 allow IO and heartbeat to be background threads 25525 allow Subscription class to set explicit consumer tag 26097 add support for nack / reject in Subscription 26122 remove unnecessary lock in Subscription feature removal 26131 / 26132 remove support for versions of AMQP prior to 0-9-1 26133 remove redirect following erlang client ------------- enhancements 26166 allow default ssl options to be provided in the configuration file bug fixes 26418 ensure writer death is detected in direct connections (since 3.2.0) (with thanks to Christopher Faulet) 26346 ensure amqp_rpc_client uses exclusive, autodelete response queues (since 1.3.0) 下载:http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.0/rabbitmq-server-3.4.0.tar.gz (责任编辑:IT) |