Честно говоря, перечисленные требования не имеют большого смысла и показывают, что вам предстоит долгий путь в изучении MQ. Учитывая, что, если вы не хотите использовать MSMQ (возможно, самый простой в Windows - но с [IMO суровыми] ограничениями), то вам следует рассмотреть:
qpid - Достойное использование стандарта AMQP
zeromq - (лучший, IMO, технически, но также требует наибольшего знакомства с технологиями MQ)
Я бы тоже порекомендовал rabbitmq, но это сервер Erlang, и в последний раз я смотрел, что у него нет удобных библиотек C или C ++. Тем не менее, если вы делаете покупки в MQ, взгляните на это ...
[EDIT]
Я вернулся и перечитал ваши требования, а также некоторые ваши комментарии и подумал, что, возможно, клиентский MQ -> сервер - не ваш лучший вариант. Я мог бы, возможно, рассмотреть вопрос о том, чтобы позволить вашему клиенту -> серверным операциям быть HTTP POST или SOAP и разрешить конечной точке HTTP по очереди помещать сообщения в очередь на ваш бэкэнд MQ. IOW, абстрагируйте клиента MQ в архитектуру, над которой у вас больше контроля. Тогда ваш клиент C ++ будет просто HTTP (простой), а ваша служба HTTP (вероятно, C # / .Net после чтения ваших комментариев) может взаимодействовать с любым MQ-сервером по вашему выбору. Если ваша конечная точка HTTP будет порождать MQ-сообщения, она будет чертовски легкой и сможет масштабировать все традиционные методы балансировки нагрузки.