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

消息存活時間

更新時間:

本文介紹云消息隊列 RabbitMQ 版消息存活時間的核心概念、應用場景、注意事項和設置方式。

什么是消息存活時間

云消息隊列 RabbitMQ 版中,消息存活時間用于限制消息在Queue中可以存在的時間,如果消息在Queue中存在的時間超過了設置的消息存活時間,消息將會被進行如下處理:

  • 若您未給Queue設置死信Exchange,消息將被Queue直接丟棄。

  • 若您為Queue設置了死信Exchange,則消息被丟棄后會被轉發到死信Exchange,由死信Exchange將其路由到目標Queue。您可以在目標Queue獲取該消息。更多信息,請參見死信Exchange

應用場景

消息存活時間可用于保障消息流通性。例如,某應用的消息在某些特定時間會劇烈增加,如果您的業務可以接受消息丟失,您可以通過設置消息存活時間丟棄堆積的消息,從而保障消息流通性。

消息存活時間設置規則

  • 云消息隊列 RabbitMQ 版支持通過x-message-ttlexpiration設置消息存活時間,不支持通過rabbitmqctl工具的policy進行設置。

  • 云消息隊列 RabbitMQ 版支持在創建Queue時為Queue設置消息存活時間,同時支持在消息發送時為消息設置存活時間。

    如果兩個同時設置,則取最小的時間作為消息的存活時間。

  • 延時消息的實際存活時間=min{消息級存活時間, Queue級別存活時間}+延時時間。延時消息的具體信息,請參見延時消息

  • 消息存活時間的取值上限和實例的定時時長一致;且取值必須為非負整型數,單位為毫秒。

  • 如果消息存活時間被設置為0,則消息到達Queue時,除非立即被消費者消費,否則會被立即丟棄或轉發到死信Exchange。

設置方式

云消息隊列 RabbitMQ 版支持您通過以下方式設置消息存活時間:

  • 云消息隊列 RabbitMQ 版控制臺

    您可以通過云消息隊列 RabbitMQ 版控制臺為指定Queue設置消息存活時間。具體操作,請參見Queue管理

  • OpenAPI Explorer

    您可以通過OpenAPI Explorer調用CreateQueue接口,為指定Queue設置消息存活時間。更多信息,請參見CreateQueue

  • 開源RabbitMQ SDK

    您可以通過開源RabbitMQ SDK為指定Queue或某條消息設置消息存活時間。更多信息,請參見SDK列表。示例代碼如下:

    • 通過x-message-ttl設置隊列級別的消息存活時間

      Map<String, Object> props = new HashMap<String, Object>();
      props.put("x-message-ttl", 1000);
      channel.queueDeclare("myqueue", false, false, false, props);
    • 通過expiration設置消息級別的消息存活時間

      byte[] messageBodyBytes = "test".getBytes();
      AMQP.BasicProperties properties = new AMQP.BasicProperties.Builder()
              .expiration("1000")
              .build();
      channel.basicPublish("myqueue", peoperties, messageBodyBytes);