Как да настроите тема на Azure Service Bus с NoMatchingSubscriptionException и абонамент за AuditTrail

Бих искал абонамент, който получава всички съобщения, изпратени до темата. И бих искал абонамент, който получава всички съобщения, които не отговарят на филтър на други съществуващи абонаменти. Мога да получа едното или другото, но не и двете едновременно.

В основни примери за създаване на тема с абонамент, абонаментът има правило по подразбиране с филтър 1=1. т.е. всички съобщения, изпратени до тази тема, ще отидат в този абонамент. Примерите показват, че този абонамент може да се използва като одитна пътека за този абонамент. Но ако спазвате това правило, тогава не е възможно да настроите EnableFilteringMessagesBeforePublishing с NoMatchingSubscriptionException

Възможен ли е следният сценарий?

PostTopic
- Subscription-MessageType-Known получава всички съобщения, където е зададено свойството MessageType. - Subscription-NoFilter-Matched получава всички съобщения, които не отговарят на никой друг филтър в тази тема - Subscription-Audit-Trail получава всички съобщения, изпратени до тази тема


person Paul Rowland    schedule 28.02.2014    source източник


Отговори (1)


Това не е възможно извън кутията. Единственият начин да направите това е като сте креативни с филтрите за себе си. И така, имате „познати филтри“ и след това сложен, обобщен филтър за съставяне, който съвпада само когато другите не съвпадат.

Друго нещо, което направихме в миналото (и където контролирахме страната на подателя!) беше да кешираме филтрите на темата, към която изпращахме. И първо да съпоставим нашето съобщение с тези филтри (от страна на клиента). Ако имахме съвпадение, знаехме, че имаме абонамент, ако не, можехме да направим нашата специфична логика с него. Това обаче е подходящо само ако можете да живеете с малките разходи за ефективност и ако контролирате изпращащата страна...

HTH

person Sam Vanhoutte    schedule 28.02.2014