Teoretycznie wszystko można zapisać / wysłać jako wiadomość. Właściwie nie chcesz niczego przechowywać w kolejkach. System działa najskuteczniej, gdy kolejki są przez większość czasu puste. Możesz wysłać wszystko, co chcesz, do kolejki z dwoma warunkami wstępnymi:
Wysyłany przez Ciebie przedmiot może zostać przekonwertowany na iz bajtowania
Konsument dokładnie wie, co otrzymuje i jak przekształcić to w oryginalny przedmiot
Łańcuchy są dość łatwe, mają wbudowaną metodę konwersji do i z bajtów. Jeśli wiesz, że jest to ciąg, wiesz, jak go przekonwertować. Najlepszą opcją jest użycie łańcucha znaczników, takiego jak XML, JSON lub YML. W ten sposób możesz konwertować obiekty na Ciągi iz powrotem na oryginalne obiekty; działają w różnych językach programowania, więc Twój konsument może być napisany w innym języku niż Twój producent, o ile wie, jak zrozumieć obiekt. Pracuję w Javie. Chcę wysyłać złożone wiadomości z obiektami podrzędnymi w polach. Używam własnego obiektu wiadomości. Obiekt wiadomości ma dwie dodatkowe metody toBytesifromBytesktóre konwertują do i ze strumienia bajtowego. Używam kluczy routingu, które nie pozostawiają wątpliwości, jaki typ wiadomości otrzymuje konsument. Wiadomość jest serializowalna. Działa to dobrze, ale jest ograniczone, ponieważ mogę go używać tylko z innymi programami Java.
Rozmiar wiadomości jest ograniczony pamięcią na serwerze, a jeśli jest trwały, to również wolne miejsce na dysku twardym. Prawdopodobnie nie chcesz wysyłać zbyt dużych wiadomości; lepiej byłoby wysłać odniesienie do pliku lub bazy danych.
Rozmiar wiadomości maksymalna w RabbitMQ było 2 GiB przed wersją 3.8.0:
%% Trying to send a term across a cluster larger than 2^31 bytes will
%% cause the VM to exit with "Absurdly large distribution output data
%% buffer". So we limit the max message size to 2^31 - 10^6 bytes (1MB
%% to allow plenty of leeway for the #basic_message{} and #content{}
%% wrapping the message body).
-define(MAX_MSG_SIZE, 2147383648).
%% Max message size is hard limited to 512 MiB.
%% If user configures a greater rabbit.max_message_size,
%% this value is used instead.
-define(MAX_MSG_SIZE, 536870912).
Maksymalny rozmiar wiadomości to 2 GB, jednak dostrajanie wydajności wiadomości o tym rozmiarze nie jest skuteczne. Maksymalny rozmiar wiadomości
Nie ma sztywnego limitu narzuconego przez oprogramowanie RabbitMQ Server na liczbę kolejek, jednak sprzęt, na którym działa serwer, może mieć duży wpływ na ten limit.
3a. Domyślnie serwer nie narzuca ograniczenia długości kolejki. Można to jednak ograniczyć za pomocą zasad po stronie serwera (konfiguracji) lub zasad po stronie klienta. Maksymalna długość kolejki
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.