Позвольте мне объяснить несколько вещей на примере, прежде чем вы полностью это поймете.Я работал над служебной шиной Azure, поэтому я объясню в этом контексте.
В Pub / sub у вас есть одна тема и возможна множественная подписка.Допустим, у нас есть тема «Шоппинг-тема».У нас есть 2 подписки, которые называются «Оплата-подписка», «Корзина-подписка».Сейчас мы публикуем сообщение «Платеж обработан» по теме.Подписка выбирается этим сообщением по усмотрению подписчика, и причина в том, что подписка должна указывать, какие сообщения она хочет выбрать.
В служебной шине Azure у нас есть нечто, называемое правилом (метка сообщения).Правило по умолчанию заключается в том, что подписка прослушивает все сообщения, но мы можем переписать это поведение и сказать, что меня интересует только конкретное сообщение.В вышеприведенном случае добавлено правило «Payment-Subscription» для прослушивания сообщения «Payment-processing», поэтому сообщение добавляется в подписку «Payment-Subscription» для обработки.Хотя «Корзина-подписка» также подписана на ту же тему, но игнорирует это сообщение, поэтому оно не добавляется в свою подписку.Таким образом, любая предполагаемая подписка может прослушивать определенные сообщения, не обязательно все из них.
Теперь мы обсудим индивидуальную подписку.Допустим, у нас есть сообщение, добавленное в «Payment-Subscription».Эта подписка имеет 2 экземпляра / процесса, которые готовы обработать сообщение «Платеж обработан».Первый процесс, который выберет сообщение, обработает сообщение и удалит его из подписки.