日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

排他隊列

更新時間:

如果您想創(chuàng)建一個只有自己可見的隊列,不允許其他用戶訪問,您可以使用云消息隊列 RabbitMQ 版的排他性隊列特性,將指定的隊列聲明為排他性。

什么是排他隊列

排他性隊列的特點如下:

  • 排他隊列只對首次聲明它的連接(Connection)可見,包括該連接下所有建立的Channel。

    其他連接無法聲明相同名稱的排他隊列,且其他連接以及連接下的Channel都無法訪問該排他隊列。

  • 連接斷開時排他性隊列會被自動刪除。

    即使客戶端已聲明該排他隊列為持久性的(durabletrue),只要該排他性隊列的連接斷開,隊列會被自動刪除,且隊列中的數(shù)據(jù)也會被刪除。

適用場景

排他隊列適用于生產(chǎn)者和消費者在同一進程中,且對數(shù)據(jù)丟失不敏感的場景。

使用風險

因為排他隊列連接斷開隊列自動刪除的特性,以下場景連接意外斷開時,會導致隊列被刪除且數(shù)據(jù)被清理。

  • 客戶端程序調(diào)用Close()方法被關(guān)閉。

  • 服務端升級或異常重啟。

  • 連接心跳超時導致連接空閑。

  • 其他錯誤導致連接被關(guān)閉,例如被限流等。

因此,您在使用排他隊列前請謹慎評估隊列可能被自動刪除的風險,并考慮隊列數(shù)據(jù)丟失的場景。

如何聲明排他隊列

排他隊列在客戶端程序中通過channel.queueDeclare方法聲明,將exclusive設(shè)置為true

以Java語言為例,聲明方式如下:

/**
* queue: 隊列名稱。
* durable: 是否持久化隊列。
* exclusive: 是否是排他隊列。
* autoDelete:是否自動刪除隊列。
* arguments: 其他參數(shù)。
*/
channel.queueDeclare("queueName", true, true, false, null);