RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP 里主要要说两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),如下图所示,绿色的 X 就是 Exchange ,红色的是 Queue ,这两者都在 Server 端,又称作 Broker ,这部分是 RabbitMQ 实现的,而蓝色的则是客户端,通常有 Producer 和 Consumer 两种类型。
Bug修复
Nodes on Windows will successfully start if Erlang is installed in a directory with spaces
in the path.
GitHub issue: rabbitmq-server#859
Node health check is now node-local, is it was meant to be.
GitHub issue: rabbitmq-server#818
Queue deletion and termination will no longer leave "tomb stone" messages in message store
files. This eliminates the confusing behavior when a node or cluster having no messages
enqueued could have many thousands of such "marker" messages in the message store.
GitHub issue: rabbitmq-server#839
功能增强
Erlang VM scheduler binding type default has changed to db
. This means fewer
CPU context switches for some workloads.
GitHub issue: rabbitmq-server#612
Bug修复
HTTP API is now compatible with Erlang 19.0.
GitHub issue: rabbitmq-management#244
Temporary tables are no longer named using atoms, preventing a potential
exhaustion of the runtime atom table.
GitHub issue: rabbitmq-management#245
Runtime metric charts now have a description pop-up associated with them.
GitHub issue: rabbitmq-management#247
功能增强
The client will now try to use TLS v1.2 and v1.1 before falling back to v1.0 by default.
GitHub issue: rabbitmq-java-client#155