Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 216172|Odpowiedź: 69

[Program konsolowy] .NET/C# Przykład operacji ActiveMQ [Kod źródłowy]

  [Skopiuj link]
Opublikowano 27.07.2017 13:19:10 | | | |

Podsumowanie informacji o ActiveMQ i RabbitMQ
http://www.itsvse.com/thread-4659-1-1.html
(Źródło: Architect_Programmer)

Ponieważ projekt potrzebuje przesyłania i odbioru pewnych danych, a ilość danych jest stosunkowo duża – około 3 milionów danych dziennie

Na początku używałem HTTP Post do przesyłania danych, ale okazało się, że jest to zbyt wolne, a prędkość wysyłania znacznie mniejsza niż prędkość odbioru.

Dlatego jeśli chcesz użyć długiego połączenia socket do wysyłania i odbierania danych, napisz serwer socket i klienta samodzielnie, to strata czasu, ale może nie być dobrze wykonana

Na koniec, activemq służy do wysyłania i odbierania danych

Po pierwsze, kod producenta jest następujący:



Konsumenci, są dwa modele:

1: Zwykła subskrypcja, nie potrzeba trwałej "subskrypcji", czyli podczas łączenia możesz otrzymywać wiadomości, a nie możesz ich odbierać przed połączeniem, używając "CreateConsumer"
2: Subskrypcja trwała, po połączeniu możesz otrzymywać dane, które wcześniej nie były wysyłane, korzystając z "CreateDurableConsumer"


Linki do wprowadzenia CreateDurableConsumer:Logowanie do linku jest widoczne.

Utwórz niewspółdzieloną trwałą subskrypcję na określony temat, jeśli jeszcze nie istnieje, i stwórz konsumenta na tej trwałej subskrypcji. Ta metoda tworzy trwałą subskrypcję bez użycia selektora wiadomości, a wartość noLocal jest fałszywa.
Aplikacja korzysta z trwałej subskrypcji i musi otrzymywać wszystkie komunikaty opublikowane na ten temat, w tym komunikaty publikowane, gdy nie ma aktywnych konsumentów powiązanych z nią. Dostawca JMS prowadzi rejestr tej trwałej subskrypcji i zapewnia, że wszystkie wiadomości od danego wydawcy będą przechowywane do momentu ich dostarczenia konsumentowi i potwierdzenia przez tę trwałą subskrypcję aż do ich wygaśnięcia.

Trwałe subskrypcje nadal gromadzą wiadomości, aż zostaną usunięte metodą wypisania.

Metoda ta może być stosowana tylko z niewspółdzielonymi, trwałymi subskrypcjami. Wszelkie trwałe subskrypcje utworzone tą metodą zostaną nieudostępnione. Oznacza to, że na subskrypcji może istnieć tylko jeden aktywny (czyli nie zamknięty) konsument. Termin "konsument" oznacza tutaj obiekt TopicSubscriber, MessageConsumer lub JMSConsumer w dowolnym kliencie.

Niewspółdzielona, trwała subskrypcja jest identyfikowana przez nazwę określoną przez klienta oraz identyfikatorem klienta, który należy ustawić. Aplikacje, które chcą tworzyć konsumentów na niewspółdzielonej subskrypcji trwałej, muszą używać tego samego identyfikatora klienta.

Jeśli istnieje już nieudostępniona trwała subskrypcja o tej samej nazwie i identyfikatorze klienta, a ten sam temat, selektor wiadomości i wartość bez lokalnej są już określone, a żaden konsument nie jest już aktywny (czyli nie zamknięty) na trwałej subskrypcji, ta metoda tworzy istniejącą trwałą subskrypcję na MessageConsumer.

Jeśli istnieje już niewspółdzielona trwała subskrypcja o tej samej nazwie i identyfikatorze klienta, a na trwałej subskrypcji jest konsument, który jest już aktywny (czyli nie zamknięty), zostanie wygenerowana JMSException.

Jeśli istnieje już niewspółdzielona trwała subskrypcja o tej samej nazwie i identyfikatorze klienta, ale innym podmiotie, określono selektor wiadomości lub wartość noLocal, a żaden konsument nie jest już aktywny (czyli nie zamknięty) na trwałej subskrypcji, to jest to równoważne z wykreśleniem (usunięciem) starego i utworzeniem nowej.

