C # notas de estudio de cohortes: MSMQ Primeros pasos

    I. Introducción

    MSMQ Cyberspace completa de Microsoft Message Queue, Microsoft Message Queue, es darse cuenta de una intercomunicación ATM entre una pluralidad de diferentes aplicaciones, las aplicaciones se comunican entre sí puede ser distribuido en la misma máquina, puede ser conectado a la distribución de cualquier posición. Su principio de ejecución es: el remitente del mensaje que desea enviar la información en un recipiente (que llamamos mensaje), y luego guardarlo en una cola de mensajes (Message Queue) un sistema de espacio público, local o mensaje de programa que recibe coloca el mensaje enviado a la misma y luego se retira de la cola para su procesamiento.

    Mensaje mensaje de información mediante la comunicación de las partes tiene que pase.

    Queue tipo incluyen los siguientes:

    "Colas públicas" copiar toda la "cola de mensajes" de la red, y pueden ser accedidos por todos los sitios Fi.

    "Las colas privadas" toda la red no se libera, por el contrario, están disponibles sólo en el que reside equipo local. Las colas privadas sólo se puede acceder por el programa de aplicación para conocer el nombre de ruta completo o etiqueta de la cola.

    "Gestión de colas" contiene un mensaje de acuse de recibo de un mensaje dado "cola de mensajes" enviados por la red. Especifica que desea utilizar la cola de la gestión de componentes MessageQueue (si lo hay).

    volver enviado a la aplicación en respuesta al mensaje de "cola de respuesta" contiene la aplicación de destino recibe un mensaje. La designación de una respuesta deseada cola componente MessageQueue utilizado (si existe).

    Pros: estables, prioridad del mensaje, capacidades fuera de línea y de seguridad, entrega de mensajes garantizada e implementación de un mecanismo fiable a prueba de fallos de muchos procesos de negocio.

    Desventaja: MSMQ no es adecuado para las necesidades de clientes situaciones de interacción del servidor en tiempo real a extremo, cuando un gran número de retardo de respuesta peticiones.

    En segundo lugar, la instalación

    Introduzca appwiz.cpl-> Activar las características de Windows sobre la marcha - servidor> Microsoft Message Queue (MSMQ).

 

    Después de la instalación exitosa, compmgmt.msc- de entrada> servicios y aplicaciones que se ejecutan -> Message Queue.

    En tercer lugar, el ejemplo muestra

    clase Programa 
    { 
        static  void principal ( Cadena [] args) 
        { 
            #region MSMQ Conseguir un
             // crear una cola de mensajes, la ruta de almacenamiento predeterminada: C: \ WINDOWS \ system32 \ MSMQ \ Storage 
            SI (MessageQueue.Exists ( @ " . \ $ privada \ HelloMSMQ " )) 
                MessageQueue.Delete ( @" \ $ privada \ HelloMSMQ. " );    // borrar la cola de mensajes HelloMSMQ 
            SI (MessageQueue.Exists ( @" \ $ privada \ WorldMSMQ. " )) 
                MessageQueue.Delete ( @" . \ $ privada \ WorldMSMQ ");   // 删除消息队列WorldMSMQ 

            MessageQueue mqHello = MessageQueue.Create ( @ " \ Private $ \ HelloMSMQ. " ); 
            MessageQueue mqWorld = MessageQueue.Create ( @ " \ $ privada \ WorldMSMQ. " ); 

            // 发送消息 
            mqHello.Send ( " Hola mundo, soy Hola. " , " MqHello1 " ); 
            mqHello.Send ( " ¿Estás libre? " , " mqHello2 " ); 
            mqHello.Send ( " Hola Hola," " MqWorld1 " ); 
            mqHello.Send ( " Creo que voy a ser libre. " " MqWorld2 " ); 

            // 返回本机所有私有队列的消息
            foreach (artículo MessageQueue en MessageQueue.GetPrivateQueuesByMachine ( " CX168 " ) ) 
            { 
                item.Formatter = nuevo XmlMessageFormatter ( nueva  cadena [] { " System.String " }); 
                Mensaje [] mensajes =item.GetAllMessages ();
                foreach (mensaje Mensaje de mensajes) 
                { 
                    Console.WriteLine ($ " Etiqueta: {} message.Label cuerpo: {} message.Body " ); 
                } 
            } 

            // 返回指定队列的消息
            si (MessageQueue.Exists ( @ "\ $ privada \ HelloMSMQ " )) 
            { 
                usando (MessageQueue Theone = nueva MessageQueue ( @" . \ Private $ \ HelloMSMQ " )) 
                { 
                    Console.WriteLine (); 

                    //Establecer la cola de mensajes formateador 
                    theOne.Formatter = nueva nueva del XmlMessageFormatter ( nueva nueva  cadena [] { " System.String El " });
                     // recibir el mensaje, pero no elimina 
                    el mensaje MSG = mqHello.Peek (); 
                    Console.WriteLine ($ " para el etiquetado: msg.Label cuerpo} {:} {msg.Body " );
                     // recibir y eliminar un mensaje 
                    MSG = mqHello.Receive (); 
                    Console.WriteLine ($ " de la etiqueta: msg.Label {cuerpo}: {} msg.Body " ); 
                    MSG =mqHello.Peek (); 
                    Console.WriteLine ($ " Etiqueta: {} msg.Label cuerpo: {} msg.Body " );
                    // 删除所有消息
                    mqHello.Purge (); 
                    Console.WriteLine ($ " recuento mqHello: {mqHello.GetAllMessages count () ().} " ); 
                } 
            } 

            Console.Read (); 
            #endregion 
        } 
    }

    Los resultados son los siguientes:

 

    Referencia a partir de:

    https://www.cnblogs.com/tenghoo/archive/2009/11/05/1596456.html

Supongo que te gusta

Origin www.cnblogs.com/atomy/p/12549598.html
Recomendado
Clasificación