Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 216172|Risposta: 69

[Programma Console] .NET/C# Esempio di operazione ActiveMQ [Codice sorgente]

  [Copiato link]
Pubblicato su 27/07/2017 13:19:10 | | | |

Riepilogo delle informazioni su ActiveMQ e RabbitMQ
http://www.itsvse.com/thread-4659-1-1.html
(Fonte: Architect_Programmer)

Poiché il progetto ha bisogno che alcuni dati vengano inviati e ricevuti, dato che la quantità di dati è relativamente grande, circa 3 milioni di dati al giorno

All'inizio ho usato http post per inviare i dati, ma ho scoperto che era troppo lento e la velocità di invio era molto più bassa di quella di ricezione.

Quindi, se vuoi usare una connessione socket lunga per inviare e ricevere dati, scrivi tu stesso il server socket e il client, una cosa è una perdita di tempo, ma potrebbe non essere fatto bene

Infine, activemq viene utilizzato per inviare e ricevere dati

Innanzitutto, il codice produttore è il seguente:



Per il consumatore, ci sono due modelli:

1: Abbonamento ordinario, nessuna necessità di un "abbonamento" persistente, cioè, durante la connessione puoi ricevere messaggi e non puoi ricevere messaggi prima di connetterti, usando "CreateConsumer"
2: Abbonamento persistente, dopo la connessione, puoi ricevere dati che non sono mai stati inviati prima, utilizzando "CreateDurableConsumer"


Collegamenti all'introduzione di CreateDurableConsumer:Il login del link ipertestuale è visibile.

Crea un abbonamento persistente non condiviso sull'argomento specificato se non esiste già, e crea un consumatore su quell'abbonamento persistente. Questo metodo crea un abbonamento persistente senza utilizzare un selettore di messaggi, e il valore noLocal è falso.
L'applicazione utilizza un abbonamento persistente e deve ricevere tutti i messaggi pubblicati sull'argomento, inclusi quelli pubblicati quando non ci sono consumatori attivi associati. Il provider JMS tiene traccia di questo abbonamento persistente e garantisce che tutti i messaggi dell'editore in questione vengano conservati fino alla consegna al consumatore e confermati da quell'abbonamento persistente fino alla loro scadenza.

Gli abbonamenti persistenti continuano ad accumulare messaggi finché non vengono cancellati utilizzando il metodo di disiscrizione.

Questo metodo può essere utilizzato solo con abbonamenti persistenti non condivisi. Qualsiasi abbonamento persistente creato con questo metodo sarà non condiviso. Ciò significa che solo un consumatore attivo (cioè non chiuso) può esistere sull'abbonamento alla volta. Il termine "consumer" qui indica l'oggetto TopicSubscriber, MessageConsumer o JMSConsumer in qualsiasi client.

Un abbonamento persistente non condiviso viene identificato da un nome specificato dal client e da un identificatore del client che deve essere impostato. Le applicazioni che poi vogliono creare consumatori con un abbonamento persistente non condiviso devono utilizzare lo stesso identificatore client.

Se esiste già un abbonamento persistente non condiviso con lo stesso nome e identificatore del cliente, e lo stesso argomento, selettore di messaggi e valore noLocal sono già specificati, e nessun consumatore è già attivo (cioè non chiuso) sull'abbonamento persistente, questo metodo crea un abbonamento duraturo esistente sul MessageConsumer.

Se esiste già un abbonamento persistente non condiviso con lo stesso nome e identificatore client, e c'è un consumatore sull'abbonamento persistente già attivo (cioè non chiuso), verrà attivato un JMSException.

Se esiste già un abbonamento persistente non condiviso con lo stesso nome e identificatore del cliente ma con un soggetto diverso, è stato specificato un selettore di messaggi o un valore noLocal e nessun consumatore è già attivo (cioè non chiuso) sull'abbonamento persistente, allora ciò equivale a disiscriversi (eliminare) quello vecchio e crearne uno nuovo.

Gli abbonamenti persistenti condivisi e non condivisi potrebbero non avere lo stesso nome e identità del cliente. Se esiste già un abbonamento persistente condiviso con lo stesso nome e identificatore client, viene lanciata una JMSException.

Non c'è limite agli abbonamenti persistenti e agli abbonamenti non persistenti condivisi con lo stesso nome e clientId. Un tale abbonamento sarà completamente separato.

Questo metodo è lo stesso del corrispondente metodo createDurableSubscriber, tranne per il fatto che restituisce un MessageConsumer invece di un TopicSubscriber per rappresentare il consumatore.

Parametro:
Temi - Abbonamenti non temporanei a argomenti
nome - Il nome usato per identificare questo abbonamento
Lancio:
InvalidDestinationException - Se viene specificato un argomento non valido.
IllegalStateException - Se l'identificativo ospite non è impostato
JMSException -
Se la sessione non riesce a creare un abbonamento persistente non condiviso e MessageConsumer a causa di un errore interno
Se esiste già un abbonamento persistente non condiviso con lo stesso nome e identificatore del cliente, e il consumatore è già attivo
Se esiste già un abbonamento persistente condiviso con lo stesso nome e identificatore del cliente
Dato che:
JMS 2.0

IMessageConsumer CreateDurableConsumer(ITopic destinazione, nome stringa, selettore stringa, bool noLocal);

dove messageSelector è il selettore dei messaggi; Il flag noLocal è falso di default e, se impostato su true, limita i consumatori dal ricevere solo messaggi pubblicati dalla stessa connessione, cosa applicabile solo agli argomenti, non alle code. Il nome è l'identità unica dell'argomento in abbonamento, e questo parametro deve essere impostato quando si abbona a un abbonamento persistente.

Activemq .net deve fare riferimento al download del pacchetto:Il login del link ipertestuale è visibile.

Scarica il codice sorgente completo:

Turisti, se volete vedere il contenuto nascosto di questo post, vi pregoRisposta




Punteggio

Numero di partecipanti1MB+1 Collasso ragione
LXC1118 + 1 Molto potente!

Vedi tutte le valutazioni





Precedente:Configurazione dei permessi utente di Activemq
Prossimo:Unknown: Input variables exceeded 1000. To increase the limit change max_inpu...
Pubblicato su 16/01/2018 09:11:47 |
a5192142 Pubblicato il 20-10-2017 alle 11:46
RE: .net/c# activemq操作示例[源码] [修改]
Modalità avanzata

Come leggere il codice sorgente
Pubblicato su 11/12/2019 11:49:26 |
Il metodo di prescrizione è complicato,
Pubblicato su 20/10/2017 11:46:30 |
RE: .net/c# activemq操作示例[源码] [修改]
Modalità avanzata
Pubblicato su 16/08/2017 23:54:36 |
Quando si utilizza M2MQTT, il certificato viene segnalato come errore
Pubblicato su 17/08/2017 04:14:37 |
Ora inizia a sperimentare come usare MQTT per il push
Pubblicato su 17/08/2017 15:45:19 |
Penso che dovrebbe andare bene
Pubblicato su 29/08/2017 10:40:38 |
Spero che questo aiuti
Pubblicato su 29/08/2017 13:38:07 |
Spero funzioni
Pubblicato su 14/09/2017 15:15:04 |
Quando ero giovane, leggevo poesie e libri, e andavo ovunque andassi
Pubblicato su 25/09/2017 09:35:22 |
Lo stavo cercando da tanto tempo, spero che questa volta ti sia d'aiuto, grazie!
Pubblicato su 25/09/2017 09:45:59 |
@小渣渣
     Come acquistare accessori!
Pubblicato su 29/09/2017 16:35:28 |
Perché, dopotutto, sono interessato, e vengo a cercare materiali per imparare e imparare
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com