Udostępnione i nieudostępnione, trwałe subskrypcje mogą nie mieć tej samej nazwy i tożsamości klienta. Jeśli istnieje już współdzielona, trwała subskrypcja o tej samej nazwie i identyfikatorze klienta, uruchamia się JMSException.

Nie ma ograniczenia dla subskrypcji trwałych i współdzielonych subskrypcji nietrwałych o tej samej nazwie i clientId. Taka subskrypcja będzie całkowicie osobna.

Ta metoda jest taka sama jak odpowiadająca jej metoda createDurableSubscriber, z tą różnicą, że zwraca MessageConsumer zamiast TopicSubscriber, aby reprezentować konsumenta.

Parametr:
Tematy - Subskrypcje tematyczne nietymczasowe
nazwa - nazwa użyta do identyfikacji tej subskrypcji
Rzut:
InvalidDestinationException – Jeśli podano nieprawidłowy temat.
IllegalStateException – Jeśli identyfikator gościa nie jest ustawiony
JMSException -
Jeśli sesja nie utworzy niewspółdzielonej trwałej subskrypcji i MessageConsumer z powodu wewnętrznego błędu
Jeśli istnieje już niewspółdzielona trwała subskrypcja o tej samej nazwie i identyfikatorze klienta, a konsument jest już aktywny
Jeśli istnieje już wspólna, trwała subskrypcja o tej samej nazwie i identyfikatorze klienta
Od tego co następuje:
JMS 2.0

IMessageConsumer CreateDurableConsumer(Destination ITopic, nazwa ciągu ciągów, selektor ciągu, bool noLocal);

gdzie messageSelector jest selektorem wiadomości; Flaga noLocal jest domyślnie fałszywa i gdy jest ustawiona na prawda, ogranicza konsumentom możliwość otrzymywania tylko wiadomości publikowanych przez to samo połączenie co oni sami, co dotyczy tylko tematów, nie kolejek. Nazwa to unikalna tożsamość tematu subskrypcji, a ten parametr należy ustawić przy subskrypcji trwałej.

Activemq .net musi odnieść się do pobrania pakietu:Logowanie do linku jest widoczne.

Pełne pobranie kodu źródłowego:

Turyści, jeśli chcecie zobaczyć ukrytą zawartość tego wpisu, proszęOdpowiedź




Wynik

Liczba uczestników1MB+1 Zapaść powód
LXC1118 + 1 Bardzo potężne!

Zobacz wszystkie oceny





Poprzedni:Konfiguracja uprawnień użytkownika Activemq
Następny:Unknown: Input variables exceeded 1000. To increase the limit change max_inpu...
Opublikowano 16.01.2018 09:11:47 |
a5192142 Opublikowano 2017-10-20 11:46
RE: .net/c# activemq操作示例[源码] [修改]
Tryb zaawansowany

Jak czytać kod źródłowy
Opublikowano 11.12.2019 11:49:26 |
Metoda recepty jest uciążliwa,
Opublikowano 20.10.2017 11:46:30 |
RE: .net/c# activemq操作示例[源码] [修改]
Tryb zaawansowany
Opublikowano 16.08.2017 23:54:36 |
Podczas korzystania z M2MQTT certyfikat jest zgłaszany jako błąd
Opublikowano 17.08.2017 04:14:37 |
Teraz zacznij eksperymentować z używaniem MQTT do pushu
Opublikowano 17.08.2017 15:45:19 |
Myślę, że powinno być dobrze
Opublikowano 29.08.2017 10:40:38 |
Mam nadzieję, że to pomoże
Opublikowano 29.08.2017 13:38:07 |
Mam nadzieję, że się sprawdzi
Opublikowano 14.09.2017 15:15:04 |
Kiedy byłem młody, czytałem poezję i książki, i chodziłem wszędzie, gdzie się pojechałem
Opublikowano 25.09.2017 09:35:22 |
Szukam tego od dawna, mam nadzieję, że tym razem pomoże, dziękuję!
Opublikowano 25.09.2017 09:45:59 |
@小渣渣
     Jak kupić akcesoria!
Opublikowano 29.09.2017 16:35:28 |
Bo w końcu jestem zainteresowany i szukam materiałów do nauki i uczenia się
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com