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: 304494|Respuesta: 72

[Fuente] c# El uso de la cola de mensajes MessageQueue con código fuente

  [Copiar enlace]
Publicado en 14/12/2016 13:51:37 | | | |

Con MSMQ (Microsoft Message Queue), los desarrolladores de aplicaciones pueden comunicarse cómodamente con las aplicaciones de forma rápida y fiable enviando y recibiendo mensajes. El procesamiento de mensajes te proporciona un método fiable y seguro para garantizar la mensajería y realizar muchos procesos empresariales.

MSMQ, al igual que XML Web Services y .Net Remoting, es una tecnología de desarrollo distribuido. Sin embargo, al utilizar componentes de Servicios Web XML o .Net Remoto, el cliente necesita intercambiar información con el servidor en tiempo real, y el servidor debe permanecer en línea. MSMQ puede funcionar cuando el servidor está fuera de línea, guardando temporalmente el mensaje en la cola de mensajes del lado del cliente y enviándolo al servidor para su procesamiento cuando está en línea.

Obviamente, MSMQ no es adecuado para la situación en la que el cliente necesita responder puntualmente desde el servidor, y MSMQ interactúa con el servidor de forma asíncrona, por lo que no hay que preocuparse por esperar mucho tiempo a que el servidor procese.



Aunque tanto XML Web Services como .Net Remoting proporcionan la propiedad [OneWay] para manejar llamadas asíncronas, se utiliza para resolver el problema de llamadas a métodos largas en el lado del servidor que bloquean el lado cliente durante mucho tiempo. Sin embargo, no puede resolver el problema de la gran carga del cliente, y el servidor acepta solicitudes más rápido de lo que puede procesar.

En general, el atributo [OneWay] no se utiliza en servicios de mensajería especializada.



1. Términos y conceptos básicos

Un "mensaje" es una unidad de datos que se transmite entre dos ordenadores. Los mensajes pueden ser muy simples, como contener solo cadenas de texto; También puede ser más complejo y puede contener objetos incrustados.



Se envían mensajes a la cola. Una "cola de mensajes" es un contenedor que contiene los mensajes durante su transmisión. El gestor de cola de mensajes actúa como intermediario al retransmitir los mensajes desde su origen hasta su destino. El propósito principal de una cola es proporcionar enrutamiento y garantizar la entrega de los mensajes; Si el destinatario no está disponible cuando se envía el mensaje, la cola de mensajes retiene el mensaje hasta que pueda entregarse con éxito.



"Cola de mensajes" es la tecnología de procesamiento de mensajes de Microsoft que ofrece capacidades de procesamiento y cola de mensajes para cualquier aplicación en cualquier combinación de ordenadores con Microsoft Windows instalado, independientemente de si están en la misma red o en línea al mismo tiempo.



Una "red de cola de mensajes" es cualquier grupo de ordenadores que pueden enviar mensajes entre sí. Diferentes ordenadores en una red desempeñan distintos papeles para asegurar que los mensajes se procesen sin problemas. Algunos proporcionan información de enrutamiento para determinar cómo enviar mensajes, otros contienen información importante sobre toda la red y algunos simplemente envían y reciben mensajes.



Durante la instalación de la Cola de Mensajes, los administradores determinan qué servidores pueden comunicarse entre sí y establecen roles especiales para servidores específicos. Los ordenadores que conforman esta red de "colas de mensajes" se llaman "sitios" y están conectados entre sí mediante "enlaces de sitio". Cada enlace de sitio tiene una "sobrecarga" asociada que determina el administrador e indica con qué frecuencia se entregan los mensajes a través de este enlace.



El administrador de la Cola de Mensajes también configura uno o más ordenadores en la red que actúan como Servidores de Enrutamiento. El servidor de enrutamiento analiza la sobrecarga de cada enlace de sitio para determinar la forma más rápida y eficiente de entregar un mensaje a través de múltiples sitios para determinar cómo entregarlo.



2. Tipo de cola

Hay dos tipos principales de colas: colas creadas por ti u otros usuarios de tu red y colas del sistema.

Una cola creada por el usuario puede ser cualquiera de las siguientes:

Las colas públicas se replican a lo largo de toda la red de Colas de Mensajes y tienen el potencial de ser accedidas por todos los sitios conectados a la red.

Las colas privadas no se publican en toda la red. En su lugar, solo están disponibles en el ordenador local donde se encuentran. Las colas privadas solo pueden ser accedidas por aplicaciones que conozcan el nombre completo de la ruta o la etiqueta de la cola.

La Cola de Gestión contiene mensajes que reconocen los recibos de mensajes enviados en una red de Cola de Mensajes dada. Especifica la cola de gestión que quieres que use el componente MessageQueue, si la usa.

La Cola de Respuesta contiene los mensajes de respuesta que se devuelven a la aplicación emisora cuando la aplicación objetivo recibe el mensaje. Especifica la cola de respuesta que quieres que use el componente MessageQueue, si la usa.



Las colas generadas por el sistema se dividen generalmente en las siguientes categorías:

La Cola de diario almacena opcionalmente copias de los mensajes enviados y copias de los mensajes eliminados de la cola. Una única cola de diario en cada cliente de Cola de Mensajes almacena una copia de los mensajes enviados desde ese ordenador. Se crea una cola de diario separada para cada cola en el servidor. Este diario rastrea los mensajes que se eliminan de esa cola.

La Cola de Cartas Muertas almacena copias de mensajes que no pueden entregarse o que han caducado. Si un mensaje que expira o no puede entregarse es transaccional, se almacena en una cola especial de letras muertas llamada "cola de letras muertas transaccional". Las letras muertas se almacenan en el ordenador donde reside el mensaje caducado. Para más información sobre los mensajes de tiempo de espera y caducidad, consulta Propiedades predeterminadas de los mensajes.

La Cola de Informes contiene mensajes que indican la ruta que sigue el mensaje para llegar al destino, y también puede contener mensajes de prueba. Solo puede haber una cola de reporte en cada ordenador.

Una cola dedicada del sistema es una serie de colas dedicadas que almacenan los mensajes de gestión y notificación que un sistema necesita para realizar operaciones de procesamiento de mensajes.

La mayor parte del trabajo realizado en la aplicación consiste en acceder a colas públicas y sus mensajes. Sin embargo, dependiendo del registro diario, el acuse de recibo y otras necesidades especiales de procesamiento de la aplicación, es probable que se utilicen varias colas diferentes del sistema en las operaciones diarias.



3. Comunicación síncrona vs. asíncrona

La comunicación en cola es inherentemente asíncrona porque enviar mensajes y recibir mensajes desde la cola se realiza en procesos diferentes. Además, la operación de recepción puede realizarse de forma asíncrona, porque la persona que desea recibir el mensaje puede llamar al método BeginReceive a cualquier cola y continuar inmediatamente con otras tareas sin esperar respuesta. Esto es muy diferente de lo que la gente conoce como "comunicación síncrona".



En la comunicación síncrona, el remitente de la solicitud debe esperar una respuesta del destinatario previsto antes de realizar otras tareas. El tiempo de espera del remitente depende completamente del tiempo que tarda el destinatario en procesar la solicitud y enviar la respuesta.



4. Interactuar con colas de mensajes

El procesamiento de mensajes y la mensajería proporcionan un mecanismo potente y flexible para la comunicación entre procesos entre componentes de aplicaciones basadas en servidor. Ofrecen varias ventajas sobre la invocación directa entre componentes, incluyendo:

