发布于 2015-09-25 07:31:48 | 76 次阅读 | 评论: 0 | 来源: 网友投递
这里有新鲜出炉的RabbitMQ 能为你做些什么?,程序狗速度看过来!
RabbitMQ 开源消息队列系统
RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。
RabbitMQ 3.5.5 正式发布,此版本除了常规的 bug 修复之外,提升了队列页面信息到磁盘的速度。
UPDATE 2:新 RPM 和 Debian 包已经附在发行说明里面,主要修复了两个回退问题:
#321; Thanks to Emilien Macchi (@EmilienM), Denis Egorenko (@degorenko) and Kostikas Tom for reporting the issue!
UPDATE 1:移除了 RPM 和 Debian 包,因为一个 shell 脚本包括一个 Bash 行。
功能增强
Improve performance when a queue's journal is written to disk (rabbitmq/rabbitmq-server#227, rabbitmq/rabbitmq-server#289).
Improve performance when a queue is purged (rabbitmq/rabbitmq-server#295).
Introduce new options to tune the queue paging performance (rabbitmq/rabbitmq-server#284). These are low-level settings and should be handled carefully. Here are the default values:
%% In /etc/rabbitmq/rabbitmq.config[
{rabbit, [
{msg_store_credit_disc_bound, {2000, 500}},
{msg_store_io_batch_size, 2048},
{credit_flow_default_credit, {200, 50}}
]}
].
Improve performance when expired messages need to be removed and no dead-letter exchange has been set up, by grouping handling of delivers and ack (rabbitmq/rabbitmq-server#308).
Add an option to disable file_handle_cache
's read cache (rabbitmq/rabbitmq-server#226). This read cache was reported to be a performance penalty, especially when a starting RabbitMQ slave needs to synchronize and fetch messages from a master node. We now offer an option to disable this cache and we plan to disable it by default in RabbitMQ 3.6.0. Here is how to use this new option:
%% In /etc/rabbitmq/rabbitmq.config[
{rabbit, [
{fhc_read_buffering, false}
]}
].
The queue_index_embed_msgs_below
parameter is now read once from the application environment when the queue is created, instead of every time it is needed (rabbitmq/rabbitmq-server#291). This removes a bottleneck by avoiding synchronous calls to the Erlang application server.
Reduce default heartbeat interval from 580 to 60 seconds (rabbitmq/rabbitmq-server#297). This is a more sensible default value, after considering what users usually do.
Force essential TCP options (rabbitmq/rabbitmq-server#282), especially {reuseaddr, true}
. User won't have to copy them when tuning TCP options anymore and this decreases the risk of errors.
Catch SIGTERM
and other signals in the rabbitmq-server
script to stop RabbitMQ gracefully (rabbitmq/rabbitmq-server#234). This mostly targets Docker users. Thanks to Duncan Gordon (@dunk) for reporting the issue!
Honor !RABBITMQ_BASE!
value for the default location of rabbitmq-env-conf.bat
(rabbitmq/rabbitmq-server#239). Thanks to Jared Kauppila (@Jakauppila) for the patch!
Warn user if a 32-bit Erlang runtime is used (rabbitmq/rabbitmq-server#251), due to the limited address space and the possible memory shortage.
Bug 修复
Fix a queue hang when a slave node is lost (rabbitmq/rabbitmq-server#224). Thanks to John Eckersberg (@jeckersb) for reporting the issue!
Fix a crash during startup when RabbitMQ tries to clean non-existing bindings (rabbitmq/rabbitmq-server#235). Thanks to Magnus Henoch (@legoscia) for the patch!
Support backticks in the password field when adding a user with rabbitmqctl
on Unix (rabbitmq/rabbitmq-server#313). Thanks to Ben Page (@ben-page) for the patch!
Fix how NODE_IP_ADDRESS
and NODE_PORT
are handled in rabbitmq-env.bat
on Windows (rabbitmq/rabbitmq-server#243, rabbitmq/rabbitmq-server#288). This bug made it impossible to override TCP listen port, for example. Since RabbitMQ 3.5.4. Thanks to @sukinsky for reporting the problem and Jared Kauppila (@Jakauppila) for the patch!
Fix a problem in gen_server2
causing calls to timeout under certain conditions (rabbitmq/rabbitmq-server#268). Thanks to Feng Lee (@erylee) for the patch!
Support old version of GNU sed (rabbitmq/rabbitmq-server#273). Since RabbitMQ 3.5.2. Thanks to Nishan Naseer (@nishan) for the patch!
Bug 修复
Fix a crash when certain headers are already present in the forwarded message (rabbitmq/rabbitmq-federation#12).
Increase reconnection delay from 1 to 5 seconds (rabbitmq/rabbitmq-federation#15). This reduces the noise in the SASL log file.
Ignore federation-specific headers added by clients (rabbitmq/rabbitmq-federation#16).
功能增强
Do not consider non-UTF-8 content as invalid (rabbitmq/rabbitmq-management#48). Now, the plugin just mentions why it cannot display it.
Split long Base64 content in multiple lines (rabbitmq/rabbitmq-management#49).
Bug 修复
Fix a bug with rounding moving averages (rabbitmq/rabbitmq-management#35).
功能增强
Coerce default_user
, default_pass
, exchange
and vhost
to Erlang binaries (rabbitmq/rabbitmq-mqtt#32).
增强
Set the redelivered
header to a boolean value (rabbitmq/rabbitmq-stomp#21).
Properly propagate extensions headers (x-headers
) in the SUBSCRIBE
and SEND
frames (rabbitmq/rabbitmq-stomp#16).
Bug 修复
Duplicate subscription IDs no longer result in unhandled exceptions.
功能增强
Use JUnit 4 in the testsuite (rabbitmq/rabbitmq-java-client#89).
Bug 修复
Stop recovery when a client is closed (rabbitmq/rabbitmq-java-client#77).
Make connection handshake timeout configurable (rabbitmq/rabbitmq-java-client#81, rabbitmq/rabbitmq-java-client#92).
Bug 修复
Handle ObjectDisposed
exceptions gracefully when re-scheduling timers (rabbitmq/rabbitmq-dotnet-client#118).
Do not throw exceptions from a Dispose
method (rabbitmq/rabbitmq-dotnet-client#119)
升级:http://www.rabbitmq.com/clustering.html#upgrading
下载:
RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。
AMQP 里主要要说两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),如下图所示,绿色的 X 就是 Exchange ,红色的是 Queue ,这两者都在 Server 端,又称作 Broker ,这部分是 RabbitMQ 实现的,而蓝色的则是客户端,通常有 Producer 和 Consumer 两种类型: