¿Cualquier manera de enrutar los posts de MSMQ basados ​​en la label?

Tengo un sistema con un remitente de MSMQ (genera cerca de 10k posts / seg) y un receptor de MSMQ (2k posts / seg). Generar y enviar posts es rápido, la lectura y el procesamiento son lentos. Por lo tanto, quiero poner un equilibrador de carga y utilizar unos pocos receptores. En el momento en que los posts están en formatting XML, una vez que resuelva el equilibrio de carga planeo pasar al formatting binary.

Problema: el post con una label en particular (o si es posible un valor de label XML interna) debe ir exactamente al mismo receptor todo el time. Situación cuando el server está inactivo está fuera de scope para esta pregunta (bonificación si sabe cómo manejar esto).

Utilizo HAProxy para otro equilibrio de carga de MSMQ round robin, y que funciona bien en modo TCP. Me preguntaba si puedo reutilizarlo para esta situación.

Pregunta: cómo configurar HAProxy para cargar el balance de posts MSMQ basado en la label o el valor de label con formatting XML dentro de un post. Los posts con la misma label deben ir al receptor constante. ¿Hay otras alternativas?

Muestra:

message [Label="server1"] [XML BODY ...] => LB => server1 message [Label="server2"] [XML BODY ...] => LB => server2 

o similar a lo que hace RabbitMQ para "intercambio directo"

RabbitMQ LB

Fuente de la image: pubs.vmware.com

  • Haproxy 1.5x recarga la configuración sin terminar la capa 7 sesiones?
  • ¿Los proxies inversos HTTP suelen habilitar HTTP Keep-Alive en el lado del cliente de la conexión proxy y no en el lado del servidor?
  • Balance de carga de JBoss7 con mod_proxy_balancer - la session no funciona
  • ¿Cómo hacer Nginx fire 504 inmediatamente si el server no está disponible?
  • mod_ajp_proxy configuraciones y stickiness session
  • Pfsense: balanceo de carga entrante https con connection pegajosa
  • Sesiones pegajosas con el equilibrador de carga de Apache para Socket.io 1.0
  • nginx sesiones pegajosas / ip_hash con Socket.io
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.