viernes, 12 de octubre de 2012

ActiveMQ y C#

ActiveMQ y C# 




Suscribirse Publicar en C # con ActiveMQ Según especificación JMS "El Java Message Service (JMS) establece la norma o normas para mensajería empresarial fiable o Mensajería Oriented Middleware (MOM)."

Mensajes o mensajería asíncrona es una parte de cualquier arquitectura empresarial hoy en día. Un mensaje libremente puede explicarse como cualquier intercambio de datos entre diferentes programas dentro del mismo equipo y procesos diferentes, o entre diferentes equipos y procesos que se ejecutan en equipos diferentes.

Este artículo se centra en los datos en vivo publicación y distribución entre los diferentes procesos o equipos como y cuando lleguen los datos. Esto también se conoce como Pub-Sub modelo o Publicar Suscribirse modelo. Vamos a utilizar C # como lenguaje de programación. Lamentablemente, ninguno de los marcos de Microsoft actualmente ofrece esta función.

La tan mentada MSMQ que ofrece mensajería asincrónica no podía ofrecer un empuje por lo que yo he intentado. De lo contrario, también utilizan MSMQ para diversos fines, y su rendimiento es sin duda bueno. En última instancia, no tienen una relación directa pub-sub solución con MSMQ. Si alguien me encuentra mal al respecto, por favor no dude en enviar sus comentarios.

Básicamente habría un proceso en el mismo equipo o algún otro equipo de la red que se publica (o publicar) los mensajes a un solo lugar y no habrá otro oyente que serán notificadas con el nuevo mensaje cada vez que llega. El oyente debe recibir el mensaje de forma automática y no se pide a cada minuto o cada hora, etc, también podemos llamar a esto un "empuje" del modelo. Este modelo de inserción de datos pueden ser utilizados en diferentes lugares como las cotizaciones bursátiles, resultados de cricket y mucho más.

Ahora vamos a ver cómo utilizar un marco de JMS y obtener nuestro modelo de inserción laboral ..
Configuración básica:
El ingrediente principal de este ejercicio es ActiveMQ que se puede descargar desde el linkhttp :/ / activemq.apache.org/activemq-541-release.html. Estamos utilizando la versión estable actual. Por favor, asegúrese de instalar los requisitos básicos de JDK etc, según lo requiera el producto ActiveMQ. La versión incluida en el enlace de arriba necesita Java 1.6 instalación.

El Active MQ es muy sencillo de entender producto. Este es un producto de la familia de los marcos de Apache Opensource y en nuestra experiencia hemos encontrado que es un producto muy estable. Todo lo que necesitamos hacer es
Descargue el programa en una carpeta en el equipo local
■ Y ejecutar el bin \ activemq.bat.
También tenemos la opción de instalar esto como un servicio de Windows, en cuyo caso esta voluntad se inicia automáticamente cada vez que Windows se inicia cuando el ActiveMQ tiene algunos componentes, a saber colas y temas que son los destinos a los que un editor puede enviar mensajes y un suscriptor puede recibir mensajes .

ActiveMQ también tiene una API. Net nombrado como NMS que se puede descargar desde http://activemq.apache.org/nms/. Nuestro programa va a usar esta biblioteca, así como que no queremos volver a inventar la rueda entera de todo edificio nuevo.

NMS tiene soporte para diferentes proveedores de ActiveMQ (que es un debate totalmente independiente) y estamos utilizando protocolo OpenWire para nuestros propósitos.

Componentes de un Programa Pub ActiveMQ Subcategoría:
Componentes de un abonado en un programa editor ActiveMQ son los siguientes.

Active MQ - Actúa como el eje central para recibir y empujar los datos
Tema - Esta es la ruta de acceso virtual o lugar en que los mensajes serán publicados.
Publisher - El programa que quiere insertar los datos a los abonados. Puede ser uno o muchos
Suscriptor - El programa o los programas que quiera suscribirse a los datos publicados.

Aparte de lo anterior, la ActiveMQ también tiene un

■ Conexión - Maneje a la conversación mutua entre el cliente y el servidor ActiveMQ
■ Sesión - Mantiene la sesión
IMessageConsumer - Una clase para la suscripción del servidor intermediario ActiveMQ
IMessageProducer - Clase para publicar mensajes al agente (a un tema o una cola)

Active MQ tiene algunas suscripciones duraderas durble y no gubernamentales y editoriales. Suscripción duradera se recomienda altamente confiable para publicar suscribirse donde ni siquiera un uno por ciento de la pérdida es permisible. Pero la otra cara de esto es que esto requiere gran cantidad de memoria que mantiene creciente hora tras hora. Esto se sugiere en áreas en las que necesita para asegurarse de que los datos no se pierde para los casos.

No durable publicar suscribir algo que se requiere para los casos en los que no puede prescindir demasiado de la memoria y el rendimiento, pero puede vivir con una cierta cantidad de pérdida de datos, por ejemplo, se le pasa una puntuación de cricket actualizar cada 3-4 horas, etc,

}Estructura del programa:
Lo que he tratado de hacer es envolver el editor y el suscriptor en clases separadas nombradas como NonDurableTopicPublisher y NondurableTopicSubscriber. La biblioteca también declara un delegado que se invoca en cada recepción del mensaje. Si desea más detalles sobre los delegados visitar los delegados y eventos artículo.

Todo lo que necesitas hacer es descargar y ejecutar el ActiveMQ de activemqinstallationfolder \ bin \ activemq.bat. Esto iniciará el proceso de ActiveMQ. Por favor, asegúrese de que tiene los necesarios versiones JDK instalado de otra manera esto no va a funcionar sin problemas. Si esto se instala como un servicio de Windows esto habría iniciado automáticamente (si se ha configurado para el modo de inicio automático, esto ya han comenzado)

Las clases anteriores se han escrito como una biblioteca de clases. Net y una pequeña aplicación de consola se crea también utilizar estas clases. Si ejecuta el programa dará una salida de mensaje de prueba 1 .. Prueba de mensaje 99, que son publicadas por la editorial y suscrito en la misma función en sí.

En la biblioteca añadido, la NonDurableTopicPublisher se conecta a la uri corredor proporcionado y mantiene en la publicación de los mensajes para el tema en cuestión. Tenga en cuenta que este tiene la capacidad de publicar en cualquier servidor, ya sea la misma máquina o en una máquina diferente de la red.
El único inconveniente es que hay que tener cuidado con las intrusiones de hackers firewall. Lo más seguro sería abrir el puerto 61616 a sólo aquellos ips en los que confía.
NonDurableTopicSubscriber conecta con el corredor y espera a que todas las actualizaciones de la ActiveMQ. En el momento en que hay un mensaje recibido, de inmediato recibe una notificación sobre ella con el delegado llama como MessageReceivedDelegate.
Resumen:

   Básicamente esto resuelve el problema de las notificaciones instantáneas requeridas por los diferentes programas críticos que se requieren en gran parte de nuestro día a día los sistemas empresariales. Una advertencia aquí es que el rendimiento de dichas aplicaciones deben ser estrechamente monitoreados y medidos para obtener los beneficios saludables de ActiveMQ. En mi caso, yo soy capaz de producir más de 1000 mensajes por minuto y mi carga sigue creciendo.
Consulte el programa de ejemplo adjunto por ti mismo. La muestra se construye utilizando VS 2010.



1 comentario: