RabbitMQ - ile kolejek może obsłużyć RabbitMQ na jednym serwerze?

Chcę wiedzieć ile maksymalnych kolejek może obsłużyć RabbitMQ na jednym serwerze?

Czy to zależy od PAMIĘCI RAM? Czy to zależy od procesów Erlanga?

Author: Codesleuth, 2014-04-10

2 answers

W brokerze RabbitMQ nie ma żadnych zakodowanych ograniczeń. Broker wykorzysta wszystkie dostępne zasoby (chyba że ustawisz limity na niektórych z nich, są one nazywane znakami wodnymi w terminologii RabbitMQ).

Istnieją pewne ograniczenia nakładane przez samego Erlanga, takie jak Maksymalna liczba jednoczesnych procesów, ale jeśli teoretycznie możesz do nich dotrzeć na jednym węźle, zawsze dobrze jest użyć rozproszonych funkcji .

Jest wiele dyskusji na temat RabbitMQ wykorzystanie zasobów i ograniczenia,

P. S. istnieją jednak limity protokołu AMQP. Są one opisane w sekcji 4.9 Ograniczenia

Specyfikacje AMQP nakładają te ograniczenia na przyszłe rozszerzenia AMQP lub protokoły z tego samego formatu przewodowego:

  • Liczba kanałów na połączenie: 16-bitowa liczba kanałów.
  • liczba klas protokołu: 16-bitowy identyfikator klasy.
  • liczba metod na klasę protokołu: 16-bitowy identyfikator metody.

Specyfikacje AMQP nakładają te ograniczenia na dane:

  • maksymalny rozmiar o krótkiej strunie: 255 oktetów.
  • maksymalny rozmiar długiego łańcucha lub tabeli pól: Rozmiar 32-bitowy.
  • maksymalny rozmiar ramki: Rozmiar 32-bitowy.
  • maksymalny rozmiar zawartości: 64-bitowy.

Serwer lub klient może również nakładać własne limity na zasoby takie jako liczba jednoczesnych połączeń, liczba konsumentów na kanał, ilość kolejek itp. Nie wpływają one na interoperacyjność i nie są określone.

 34
Author: pinepain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:32:33

Ten post może Ci pomóc:

Http://rabbitmq.1065348.n5.nabble.com/Max-messages-allowed-in-a-queue-in-RabbitMQ-td26063.html

EDIT

1) Max kolejki dozwolone w RabbitMQ?

Tysiące (a nawet dziesiątki tysięcy) kolejek nie powinno być problemem w ogóle, choć każdy obiekt (np. kolejki, wymiany, wiązania itp) zajmie trochę pamięci i / lub miejsca na dysku. Domyślnie Erlang będzie wymusić maksymalną liczbę jednoczesnych procesy (czyli lekkie wątków) w okolicach 32768 IIRC. Każda kolejka jest zarządzana przez własne proces i każde połączenie może skutkować kilkoma kolejnymi, więc jeśli jesteś planuje mieć bardzo dużą liczbę aktywnych kolejek w jednym węzeł (?) i używając ich wszystkich w tym samym czasie, wtedy może być konieczne tweak argumenty emulatora rabbit przekazuje maszynę wirtualną ustawiając +P na wyższy limit.

Możesz również wykorzystać wiele Gb tylko z kosztami dla każdego Kolejka / połączenie dość szybko, więc będziesz potrzebował dość mięsistego serwer do obsługi milionów obu. Dziesiątki tysięcy powinno być nie problem w ogóle, pod warunkiem, że pasują do pamięci RAM.

 19
Author: Gabriele,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-10 15:11:48