Я только недавно начал использовать Rabbit, но я считаю, что ваши требования могут быть удовлетворены довольно легко.1) Я реализовал определенные очереди для отдельных подписчиков, попросив подписчика объявить очередь (и связанный ключ маршрутизации), используя свое имя компьютера как часть имени очереди.Обмен соответствующим образом заботится о маршрутизации сообщений посредством ключей привязки / маршрутизации.В моем случае все подписчики получают копию одного и того же сообщения, опубликованного издателем, и произвольное количество подписчиков может объявить свои собственные очереди и начать получать сообщения.
2) Это в значительной степени стандартно.Если вы объявите очередь, то она останется в обмене, и если она будет установлена как длительная, то она выживет, перезапустится брокер.В любом случае ваш подписчик должен вызвать queue.Declare () при запуске, чтобы убедиться, что очередь существует, но с точки зрения отключения абонента, очередь останется.
3) Если очередь есть и подписчикпрослушивает эту очередь по имени, поэтому нет никаких причин, по которым она не может быть в состоянии восстановить соединение.
4) Я еще не особо углубился в аспекты безопасности Rabbit.Могут быть средства защиты отдельных очередей, хотя я позволю кому-то другому прокомментировать это, поскольку у меня нет полномочий.
5) См. (2).Сообщения также будут сохраняться при перезапуске, если будут установлены на длительное время, как они затем записываются на диск.Это влечет за собой снижение производительности, поскольку существует дисковый ввод-вывод, но это то, что вы ожидаете.
Так что, в принципе, да.Кролик может делать как ты просишь.С точки зрения «как», существуют различные степени «как».Мы с радостью постараемся предоставить вам ответы на уровне кода, если у вас возникнут проблемы с реализацией любого из вышеперечисленных.А пока, и если вы еще этого не сделали, я предлагаю прочитать документы: http://www.rabbitmq.com/documentation.html
HTH.Стив