簡體   English   中英

在 RMQ 中關閉動態鏟是一個好習慣嗎?

[英]Is it a good practice to close dynamic shovel in RMQ?

我有一個用例,我必須將 msgs 從 dlq 移動到隊列。 我在 ECS 容器中使用 python 以編程方式創建了動態鏟子。

def shovel_messsages(self, source_queue, dest_queue, message_count):
    hostname = os.environ['HOSTNAME']
    vhost = os.environ['RABBIT_VHOST']
    headers = {'content-type':'application/json'}
    user_name = os.environ['RABBIT_USERNAME']
    milli_sec = int(round(time.time() * 1000))
    shovel_name = 'test_{0}'.format(milli_sec)
    request_data = {
                "value":{
                   "src-protocol": "amqp091",
                    "src-uri": "amqp://"+user_name+"@/"+ vhost,
                    "src-queue":  source_queue,
                    "dest-protocol": "amqp091", "dest-uri": "amqp://"+user_name+"@/"+vhost,
                    "dest-queue": dest_queue,
                    "src-delete-after" : "queue-length"}
      }
    url = "http://{0}/api/parameters/shovel/{1}/{2}".format(hostname, vhost, shovel_name)
    response = requests.put(url=url, auth=(os.environ['RABBIT_USERNAME'],os.environ['RABBIT_PASSWORD']), data = json.dumps(request_data))

所有這些都運行良好。 現在我的問題是,在生產中打開這么多動態鏟會導致某種限制或任何此類 RMQ 連接問題嗎? 一旦達到目的,發出 DELETE 鏟子是否是一種好習慣。 還有其他更好的方法嗎?

PS - 我正在監視隊列以檢查傳入 dlqs 的消息。 所以我可以選擇全天以設定的頻率運行上述功能。

事實證明,可以有兩種動力鏟。 一種不會自動刪除,另一種會自動刪除。

上面帖子中創建的 shovel 使用了一個名為src-delete-after的屬性src-delete-after這意味着在創建 shovel 之前,它會記錄源隊列中的 itmems 數量,然后在完成傳輸這么多項目后刪除自身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM