Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 216172|Respuesta: 69

[Programa de consola] .NET/C# Ejemplo de operación ActiveMQ [Código fuente]

  [Copiar enlace]
Publicado en 27/7/2017 13:19:10 | | | |

Resumen de información sobre ActiveMQ y RabbitMQ
http://www.itsvse.com/thread-4659-1-1.html
(Fuente: Architect_Programmer)

Porque el proyecto necesita que algunos datos sean enviados y recibidos, debido a que la cantidad de datos es relativamente grande, unos 3 millones de datos al día

Al principio, usaba http post para enviar datos, pero descubrí que era demasiado lento y la velocidad de envío era mucho menor que la de recepción.

Por lo tanto, si quieres usar una conexión de socket larga para enviar y recibir datos, escribir tú mismo el servidor socket y el cliente, uno es una pérdida de tiempo, pero puede que no se haga bien

Finalmente, activemq se utiliza para enviar y recibir datos

Primero, el código de productor es el siguiente:



Para consumidores, existen dos modelos:

1: Suscripción ordinaria, sin necesidad de una "suscripción" persistente, es decir, al conectarte puedes recibir mensajes, y no puedes recibir mensajes antes de conectarte, usando "CreateConsumer"
2: Suscripción persistente, tras conectarte, puedes recibir datos que no se han enviado antes, usando "CreateDurableConsumer"


Enlaces a la introducción de CreateDurableConsumer:El inicio de sesión del hipervínculo es visible.

Crea una suscripción persistente no compartida sobre el tema especificado si aún no existe, y crea un consumidor en esa suscripción persistente. Este método crea una suscripción persistente sin usar un selector de mensajes, y el valor noLocal es falso.
La aplicación utiliza una suscripción persistente, y debe recibir todos los mensajes publicados sobre el tema, incluidos los mensajes publicados cuando no hay usuarios activos asociados a ella. El proveedor de JMS mantiene un registro de esta suscripción persistente y se asegura de que todos los mensajes del editor en cuestión se conserven hasta que sean entregados al consumidor y confirmados por esa suscripción persistente hasta que hayan expirado.

Las suscripciones persistentes continúan acumulando mensajes hasta que se eliminan usando el método de baja de suscripción.

Este método solo puede usarse con suscripciones persistentes no compartidas. Cualquier suscripción persistente creada con este método no será compartida. Esto significa que solo puede existir un consumidor activo (es decir, no cerrado) en la suscripción a la vez. El término "consumidor" aquí denota el objeto TopicSubscriber, MessageConsumer o JMSConsumer en cualquier cliente.

Una suscripción persistente no compartida se identifica mediante un nombre especificado por el cliente y un identificador de cliente que debe establecerse. Las aplicaciones que luego quieren crear consumidores con una suscripción persistente no compartida deben usar el mismo identificador de cliente.

Si ya existe una suscripción persistente no compartida con el mismo nombre e identificador de cliente, y el mismo tema, selector de mensajes y valor noLocal ya están especificados, y ningún consumidor está activo (es decir, no cerrado) en la suscripción persistente, este método crea una suscripción duradera existente en MessageConsumer.

Si ya existe una suscripción persistente no compartida con el mismo nombre e identificador de cliente, y hay un consumidor en la suscripción persistente que ya está activo (es decir, no cerrado), se lanzará una JMSException.

Si ya existe una suscripción persistente no compartida con el mismo nombre e identificador de cliente pero con un asunto diferente, se ha especificado un selector de mensajes o un valor noLocal, y ningún consumidor está activo (es decir, no cerrado) en la suscripción persistente, esto equivale a cancelar la suscripción anterior y crear una nueva.

Las suscripciones persistentes compartidas y no compartidas pueden no tener el mismo nombre ni la misma identidad de cliente. Si ya existe una suscripción persistente compartida con el mismo nombre e identificador de cliente, se lanza una JMSException.

No hay límite para suscripciones persistentes y suscripciones no persistentes compartidas con el mismo nombre y clientId. Dicha suscripción será completamente separada.

Este método es el mismo que el método createDurableSubscriber correspondiente, excepto que devuelve un MessageConsumer en lugar de un TopicSubscriber para representar al consumidor.

Parámetro:
Temas - Suscripciones no temporales a temas
nombre - El nombre utilizado para identificar esta suscripción
Lanzamiento:
InvalidDestinationException - Si se especifica un tema inválido.
IllegalStateException - Si el identificador de invitado no está configurado
JMSException -
Si la sesión no logra crear una suscripción persistente no compartida y MessageConsumer debido a algún error interno
Si ya existe una suscripción persistente no compartida con el mismo nombre y identificador de cliente, y el consumidor ya está activo
Si ya existe una suscripción persistente compartida con el mismo nombre e identificador de cliente
Porque:
JMS 2.0

IMessageConsumer CreateDurableConsumer (ITopic destino, nombre de cadena, selector de cadena, bool noLocal);

donde Selector de mensaje es el selector de mensajes; La bandera noLocal es falsa por defecto y, cuando se configura como verdadera, restringe a los consumidores de recibir solo mensajes publicados por la misma conexión que ellos, lo cual solo es aplicable a temas, no a colas. El nombre es la identidad única del tema de suscripción, y este parámetro debe establecerse cuando te suscribes a una suscripción persistente.

Activemq .net necesita referencia para descargar paquetes:El inicio de sesión del hipervínculo es visible.

Descarga del código fuente completo:

Turistas, si queréis ver el contenido oculto de esta publicación, por favorRespuesta




Puntuación

Número de participantes1MB+1 Colapso razón
LXC1118 + 1 ¡Muy poderoso!

Ver todas las valoraciones





Anterior:Configuración de permisos de usuario de Activemq
Próximo:Unknown: Input variables exceeded 1000. To increase the limit change max_inpu...
Publicado en 16/1/2018 9:11:47 |
a5192142 Publicado el 20-10-2017 a las 11:46
RE: .net/c# activemq操作示例[源码] [修改]
Modo avanzado

Cómo leer el código fuente
Publicado en 11/12/2019 11:49:26 |
El método de prescripción es problemático,
Publicado en 20/10/2017 11:46:30 |
RE: .net/c# activemq操作示例[源码] [修改]
Modo avanzado
Publicado en 16/8/2017 23:54:36 |
Al usar M2MQTT, el certificado se reporta como un error
Publicado en 17/8/2017 4:14:37 |
Ahora empieza a experimentar con cómo usar MQTT para push
Publicado en 17/8/2017 15:45:19 |
Creo que debería estar bien
Publicado en 29/8/2017 10:40:38 |
Espero que esto ayude
Publicado en 29/8/2017 13:38:07 |
Espero que funcione
Publicado en 14/9/2017 15:15:04 |
Cuando era joven, leía poesía y libros, y iba dondequiera que iba
Publicado en 25/9/2017 9:35:22 |
Lo he estado buscando mucho tiempo, espero que esta vez ayude, ¡gracias!
Publicado en 25/9/2017 9:45:59 |
@小渣渣
     ¡Cómo comprar accesorios!
Publicado en 29/9/2017 16:35:28 |
Porque, al fin y al cabo, me interesa, y vengo a buscar materiales para aprender y aprender
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com