开源消息队列系统,RabbitMQ 3.6.1 发布
RabbitMQ是流行的开源消息队列系统,本身已经具备了较强的并发处理速度及运行稳定性,然而在大规模的实际应用中,往往还需要使用集群配置来保证系统中消息通信部分的高可用性,并发处理性能及异常恢复能力。这里将介绍一种实用的消息集群架构,以及一种能够快速、高效、可靠地部署并配置消息集群的方式,通过这种方法,我们可以在系统部署时仅需短短几分钟就能完成规模化的消息集群架设,极大地提高了工作效率和部署成功率。
RabbitMQ 3.6.1 发布了,该版本引入了 rabbit.channel_operation_timeout 参数。
完整改进记录:
Server
Bug Fixes
-
Purging a lazy queue could result in an exception
GitHub issue: rabbitmq-server#514
-
Ensure
epmd
is running before starting RabbitMQ node on WindowsGitHub issue: rabbitmq-server#625
-
Channel error could make broker unreachable
Those errors were misleadingly logged as
channel_termination_timeout
, which
the issue really was with unhandled messages from concurrently closed TCP socket process.GitHub issue: rabbitmq-server#530
-
(Automatic) deletion of an auto-delete queue could lead
to blocked channelsGitHub issue: rabbitmq-server#581
-
During (from scratch) queue sync, queue master node didn't respect mirror alarm state.
With large data sets this could drive mirror node out of memory.GitHub issue: rabbitmq-server#616
-
Changing password for users with non-standard (think broker configuration) password
hashing function, for example, those migrated from3.5.x
releases, didn't update
effective hashing function.GitHub issue: rabbitmq-server#623
-
Heavy and/or prolonged
rabbitmqctl
use could exhaust Erlang VM atom tableGitHub issue: rabbitmq-server#549
-
"Min masters" queue master location strategy could result
in an error.GitHub issue: rabbitmq-server#521
-
Fixed a race condition in
pause_minority
handling mode.GitHub issue: rabbitmq-server#307
-
Significantly reduce possibility of a race condition when
an exchange is deleted and immediately re-declared, e.g. by a federation
link.This could result in a link operation being blocked, preventing
nodes from stopping.GitHub issue: rabbitmq-federation#7
-
amq.rabbitmq.log
messages now have information about originating
node in message headersGitHub issue: rabbitmq-server#595
-
scripts/rabbitmq-env
now works with GNU sed 4.2.2GitHub issue: rabbitmq-server#592
-
Exceptions in VM memory use calculator no longer affect broker startup
GitHub issue: rabbitmq-server#328
-
Direct Reply-to capability is now advertised to clients
GitHub issue: rabbitmq-server#520
Enhancements
-
Paths with non-ASCII characters on Windows are now handled
RabbitMQ now can be installed into a location with non-ASCII characters,
e.g. when username contains them.GitHub issues: rabbitmq-server#493
-
Configurable number of TCP connection acceptors
Plus a x10 increase of the default. This helps with workloads where connection
churn is very high (e.g. all clients are PHP Web apps that cannot maintain
long-lived connections).GitHub issues: rabbitmq-server#528
-
rabbitmqctl cluster_status
now includes cluster-wide resource alarm statusGitHub issue: rabbitmq-server#392
-
Windows installer no longer jumps over installation log
GitHub issue: rabbitmq-server#634
-
Improved
rabbitmqctl reset
error messagesGitHub issue: rabbitmq-server#167
-
More unsigned field data types are supported.
GitHub issue: rabbitmq-server#20
Java client
Enhancements
-
Endpoints (hostnames) are now also accepted as a
java.util.List
GitHub issue: rabbitmq-java-client#125
-
Autorecovering connections now shuffle hosts in a more
reliable wayGitHub issue: rabbitmq-java-client#124
Bug Fixes
-
Binding recovery could fail
GitHub issue: rabbitmq-java-client#129
-
Channel.queueDelete
could throw aNullPointerException
GitHub issue: rabbitmq-java-client#120
.NET client
Bug Fixes
-
Autorecovering connections now use full list of provided hostnames
during recoveryGitHub issues: rabbitmq-dotnet-client#153
Federation Plugin
Bug Fixes
-
Significantly reduce possibility of a race condition when
an exchange is deleted and immediately re-declared, e.g. by a federation
linkThis rendered federation links dysfunctional.
GitHub issue: rabbitmq-federation#7
Management plugin
Vulnerability Fixes
-
CVE-2015-8786: user-provided query parameters
lengths_age
andlengths_incr
had no validation
and could be used to exhaust server resources.The attacker needs to have access to HTTP API (authenticate successfully and have sufficient
tags to pass authorisation) in order to carry out the attack.There is no workaround for earlier releases.
Kudos to Vladimir Ivanov (Positive Technologies) for the responsible disclosure.
GitHub issue: rabbitmq-management#97
Enhancements
-
Password hashing function is now included in exported definitions
Those upgrading from versions earlier than
3.6.0
via definitions export
won't have to temporarily set hashing function to MD5 to ensure export succeeds.GitHub issue: rabbitmq-management#117
Bug Fixes
-
Internet Explorer (9+) compatibility restored
GitHub issue: rabbitmq-management#98
-
Internet Explorer 11 compatibility fixes
GitHub issues: rabbitmq-management#112,
rabbitmq-management#114 -
When policy fails to be created with invalid paramaters a sensible
error message will be displayed.GitHub issue: rabbitmq-management#110
Federation Management plugin
Enhancements
-
Federation link form now includes more settings (that are exchange- and queue-federation specific)
GitHub issue: rabbitmq-federation-management#5
Erlang client
Bug Fixes
-
password
anddepth
query parameters are now propagated to TLS optionsGitHub issue: rabbitmq-erlang-client#36
STOMP plugin
Bug Fixes
-
durable
andpersistent
headers weren't always used interchangeably,
leading to non-durable subscriptionsGitHub issue: rabbitmq-stomp#58
-
Client heartbeat timeouts resulted in confusing error messages
in broker log.GitHub issues: rabbitmq-stomp#63
Web STOMP plugin
Bug Fixes
-
Cowboy options are now supported for TLS listeners.
GitHub issue: rabbitmq-web-stomp#36
Web STOMP Examples plugin
Bug Fixes
-
Multi-byte UTF-8 characters are now handled
by the bundled version of stomp.js.GitHub issue: rabbitmq-web-stomp-examples#2
Event Exchange plugin
Bug Fixes
-
Event timestamps are now in seconds, not milliseconds
Per AMQP 0-9-1 spec. This is not a particularly great choice for events,
so we will add an optional header with millisecond precision in a future release.GitHub issue: rabbitmq-event-exchange#8
JSON RPC plugin
Note: this plugin is deprecated and its use is highly discouraged.
Enhancements
-
RabbitmQ
3.6.x
support.GitHub issue: rabbitmq-jsonrpc#3
下载地址:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_1