1.2 相較 1.1 的變化

RabbitMQ 版本

Spring AMQP 現在預設使用 RabbitMQ 3.1.x(但保留與早期版本的相容性)。由於 RabbitMQ 3.1.x 不再支援某些功能,因此添加了相關的棄用,例如聯合交換機和 RabbitTemplate 上的 immediate 屬性。

Rabbit Admin

RabbitAdmin 現在提供了一個選項,允許在宣告失敗時繼續進行交換機、佇列和繫結宣告。以前,所有宣告都會在失敗時停止。透過設定 ignore-declaration-exceptions,此類異常將被記錄(在 WARN 級別),但後續宣告將繼續。一個有用的例子是,當佇列宣告因略有不同的 ttl 設定而失敗時,這通常會阻止其他宣告繼續進行。

RabbitAdmin 現在提供了一個名為 getQueueProperties() 的額外方法。您可以使用此方法確定佇列是否存在於代理上(對於不存在的佇列返回 null)。此外,它還返回佇列中當前的訊息數量以及當前的消費者數量。

Rabbit 模板

以前,當 …​sendAndReceive() 方法與固定回覆佇列一起使用時,會使用兩個自定義頭來儲存關聯資料以及保留和恢復回覆佇列資訊。在此版本中,預設使用標準訊息屬性 (correlationId),儘管您可以指定一個自定義屬性來代替。此外,巢狀的 replyTo 資訊現在在模板內部保留,而不是使用自定義頭。

immediate 屬性已棄用。當使用 RabbitMQ 3.0.x 或更高版本時,您不得設定此屬性。

JSON 訊息轉換器

現在提供了一個 Jackson 2.x MessageConverter,以及使用 Jackson 1.x 的現有轉換器。

佇列和其他專案的自動宣告

以前,在宣告佇列、交換機和繫結時,您無法定義用於宣告的連線工廠。每個 RabbitAdmin 都使用其連線宣告所有元件。

從這個版本開始,您現在可以將宣告限制到特定的 RabbitAdmin 例項。請參閱條件宣告

AMQP 遠端呼叫

現在提供了使用 Spring 遠端呼叫技術的功能,使用 AMQP 作為 RPC 呼叫的傳輸。有關更多資訊,請參閱使用 AMQP 的 Spring 遠端呼叫

請求的心跳

一些使用者要求在 Spring AMQP CachingConnectionFactory 上公開底層客戶端連線工廠的 requestedHeartBeats 屬性。現在這已經可用。以前,需要將 AMQP 客戶端工廠配置為單獨的 bean,並在 CachingConnectionFactory 中提供對其的引用。

© . This site is unofficial and not affiliated with VMware.