przedmowa
W niektórych miejscach stosuje się kolejki wiadomości, aby zapewnić dokładność przetwarzania informacji. Na przykład w sytuacjach o dużej równobieżności strony internetowe wykonują przetwarzanie danych. Dziś ten artykuł prezentuje proste demo RabbitMQ. Zanim zacznę czytać ten artykuł, środowisko RbMQ musi być zainstalowane wcześniej (ponieważ wcześniej zainstalowałem lokalne środowisko RbMQ i obawiam się, że odinstalowanie spowoduje problemy z nieprawidłowością w rejestrze rejestru, więc nie będę tu zapisywać instalacji środowiska).
Środowisko i narzędzia
>System Windows 10
>RabbitMQ Usługi Środowiskowe
>VS 2017
Tekst
1: Stworzyć dwie nowe aplikacje konsolowe, mianowicie "RabbitMQClient" i "RabbitMQServer".
2: Skontaktuj się z "RabbitMQ.Client" dll
3: W projekcie RabbitMQClient Program.cs wklej następujący kod
4: W projekcie RabbitMQServer Program.cs wklej następujący kod
5: F5, aby rozpocząć projekt RabbitMQServer, w konsoli wpisz informacje, naciśnij enter.
6: Nie zamykaj konsoli projektu RabbitMQServer, kliknij prawym przyciskiem myszy na projekt RabbitMQClient – > "Debug" > "Start a new instance"
Możesz wpisać informacje w konsoli RabbitMQServer po prawej stronie, aby wyświetlić je po lewej. Projekt RabbitMQServer generuje wiadomości. Projekt RabbitMQClient przetwarza (konsumuje) wiadomości. To jest producent i konsument w kolejce wiadomości. Kod obejmuje także routing i kanały.
Po stronie producenta wiadomości wrzuć informacje do kolejki wiadomości. Po otrzymaniu wiadomości konsument może odpowiednio przetworzyć te dane.
Jeśli środowisko jest zainstalowane, lokalny domyślny adres portu powinien być http://localhost:15672/#/queues. Możesz bezpośrednio uzyskać dostęp do konta gościa lub skonfigurować konto i odpowiednie uprawnienia, dotykając wiersza poleceń.
Informacje, które właśnie wprowadziłeś do konsoli RabbitMQServer, faktycznie najpierw istnieją w kolejce wiadomości, możesz najpierw zamknąć okno RabbitMQClient, a następnie wprowadzić kilka informacji w oknie, obserwować kolejkę wiadomości i zobaczyć, że w kolejce są trzy dane.
Gdy uruchamia się okno RabbitMQClient, wiadomość automatycznie znika z kolejki wiadomości po jej normalnym otrzymaniu. Jest to mechanizm potwierdzający kolejki wiadomości: gdy potrzebne informacje zostaną dokładnie odebrane, konsument przywróci stan do kolejki wiadomości, aby zniszczyć wiadomość. Jeśli konsument nie otrzyma wiadomości lub jeśli istnieje wyjątek i nie zwraca tej wartości statusu, wiadomość pozostanie w kolejce do momentu jej normalnego spożycia, co zapewnia dokładność wiadomości.
Epilog
Niestety, jest bardzo niewiele miejsc, gdzie używam kolejek wiadomości w moich projektach. Bez dogłębnej wiedzy będą używane jedynie podstawy.
W powyższym demie jest luka, a połączenie RbMQ w RabbitMQClient ma warstwę użycia. Ponieważ jest to wątek asynchroniczny, program uruchomi i powtórzy połączenie RbMQ zanim zakończy odbiór wiadomości, a błąd zostanie zgłoszony. Sposób na rozwiązanie tego to: usuń go i zwolnij ręcznie.
|