AMQP消息服務器 RabbitMQ v3.7.0 發布

jopen 8年前發布 | 13K 次閱讀 AMQP RabbitMQ

簡介

   RabbitMQ是實現AMQP(高級消息隊列協議)的消息中間件的一種,最初起源于金融系統,用于在分布式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。消息中間件主要用于組件之間的解耦,消息的發送者無需知道消息使用者的存在,反之亦然。

   AMQP 里主要要說兩個組件:Exchange 和 Queue (在 AMQP 1.0 里還會有變動),如下圖所示,綠色的 X 就是 Exchange ,紅色的是 Queue ,這兩者都在 Server 端,又稱作 Broker ,這部分是 RabbitMQ 實現的,而藍色的則是客戶端,通常有 Producer 和 Consumer 兩種類型。

更新日志

重大更新

Server

功能增強

  • New configuration file format
    I RabbitMQ now supports a new configuration file format.
    The format is based on sysctl
    and is similar to .ini files. Erlang term configuration files are still supported, it is also
    possible to combine the two formats (use both rabbitmq.conf and advanced.config).

    Most documentation examples were updated to use both new and classic config formats. See the docs
    at next.rabbitmq.com, in particular the configuration guide,
    for more information.

    GitHub issue: rabbitmq-server#550

  • Support config file path values with and without file extensions

    RabbitMQ no longer requires RABBITMQ_CONFIG_FILE values that have a .config or .conf suffix--it can handle the string either way.

    Github Issue: rabbitmq-server#691

  • Plugin version constraints

    RabbitMQ now has a mechanism for plugin authors to indicate what versions a plugin is compatible with. Incompatible plugins are logged and ignored.

    Github Issue: rabbitmq-server#591,
    rabbitmq-server#735

  • Lager-based logging: pluggable backends, debug log level, more flexibility in
    configuration.

    RabbitMQ now uses Lager for its logging subsystem.
    This brings a group of benefits: (quite verbose) debug log level, pluggable logging
    backends (e.g. logging to Syslog no longer requires external tools), and much
    more flexibility in logging configuration.

    See rabbitmq.config.example
    for examples of logging configuration with Lager.

    GitHub issue: rabbitmq-server#94

  • LF and CR are now stripped off of names of queues and exchanges

    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.

    Github issue: rabbitmq-server#710

  • Deletion of auto-delete and exclusive queues now leaves (debug) log entries

    GitHub issue: rabbitmq-server#590

Bug修復

  • Channel interceptors are enabled/disabled together with plugins

    GitHub issue: rabbitmq-server#559

Management plugin

功能增強

  • Report more TLS-related values via HTTP API

    The HTTP API now reports all SSL/TLS options available for the RabbitMQ server as well as for the management plugin.

    GitHub issue: rabbitmq-management#163

  • Migration to Cowboy REST

    RabbitMQ management plugin as well as its extensions (e.g. those of
    Federation and Shovel) now uses Cowboy REST
    instead of Webmachine. Cowboy is a state-of-the-art open source Erlang HTTP 1.1 server and REST microframework
    that is also used in the plugins that provide WebSocket support.

    The change is largely invisible to management UI and HTTP API
    clients. Biggest difference is that PUT responses now use 201 Created instead of
    204 No Content.

    Plugins that extend management UI need to be ported to Cowboy REST.

    GitHub issue: rabbitmq-management#63

  • Dual IP Stack Support

    Management plugin now can be configured to use IPv6 or both IPv6 and IPv4.

    GitHub issue: rabbitmq-management#64

  • "Get messages" in the UI now offers more requeueing options

    GitHub issue: rabbitmq-management#68

Java client

功能增強

  • Bump default TLS version to v1.2 with a fallback for older JDKs

    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.

    GitHub issue: rabbitmq-java-client#139

  • Begin recovery after all shutdown listeners have been given a chance to run

    GitHub issue: rabbitmq-java-client#135

  • com.rabbitmq.client.Connection and com.rabbitmq.client.Channel now implementjava.io.Closeable

    GitHub issue: rabbitmq-java-client#131

MQTT plugin

功能增強

Shovel Plugin

功能增強

  • Message timestamping.

    Shovel now adds an extra header that contains the timestamp
    indicating when message was shovelled.

    GitHub issue: rabbitmq-shovel#2

下載地址

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!