Estabilidad – Los fallos de componentes afectan mucho menos a los mensajes que las llamadas directas entre componentes, ya que los mensajes se almacenan en una cola y permanecen allí hasta que se procesan correctamente. El procesamiento de mensajes es similar al procesamiento de transacciones en que el procesamiento de mensajes está garantizado.
Priorización de mensajes – Se pueden recibir mensajes más urgentes o importantes antes que mensajes relativamente poco importantes, por lo que puedes garantizar un tiempo de respuesta adecuado para aplicaciones críticas.
Capacidad offline – Cuando se envían mensajes, pueden enviarse a una cola temporal y permanecer allí hasta que se entreguen con éxito. Cuando el acceso a la cola deseada no está disponible por cualquier motivo, el usuario puede proceder con la acción. Al mismo tiempo, otras operaciones pueden continuar como si el mensaje hubiera sido procesado, porque la entrega del mensaje está garantizada cuando se restablece la conexión de red.
Procesamiento transaccional de mensajes – Acopla varios mensajes relacionados en una sola transacción para asegurar que los mensajes se entreguen secuencialmente, solo una vez, y puedan recuperarse correctamente desde su cola de destino. Si hay algún error, toda la transacción se cancela.
Seguridad – La tecnología de cola de mensajes en la que se basa el componente MessageQueue utiliza Windows Security para asegurar el control de accesos, proporcionar auditorías y cifrar y autenticar los mensajes enviados y recibidos por el componente.


5. Escribir un programa simple de cola de mensajes en el entorno .Net

(1) Instalar primero los servicios de cola de mensajes

Instala MSMQ desde el Panel de Control, el paso "Añadir/Eliminar programas" – "Añadir/Eliminar componentes de Windows".

MSMQ puede instalarse tanto en modo grupo de trabajo como en modo dominio. Si el instalador no encuentra un servidor que ejecute una cola de mensajes que ofrezca servicios de directorio, solo puede instalarse en modo grupo de trabajo, y la Cola de Mensajes en este ordenador solo soporta la creación de colas privadas y la creación de conexiones directas a otros ordenadores que ejecuten colas de mensajes.



(2) Configurar MSMQ

Abrir Gestión de Ordenadores – Cola de mensajes y crear una cola MSMQDemo bajo colas privadas


(3) Escribir código: simplemente demostrar el objeto MSMQ

La clase MessageQueue es un envoltorio alrededor de una "cola de mensajes". La clase MessageQueue proporciona una referencia a la cola de Mensajes. Puedes especificar una ruta hacia un recurso existente en el constructor MessageQueue, o puedes crear una nueva cola en el servidor. Antes de poder llamar a Send, Peek o Receive, debes asociar una nueva instancia de la clase MessageQueue con una cola existente.



MessageQueue soporta dos tipos de recuperación de mensajes: síncrona y asincrónica. Los métodos sincronizados Peek y Receive hacen que el hilo de proceso espere a que llegue un nuevo mensaje a la cola en un intervalo especificado. Los métodos asíncronos BeginPeek y BeginReceive permiten que la tarea principal de la aplicación continúe ejecutándose en un hilo separado antes de que el mensaje llegue a la cola. Estos métodos funcionan utilizando objetos de callback y objetos de estado para facilitar la comunicación de información entre hilos.


Descarga del código fuente:

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





Anterior:15 bien. .NET
Próximo:C#/.NET lee el código fuente de la información hash del torrent torrent
Publicado en 13/6/2021 20:54:46 |
OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK
Publicado en 22/2/2019 11:01:34 |
https://download.csdn.net/download/winrich/9585398
Publicado en 21/7/2021 11:20:26 |
Bien, bien
Publicado en 21/12/2016 23:04:53 |
Gracias, casero
Publicado en 28/12/2016 19:20:26 |
Echa un vistazo a este ejercicio actual
Publicado en 14/7/2017 16:32:06 |
Gracias, casero。。。。。。。
Publicado en 18/10/2017 14:26:45 |
Aprende de los líderes del grupo
Publicado en 24/10/2017 5:39:19 |
Apréndelo
Publicado en 18/11/2017 21:56:57 |
GOOOOOOOOOOOOOOOD
Publicado en 14/12/2017 14:04:20 |
Hay que responder a las buenas publicaciones
Publicado en 16/12/2017 21:49:55 |
213123saedwaeas
Publicado en 17/12/2017 8:56:11 |
Mira lo que se dice
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