Sdílet prostřednictvím


Scénáře směrování

I když je směrovací služba vysoce přizpůsobitelná, může být náročné navrhnout efektivní logiku směrování při vytváření nové konfigurace úplně od začátku. Existuje však několik běžných scénářů, které většina konfigurací směrovací služby sleduje. I když se tyto scénáře nemusí vztahovat přímo na vaši konkrétní konfiguraci, pochopení způsobu konfigurace směrovací služby pro zpracování těchto scénářů vám pomůže pochopit směrovací službu.

Obvyklé situace

Nejzásadnější použití služby Směrování je agregovat více cílových koncových bodů, aby se snížil počet koncových bodů vystavených klientským aplikacím, a pak pomocí filtrů zpráv směrovat každou zprávu do správného cíle. Zprávy mohou být směrovány na základě logických nebo fyzických požadavků na zpracování, jako je například typ zprávy, který musí být zpracován konkrétní službou, nebo na základě libovolných obchodních potřeb, jako je poskytování prioritního zpracování zpráv z konkrétního zdroje. V následující tabulce jsou uvedeny některé běžné scénáře a jejich výskyt:

Scénář Použít když
Správa verzí služby Potřebujete podporovat více verzí služby nebo v budoucnu můžete nasadit aktualizovanou službu.
Dělení dat služby Službu musíte rozdělit na více hostitelů.
Dynamická aktualizace Logiku směrování musíte dynamicky překonfigurovat za běhu, abyste mohli zpracovávat měnící se nasazení služeb.
Vícesměrového vysílání Musíte odeslat jednu zprávu do více koncových bodů.
Přemostění protokolu Zprávy přijímáte přes jeden přenosový protokol a cílový koncový bod používá jiný protokol.
Zpracování chyb Potřebujete zajistit odolnost proti výpadkům sítě a selháním komunikace.

Poznámka:

I když je řada uvedených scénářů specifická pro určité obchodní potřeby nebo požadavky na zpracování, plánování podpory dynamických aktualizací a využití zpracování chyb se často považuje za osvědčené postupy, protože umožňují upravit logiku směrování za běhu a zotavit se z přechodných selhání sítě a komunikace.

Verze služby

Při zavádění nové verze služby je nutné často udržovat předchozí verzi, dokud všichni klienti nepřešli na novou službu. To je zvlášť důležité, pokud je služba dlouhotrvající proces, který trvá dny, týdny nebo dokonce měsíce k dokončení. Obvykle to vyžaduje implementaci nové adresy koncového bodu pro novou službu při zachování původního koncového bodu pro předchozí verzi.

Pomocí směrovací služby můžete vystavit jeden koncový bod pro příjem zpráv z klientských aplikací a pak směrovat každou zprávu do správné verze služby na základě obsahu zprávy. Nejzásadnější implementace zahrnuje přidání vlastní hlavičky do zprávy, která označuje verzi služby, kterou má zpráva zpracovat. Služba směrování může použít XPathMessageFilter ke kontrole přítomnosti vlastní hlavičky a směrování zprávy do příslušného cílového koncového bodu.

Postup vytvoření konfigurace správy verzí služby najdete v tématu Postupy: Správa verzí služby.

Vytvoření oddílů dat služby

Při navrhování distribuovaného prostředí je často žádoucí rozložit zatížení zpracování do více počítačů, aby bylo možné zajistit vysokou dostupnost, snížit zatížení zpracování na jednotlivých počítačích nebo poskytnout vyhrazené prostředky pro určitou podmnožinu zpráv. I když směrovací služba nenahrazuje vyhrazené řešení vyrovnávání zatížení, jeho schopnost provádět směrování na základě obsahu lze použít ke směrování jinak podobných zpráv konkrétním cílům. Můžete mít například požadavek na zpracování zpráv od konkrétního klienta odděleně od zpráv přijatých od jiných klientů.

Postup vytvoření konfigurace dělení dat služby najdete v tématu Postupy: Dělení dat služby.

Dynamické směrování

Často je žádoucí upravit konfiguraci směrování tak, aby vyhovovala měnícím se obchodním potřebám, jako je přidání trasy do novější verze služby, změna kritérií směrování nebo změna cílového koncového bodu, konkrétní zprávu, do které filtruje trasy. Směrovací služba to umožňuje provést prostřednictvím RoutingExtension, což vám umožní poskytnout novou RoutingConfiguration během běhu. Nová konfigurace se projeví okamžitě, ale ovlivní pouze všechny nové relace zpracovávané službou směrování.

Postup implementace dynamického směrování najdete v tématu Postupy: Dynamická aktualizace.

Vícesměrového vysílání

Při směrování zpráv obvykle směrujete každou zprávu do jednoho konkrétního cílového koncového bodu. Někdy ale budete muset nasměrovat kopii zprávy do několika cílových koncových bodů. Pokud chcete provést směrování vícesměrového vysílání, musí být splněny následující podmínky:

  • Obrazec kanálu nesmí být odpověď na žádost (i když může být jednosměrná nebo duplexní), protože žádost-odpověď vyžaduje, aby klientská aplikace v reakci na žádost přijala pouze jednu odpověď.

  • Při vyhodnocování zprávy musí být vráceno více filtrů true .

Pokud jsou tyto podmínky splněny, obdrží každý cílový koncový bod přidružený k filtru, který vrátí hodnotu true, kopii zprávy.

Přemostění protokolu

Při směrování zpráv mezi různými protokoly SOAP používá služba Routing Service k převodu zprávy z jednoho protokolu na druhý rozhraní API WCF. K tomu dochází automaticky, když koncové body služby zveřejněné službou směrování používají jiný protokol než koncové body klienta, na které jsou zprávy směrovány. Toto chování je možné zakázat, pokud používané protokoly nejsou standardní; musíte však zadat vlastní přemostění kódu.

Zpracování chyb

V distribuovaném prostředí není neobvyklé narazit na přechodné chyby sítě nebo komunikace. Bez zprostředkující služby, jako je směrovací služba, nese zatížení zpracování takových selhání na klientskou aplikaci. Pokud klientská aplikace neobsahuje konkrétní logiku pro opakování v případě selhání sítě nebo komunikace a znalosti alternativních umístění, může uživatel narazit na scénáře, kdy se zpráva musí odeslat vícekrát, než bude cílová služba úspěšně zpracována. To může vést k nespokojení zákazníka s aplikací, protože může být vnímán jako nespolehlivý.

Služba směrování se pokusí tento scénář napravit tím, že poskytuje robustní možnosti zpracování chyb pro zprávy, které narazí na chyby související se sítí nebo komunikací. Když vytvoříte seznam možných cílových koncových bodů a přidružíte tento seznam ke každému filtru zpráv, odeberete jediný bod selhání tím, že budete mít pouze jeden možný cíl. V případě selhání se služba směrování pokusí doručit zprávu do dalšího koncového bodu v seznamu, dokud se zpráva nedoručí, nedojde k selhání komunikace nebo se nevyčerpají všechny koncové body.

Postup konfigurace zpracování chyb najdete v tématu Postupy: Zpracování chyb.

V tomto oddílu

Postupy: Správa verzí služby

Postupy: Vytvoření oddílů dat služby

Postupy: Dynamická aktualizace

Postupy: Zpracování chyb

Viz také