任何方式基于标签路由MSMQ消息?

我有一个MSMQ发送器(产生约10k信息/秒)和一个MSMQ接收器(2k信息/秒)的系统。 生成和发送消息很快,阅读和处理速度很慢。 因此,我想把一个负载平衡器,并使用一些接收器。 目前消息是XML格式的,一旦我理清负载平衡,我打算移动到二进制格式化。

问题:具有特定标签的消息(或者如果可能的话,内部XML标签值)应当始终与完全相同的接收者。 服务器宕机的情况超出了这个问题的范围(如果你知道如何处理这个问题,奖金)。

我使用HAProxy进行其他轮询MSMQ负载平衡,并且在TCP模式下工作正常。 我想知道是否可以在这种情况下重用它。

问题:如何configurationHAProxy来根据消息中的标签或XML格式的标签值来负载平衡MSMQ消息。 具有相同标签的消息必须送到常量接收器。 还有其他的select吗?

样品:

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

或类似于RabbitMQ为“直接交换”

RabbitMQ LB

图片来源: pubs.vmware.com