RabbitMQ 3.5.1 发布,AMQP 消息服务器

n6xb 10年前

RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。

AMQP 里主要要说两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),如下图所示,绿色的 X 就是 Exchange ,红色的是 Queue ,这两者都在 Server 端,又称作 Broker ,这部分是 RabbitMQ 实现的,而蓝色的则是客户端,通常有 Producer 和 Consumer 两种类型:

RabbitMQ 3.5.1 发布,AMQP 消息服务器

RabbitMQ 3.5.1 发布,此版本是个 bug 修复版本,主要改进如下:

服务器

功能增强

Bug 修复

  • Ensure consumer_closed events are emitted for the actually closed channels only, not all of them (since 3.3.0, rabbitmq/rabbitmq-server#86). The events were filtered later in the management plugin so  the behaviour was correct. However, the broker did way too much work.

  • Ensure the number of x-death message headers doesn't grow indefinitely (rabbitmq/rabbitmq-server#78). Now, there is a single entry for each {queue, reason} pair.

  • Adjust the file read buffer cache size to avoid useless reads (since 3.5.0, rabbitmq/rabbitmq-server#69). Before this fix, reading a file backward would cause the buffer to be filled and thrown away quickly, leading to a large I/O bandwidth consumption.

  • Ensure the priority queue plugin reports its memory consumption properly (since 3.5.0, rabbitmq/rabbitmq-server#67). Before this fix, the queue might not be paged out under memory pressure.

  • Prevent a crash while synchronising paged out priority queues (since 3.5.0, rabbitmq/rabbitmq-server#65). This was caused by priority queues accessing message properties without checking their existence.

  • Pass the PID file to rabbitmqctl stop in rabbitmq-server.ocf, exactly like Debian- and Red Hat-flavour init scripts (since 2.6.0, rabbitmq/rabbitmq-server#72).

更多改进请看这里:https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_5_1

此版本现已提供下载: