Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 216172|Antwoord: 69

[Consoleprogramma] .NET/C# ActiveMQ-operatievoorbeeld [Broncode]

  [Link kopiëren]
Geplaatst op 27-07-2017 13:19:10 | | | |

Samenvatting van informatie over ActiveMQ en RabbitMQ
http://www.itsvse.com/thread-4659-1-1.html
(Bron: Architect_Programmer)

Omdat het project wat data nodig heeft om te worden gepusht en ontvangen, en omdat de hoeveelheid data relatief groot is, ongeveer 3 miljoen data per dag

In het begin gebruikte ik HTTP Post om data in te sturen, maar ik vond dat het te traag was en de verzendsnelheid veel kleiner was dan de ontvangstsnelheid.

Dus als je een lange socketverbinding wilt gebruiken om data te pushen en te ontvangen, schrijf je zelf de socketserver en client, is één tijdverspilling, maar het kan niet goed worden uitgevoerd

Ten slotte wordt activemq gebruikt om data te pushen en te ontvangen

Ten eerste is de producentencode als volgt:



Consument, er zijn twee modellen:

1: Gewoon abonnement, geen persistent "abonnement" nodig, dat wil zeggen, bij het verbinden kun je berichten ontvangen, en je kunt geen berichten ontvangen vóór het verbinden, met "CreateConsumer"
2: Persistent abonnement, na het verbinden kun je data ontvangen die nog niet eerder is gepusht, via "CreateDurableConsumer"


Links naar de introductie van CreateDurableConsumer:De hyperlink-login is zichtbaar.

Maak een niet-gedeeld persistent abonnement aan op het opgegeven onderwerp als dat nog niet bestaat, en maak een consument aan op dat persistent abonnement. Deze methode maakt een persistent abonnement aan zonder een berichtselector te gebruiken, en de noLocal-waarde is onwaar.
De applicatie gebruikt een persistent abonnement en moet alle berichten ontvangen die over het onderwerp zijn gepubliceerd, inclusief berichten die zijn gepubliceerd wanneer er geen actieve consumenten aan verbonden zijn. De JMS-provider houdt een registratie bij van dit persistente abonnement en zorgt ervoor dat alle berichten van de betreffende uitgever worden bewaard totdat ze aan de consument zijn geleverd en door dat persistent abonnement zijn bevestigd totdat ze zijn verlopen.

Persistente abonnementen blijven berichten verzamelen totdat ze worden verwijderd met de afmeldmethode.

Deze methode kan alleen worden gebruikt met niet-gedeelde persistente abonnementen. Alle persistente abonnementen die met deze methode worden aangemaakt, worden niet meer gedeeld. Dit betekent dat er slechts één actieve (dus niet gesloten) consument tegelijk op het abonnement kan zijn. De term "consument" duidt hier op het TopicSubscriber-, MessageConsumer- of JMSConsumer-object in elke client.

Een niet-gedeeld persistent abonnement wordt geïdentificeerd door een door de client gespecificeerde naam en een clientidentificatie die moet worden ingesteld. Applicaties die vervolgens consumenten willen aanmaken op een niet-gedeeld persistent abonnement, moeten dezelfde clientidentificatie gebruiken.

Als er al een niet-gedeeld persistent abonnement met dezelfde naam en client identifier bestaat, en hetzelfde onderwerp, berichtselector en noLocal-waarde al zijn gespecificeerd, en er is geen enkele consument al actief (d.w.z. niet gesloten) op het persistente abonnement, dan creëert deze methode een bestaand duurzaam abonnement op de MessageConsumer.

Als er al een niet-gedeeld persistent abonnement met dezelfde naam en client identifier bestaat, en er is een consument op het persistente abonnement die al actief is (d.w.z. niet gesloten), wordt een JMSException gegooid.

Als er al een niet-gedeeld persistent abonnement is met dezelfde naam en client identifier maar een ander onderwerp, een berichtselector of noLocal-waarde is gespecificeerd, en er is geen enkele consument al actief (dus niet gesloten) op het persistente abonnement, dan is dit gelijk aan het afmelden (verwijderen) van het oude en het aanmaken van een nieuw.

Gedeelde en niet-gedeelde persistente abonnementen hebben mogelijk niet dezelfde naam en clientidentiteit. Als er al een gedeeld persistent abonnement met dezelfde naam en client identifier bestaat, wordt een JMSException gegooid.

Er is geen limiet aan persistente abonnementen en gedeelde niet-persistente abonnementen met dezelfde naam en clientId. Zo'n abonnement zal volledig apart zijn.

Deze methode is hetzelfde als de bijbehorende createDurableSubscriber-methode, behalve dat deze een MessageConsumer teruggeeft in plaats van een TopicSubscriber om de consument te vertegenwoordigen.

Parameter:
Thema's - Niet-tijdelijke onderwerpabonnementen
naam - De naam die wordt gebruikt om dit abonnement te identificeren
Gooi:
InvalidDestinationException - Als een ongeldig onderwerp wordt gespecificeerd.
IllegalStateException - Als de gastidentificatie niet is ingesteld
JMSException -
Als de sessie faalt, maakt het een niet-gedeeld persistent abonnement en MessageConsumer aan vanwege een interne fout
Als er al een niet-gedeeld persistent abonnement met dezelfde naam en client identifier bestaat, en de consument al actief is
Als er al een gedeeld persistent abonnement met dezelfde naam en client identifier bestaat.
Sinds:
JMS 2.0

IMessageConsumer CreateDurableConsumer(ITopische bestemming, stringnaam, stringselector, bool noLocal);

waarbij messageSelector de berichtselector is; De noLocal-vlag is standaard onwaar, en wanneer deze op waar staat, beperkt deze consumenten om alleen berichten te ontvangen die door dezelfde verbinding als zijzelf worden gepubliceerd, wat alleen geldt voor onderwerpen, niet voor wachtrijen. naam is de unieke identiteit van het abonnementsonderwerp, en deze parameter moet worden ingesteld wanneer je je abonneert op een persistent abonnement.

Activemq .net moet een referentiepakket downloaden:De hyperlink-login is zichtbaar.

Volledige broncode downloaden:

Toeristen, als jullie de verborgen inhoud van dit bericht willen zien, alsjeblieftAntwoord




Partituur

Aantal deelnemers1MB+1 Instorting reden
lxc1118 + 1 Heel krachtig!

Bekijk alle beoordelingen





Vorig:Activemq gebruikersrechtconfiguratie
Volgend:Unknown: Input variables exceeded 1000. To increase the limit change max_inpu...
Geplaatst op 16-01-2018 09:11:47 |
a5192142 Geplaatst op 20-10-2017 11:46
RE: .net/c# activemq操作示例[源码] [修改]
Geavanceerde modus

Hoe lees je de broncode
Geplaatst op 11-12-2019 11:49:26 |
De voorschrijfmethode is lastig,
Geplaatst op 20-10-2017 11:46:30 |
RE: .net/c# activemq操作示例[源码] [修改]
Geavanceerde modus
Geplaatst op 16-08-2017 23:54:36 |
Bij gebruik van M2MQTT wordt het certificaat als fout gerapporteerd
Geplaatst op 17-08-2017 04:14:37 |
Begin nu te prutsen met hoe je MQTT gebruikt voor push
Geplaatst op 17-08-2017 15:45:19 |
Ik denk dat het goed moet zijn
Geplaatst op 29-08-2017 10:40:38 |
Hopelijk helpt dit
Geplaatst op 29-08-2017 13:38:07 |
Ik hoop dat het werkt
Geplaatst op 14-09-2017 15:15:04 |
Toen ik jong was, las ik poëzie en boeken, en ik ging overal waar ik ging
Geplaatst op 25-09-2017 09:35:22 |
Ik ben er al heel lang naar op zoek, ik hoop dat het deze keer helpt, dank je wel!
Geplaatst op 25-09-2017 09:45:59 |
@小渣渣
     Hoe koop je accessoires!
Geplaatst op 29-09-2017 16:35:28 |
Want uiteindelijk ben ik geïnteresseerd, en ik kom om materialen te vinden om te leren en te leren
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com