2016-08-03 64 views
0

在我們的一個應用程序中,背壓無法工作,RabbitMQ上的隊列中出現巨大的堆積。這導致RMQ節點窒息。RabbitMQ - 手動將生產者置於流量控制中

在這種情況下,是否有辦法在該隊列上應用流量控制(手動)?這會降低製作人的能力,並給我們提供空間。

回答

1

在你的情況下,消費者的速度不夠快,無法處理消息。 基本上你有一個負載峯值。

因此,這並不意味着您需要停止發佈商。

,你可以:

  1. 增加
  2. 使用Lazy queues

你沒看到flow control因爲RabbitMQ的可以處理消息的消費者的數量。

+0

您可能還想看看管理和監控附加組件,例如nagios等。https://www.rabbitmq.com/how.html#management您可能能夠自動增加或減少消費者等等,使用這些類型的工具。我沒有這方面的經驗,但它應該是可能的。 –

+0

@Gabriele我猜在這種情況下消費者是指我的應用程序,而不是RMQ內部的東西?雖然沒有應用流量控制,但RMQ顯然不好。 CPU使用率高達100%(在8核32 GB的機器上)。根據我的理解,RMQ在內存使用接近水印的情況下應用流量控制。我們離它很遠。添加更多應用程序使用者會增加RMQ上的負載,並更快地扼殺它。 – anindyaju99

相關問題