AMQP消息服务器 RabbitMQ v3.7.0 发布
jopen 8年前
<p style="text-align:center"><img alt="" src="https://simg.open-open.com/show/03379414b3572debc448e04f087c61aa.jpg" /></p> <h2>简介</h2> <p> RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。</p> <p> AMQP 里主要要说两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),如下图所示,绿色的 X 就是 Exchange ,红色的是 Queue ,这两者都在 Server 端,又称作 Broker ,这部分是 RabbitMQ 实现的,而蓝色的则是客户端,通常有 Producer 和 Consumer 两种类型。</p> <h2>更新日志</h2> <h3>重大更新</h3> <ul> <li> <p>Minimum required Erlang/OTP version is now 18.3</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990400290182280">rabbitmq-server#546</a></p> </li> </ul> <h3>Server</h3> <p>功能增强</p> <ul> <li> <p>New configuration file format<br /> I RabbitMQ now supports a <a href="/misc/goto?guid=4958990400387162593">new configuration file format</a>.<br /> The format is <a href="/misc/goto?guid=4958990400477047478">based on sysctl</a><br /> and is similar to <code>.ini</code> files. Erlang term configuration files are still supported, it is also<br /> possible to combine the two formats (use both <code>rabbitmq.conf</code> and <code>advanced.config</code>).</p> <p>Most documentation examples were updated to use both new and classic config formats. See the docs<br /> at <a href="/misc/goto?guid=4958990400575977693">next.rabbitmq.com</a>, in particular <a href="/misc/goto?guid=4958990400665093624">the configuration guide</a>,<br /> for more information.</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990400759061518">rabbitmq-server#550</a></p> </li> <li> <p>Support config file path values with and without file extensions</p> <p>RabbitMQ no longer <em>requires</em> <code>RABBITMQ_CONFIG_FILE</code> values that have a <code>.config</code> or <code>.conf</code> suffix--it can handle the string either way.</p> <p>Github Issue: <a href="/misc/goto?guid=4958990400850834315">rabbitmq-server#691</a></p> </li> <li> <p>Plugin version constraints</p> <p>RabbitMQ now has a mechanism for plugin authors to indicate what versions a plugin is compatible with. Incompatible plugins are logged and ignored.</p> <p>Github Issue: <a href="/misc/goto?guid=4958990400943894510">rabbitmq-server#591</a>,<br /> <a href="/misc/goto?guid=4958990401031292796">rabbitmq-server#735</a></p> </li> <li> <p>Lager-based logging: pluggable backends, debug log level, more flexibility in<br /> configuration.</p> <p>RabbitMQ now uses <a href="/misc/goto?guid=4958978082701142128">Lager</a> for its logging subsystem.<br /> This brings a group of benefits: (quite verbose) debug log level, pluggable logging<br /> backends (e.g. logging to Syslog no longer requires external tools), and much<br /> more flexibility in logging configuration.</p> <p>See <a href="/misc/goto?guid=4958978082789943941">rabbitmq.config.example</a><br /> for examples of logging configuration with Lager.</p> <p>GitHub issue: <a href="/misc/goto?guid=4958978082874259721">rabbitmq-server#94</a></p> </li> <li> <p>LF and CR are now stripped off of names of queues and exchanges</p> <p>Although line feeds in names are permitted under the AMQP 0-9-1 spec, in practice they can make it very difficult to work with queues and exchanges. Stripping them out makes life much easier for developers.</p> <p>Github issue: <a href="/misc/goto?guid=4958990401228287311">rabbitmq-server#710</a></p> </li> <li> <p>Deletion of auto-delete and exclusive queues now leaves (debug) log entries</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990401318821776">rabbitmq-server#590</a></p> </li> </ul> <p>Bug修复</p> <ul> <li> <p>Channel interceptors are enabled/disabled together with plugins</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990401409480071">rabbitmq-server#559</a></p> </li> </ul> <h3>Management plugin</h3> <p>功能增强</p> <ul> <li> <p>Report more TLS-related values via HTTP API</p> <p>The HTTP API now reports all SSL/TLS options available for the RabbitMQ server as well as for the management plugin.</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990401505068634">rabbitmq-management#163</a></p> </li> <li> <p>Migration to Cowboy REST</p> <p>RabbitMQ management plugin as well as its extensions (e.g. those of<br /> Federation and Shovel) now uses <a href="/misc/goto?guid=4958978082961327897">Cowboy REST</a><br /> instead of Webmachine. Cowboy is a state-of-the-art open source Erlang HTTP 1.1 server and REST microframework<br /> that is also used in the plugins that provide WebSocket support.</p> <p>The change is largely invisible to management UI and HTTP API<br /> clients. Biggest difference is that PUT responses now use <code>201 Created</code> instead of<br /> <code>204 No Content</code>.</p> <p>Plugins that extend management UI need to be ported to Cowboy REST.</p> <p>GitHub issue: <a href="/misc/goto?guid=4958978083055813006">rabbitmq-management#63</a></p> </li> <li> <p>Dual IP Stack Support</p> <p>Management plugin now can be configured to use IPv6 or both IPv6 and IPv4.</p> <p>GitHub issue: <a href="/misc/goto?guid=4958978083125940711">rabbitmq-management#64</a></p> </li> <li> <p>"Get messages" in the UI now offers more requeueing options</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990401690292395">rabbitmq-management#68</a></p> </li> </ul> <h3>Java client</h3> <p>功能增强</p> <ul> <li> <p>Bump default TLS version to v1.2 with a fallback for older JDKs</p> <p>The Java client now attempts to use TLS v1.2 by default (which many RabbitMQ servers prefer due to vulnerabilities in TLS v1), but falls back to TLS v1 for older JDKs such as JDK 6.</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990401787996662">rabbitmq-java-client#139</a></p> </li> <li> <p>Begin recovery after all shutdown listeners have been given a chance to run</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990401877513400">rabbitmq-java-client#135</a></p> </li> <li> <p><code>com.rabbitmq.client.Connection</code> and <code>com.rabbitmq.client.Channel</code> now implement<code>java.io.Closeable</code></p> <p>GitHub issue: <a href="/misc/goto?guid=4958990401969350582">rabbitmq-java-client#131</a></p> </li> </ul> <h3>MQTT plugin</h3> <p>功能增强</p> <ul> <li> <p>QoS 2 subscriptions are downgraded to QoS 1</p> <p>GitHub issue: <a href="/misc/goto?guid=4958990402061448319">rabbitmq-mqtt#21</a></p> </li> </ul> <h3>Shovel Plugin</h3> <p>功能增强</p> <ul> <li> <p>Message timestamping.</p> <p>Shovel now adds an extra header that contains the timestamp<br /> indicating when message was shovelled.</p> <p>GitHub issue: <a href="/misc/goto?guid=4958978083220022837">rabbitmq-shovel#2</a></p> </li> </ul> <h2>下载地址</h2> <ul> <li><a href="/misc/goto?guid=4958990402183242961" rel="nofollow">273 KB<strong>amqp_client-3.7.500.4.ez</strong></a></li> <li><a href="/misc/goto?guid=4958990402277107374" rel="nofollow">198 Bytes<strong>amqp_client-3.7.500.4.ez.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990402379050120" rel="nofollow">163 KB<strong>rabbitmq-dotnet-client-3.7.500.4-dotnet-4.5.zip</strong></a></li> <li><a href="/misc/goto?guid=4958990402458499174" rel="nofollow">198 Bytes<strong>rabbitmq-dotnet-client-3.7.500.4-dotnet-4.5.zip.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990402552821664" rel="nofollow">1.43 MB<strong>rabbitmq-java-client-bin-3.7.500.4.tar.gz</strong></a></li> <li><a href="/misc/goto?guid=4958990402639617828" rel="nofollow">198 Bytes<strong>rabbitmq-java-client-bin-3.7.500.4.tar.gz.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990402732484388" rel="nofollow">1.43 MB<strong>rabbitmq-java-client-bin-3.7.500.4.zip</strong></a></li> <li><a href="/misc/goto?guid=4958990402822832002" rel="nofollow">198 Bytes<strong>rabbitmq-java-client-bin-3.7.500.4.zip.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990402924146952" rel="nofollow">3.71 MB<strong>rabbitmq-server-3.7.500.4-1.noarch.rpm</strong></a></li> <li><a href="/misc/goto?guid=4958990403011964742" rel="nofollow">198 Bytes<strong>rabbitmq-server-3.7.500.4-1.noarch.rpm.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990403109983239" rel="nofollow">2.41 MB<strong>rabbitmq-server-3.7.500.4-1.src.rpm</strong></a></li> <li><a href="/misc/goto?guid=4958990403201838350" rel="nofollow">198 Bytes<strong>rabbitmq-server-3.7.500.4-1.src.rpm.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990403284721672" rel="nofollow">3.71 MB<strong>rabbitmq-server-3.7.500.4-1.suse.noarch.rpm</strong></a></li> <li><a href="/misc/goto?guid=4958990403377753007" rel="nofollow">198 Bytes<strong>rabbitmq-server-3.7.500.4-1.suse.noarch.rpm.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990403467330832" rel="nofollow">2.41 MB<strong>rabbitmq-server-3.7.500.4-1.suse.src.rpm</strong></a></li> <li><a href="/misc/goto?guid=4958990403563284950" rel="nofollow">198 Bytes<strong>rabbitmq-server-3.7.500.4-1.suse.src.rpm.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990403652468592" rel="nofollow">3.62 MB<strong>rabbitmq-server-3.7.500.4.exe</strong></a></li> <li><a href="/misc/goto?guid=4958990403738375278" rel="nofollow">198 Bytes<strong>rabbitmq-server-3.7.500.4.exe.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990403828181516" rel="nofollow">2.4 MB<strong>rabbitmq-server-3.7.500.4.tar.xz</strong></a></li> <li><a href="/misc/goto?guid=4958990403913215845" rel="nofollow">198 Bytes<strong>rabbitmq-server-3.7.500.4.tar.xz.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990404006926406" rel="nofollow">4.77 MB<strong>rabbitmq-server-3.7.500.4.zip</strong></a></li> <li><a href="/misc/goto?guid=4958990404097716361" rel="nofollow">198 Bytes<strong>rabbitmq-server-3.7.500.4.zip.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990404188350203" rel="nofollow">3.51 MB<strong>rabbitmq-server-generic-unix-3.7.500.4.tar.xz</strong></a></li> <li><a href="/misc/goto?guid=4958990404278699216" rel="nofollow">198 Bytes<strong>rabbitmq-server-generic-unix-3.7.500.4.tar.xz.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990404369076428" rel="nofollow">14.9 MB<strong>rabbitmq-server-mac-standalone-3.7.500.4.tar.xz</strong></a></li> <li><a href="/misc/goto?guid=4958990404454174314" rel="nofollow">198 Bytes<strong>rabbitmq-server-mac-standalone-3.7.500.4.tar.xz.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990404549671324" rel="nofollow">3.82 MB<strong>rabbitmq-server-windows-3.7.500.4.zip</strong></a></li> <li><a href="/misc/goto?guid=4958990404641718889" rel="nofollow">198 Bytes<strong>rabbitmq-server-windows-3.7.500.4.zip.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990404730685033" rel="nofollow">6.54 KB<strong>rabbitmq-server_3.7.500.4-1.debian.tar.gz</strong></a></li> <li><a href="/misc/goto?guid=4958990404827489837" rel="nofollow">198 Bytes<strong>rabbitmq-server_3.7.500.4-1.debian.tar.gz.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990404913922331" rel="nofollow">1.35 KB<strong>rabbitmq-server_3.7.500.4-1.dsc</strong></a></li> <li><a href="/misc/goto?guid=4958990405000446311" rel="nofollow">198 Bytes<strong>rabbitmq-server_3.7.500.4-1.dsc.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990405093412011" rel="nofollow">3.67 MB<strong>rabbitmq-server_3.7.500.4-1_all.deb</strong></a></li> <li><a href="/misc/goto?guid=4958990405186852708" rel="nofollow">198 Bytes<strong>rabbitmq-server_3.7.500.4-1_all.deb.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990405281563681" rel="nofollow">1.81 KB<strong>rabbitmq-server_3.7.500.4-1_i386.changes</strong></a></li> <li><a href="/misc/goto?guid=4958990405360555282" rel="nofollow">198 Bytes<strong>rabbitmq-server_3.7.500.4-1_i386.changes.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990405458859206" rel="nofollow">2.4 MB<strong>rabbitmq-server_3.7.500.4.orig.tar.xz</strong></a></li> <li><a href="/misc/goto?guid=4958990405548314318" rel="nofollow">198 Bytes<strong>rabbitmq-server_3.7.500.4.orig.tar.xz.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990405643262949" rel="nofollow">761 KB<strong>rabbit_common-3.7.500.4.ez</strong></a></li> <li><a href="/misc/goto?guid=4958990405725947075" rel="nofollow">198 Bytes<strong>rabbit_common-3.7.500.4.ez.asc</strong></a></li> <li><a href="/misc/goto?guid=4958990405820013176" rel="nofollow"><strong>Source code</strong> (zip)</a></li> <li><a href="/misc/goto?guid=4958990405904616091" rel="nofollow"><strong>Source code</strong> (tar.gz)</a></li> </ul>