RabbitMQ v3_6_6_rc1 發布,AMQP消息服務器

jopen 8年前發布 | 10K 次閱讀 RabbitMQ AMQP 中間件

 

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

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

更新日志

Bug 修復

  • Changing queue mode to lazy could block queue process in certain circumstances.

    GitHub issue: rabbitmq-server#850

  • Mirroring implementation didn't handle certain internal protocol messages arriving
    out of order.

    GitHub issue: rabbitmq-server#922

  • Mirror set changes weren't handled gracefully in certain circumstances (e.g. in the middle of a mirror promotion).

    GitHub issue: rabbitmq-server#914

  • Mirrored queue could terminate after promotion if HA policy was reapplied during sync.

    GitHub issue: rabbitmq-server#803

  • Autoheal partition handling mode could run into a multi-node deadlock.

    GitHub issue: rabbitmq-server#928

  • Queue mirror group membership now correctly handles certain partial partition cases.

    GitHub issues: rabbitmq-server#950,
    rabbitmq-server#953

  • Eager queue sync will now stop as soon as a mirror shutdown/unavailability is detected.

    GitHub issue: rabbitmq-server#975

  • Lazy queues now trigger runtime GC significantly less frequently, making moving data
    to the message store more efficient.

    GitHub issue: rabbitmq-server#973

  • Mirroring policies now respect the nodes parameter when re-electing a master.

    GitHub issue:

  • After a partial network partitions, nodes with newly elected masters will now be more defensive
    about the (no longer relevant) policy change notifications.

    GitHub issue: rabbitmq-server#1007

  • Late responses from peers in certain partial network partition scenarios are now
    ignored by channels.

    GitHub issue: rabbitmq-server#1005

  • After a partial network partitions, nodes with newly elected masters will now be more defensive
    about the (no longer relevant) synchronization start requests.

    GitHub issue: rabbitmq-server#1006

  • Network partition triggered late and duplicate acknowledgements are now ignored/filterd out
    by queue master processes.

    GitHub issue: rabbitmq-server#960

  • rabbitmqctl and server startup could be affected by some DNS configurations.

    GitHub issue: rabbitmq-server#890

  • RPM package was split into two: for CentOS 6 and 7. The latter includes systemd support.

    GitHub issue: rabbitmq-server#932

  • Workaround for Erlang/OTP bug OTP-13425 where crash dump generation failed on UNIX
    platforms.

    GitHub issue: rabbitmq-server#956

Enhancements

  • Inter-node traffic buffer increased to 32 MB by default, configurable withRABBITMQ_DISTRIBUTION_BUFFER_SIZE (in kilobytes).

    This improves network bandwidth utilization for inter-node traffic and reduces the probability
    of spurious network partitions due to latency spikes caused by the buffer being full.

    GitHub issue: rabbitmq-server#908

  • Default flow control settings were increased to {200, 100}. This helps with consumer throughput
    in some cases. The value still can be configured using the rabbit.credit_flow_default_creditsetting.

    GitHub issue: rabbitmq-server#949

  • rabbitmqctl list_queues now has more filtering options.

    GitHub issue: rabbitmq-server#851

  • RABBITMQ_IGNORE_SIGINT is a new environment variable that lets the user disable the
    +B VM flag that is known to have issues in Erlang 18.x series (prevents crash dumps from being produced).

    GitHub issue: rabbitmq-server#956

  • The pg2_fixed module is now replaced by the standard pg2 from a newer Erlang/OTP release.

    GitHub issue: rabbitmq-server#980

MQTT插件

Bug 修復

  • Authentication with correct username but omitted password succeeded when TLS/x509
    certificate wasn't provided by the client.

    GitHub issue: rabbitmq-mqtt#96

JMS主題Exchange插件

Bug Fixes

  • The plugin no longer tries to check if JMS client's version is identical/compatible.
    This prevented certain legitimate use cases, such as exchange declaration over HTTP API, to fail.

    GitHub issue: rabbitmq-jms-topic-exchange#9

Java客戶端

Bug Fixes

  • Fixed a NPE that can occur when a thread attempts to create a new channel after a connection
    has been recovered but before channel recovery has completed.

    GitHub issue: rabbitmq-java-client#197

    Contributed by Michael Dent.

  • Binding cache entries of auto-delete queues should be cleaned up when the last consumer is cancelled.

    GitHub issue: rabbitmq-java-client#199

    Contributed by Michael Dent.

  • When a channel is closed, consumers will be correctly cleaned up from AutorecoveringConnection cache.

    GitHub issue: rabbitmq-java-client#208

Enhancements

  • com.rabbitmq.client.AddressResolver is a new interface that can be used to "expand"
    endpoints into groups of IP addresses, e.g. to a list of IP addresses resolved from a DNS
    record.

    GitHub issue: rabbitmq-java-client#153

  • Building on the new AddressResolver interface, the client now includes a resolver
    that uses DNS SVR records to discover endpoints.

    GitHub issue: rabbitmq-java-client#104

  • com.rabbitmq.client.BuiltinExchangeType is an enum that contains built-in exchange types.

    GitHub issue: rabbitmq-java-client#150

聯合插件

Enhancements

  • Federation links now specify a name which makes them easier to tell from other connections
    in the management UI (requires RabbitMQ 3.6.3+).

    GitHub issue: rabbitmq-federation#39

Shovel Plugin

Enhancements

  • Shovel connections now specify a name which makes them easier to tell from other connections
    in the management UI (requires RabbitMQ 3.6.3+).

    GitHub issue: rabbitmq-shovel#19

下載

本站原創,轉載時保留以下信息:
本文轉自:深度開源(open-open.com)
原文地址:http://www.baiduhome.net/news/view/5c954644

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