Identifiera Service Bus-köer, ämnen och prenumerationer
De meddelandeentiteter som utgör kärnan i meddelandefunktionerna i Service Bus är köer, ämnen och prenumerationer samt regler/åtgärder.
Köer
Köer erbjuder FIFO (First in, first out)-leverans av meddelanden till en eller flera konkurrerande konsumenter. Mottagarna tar alltså vanligtvis emot och bearbetar meddelanden i den ordning de lades till i kön. Och bara en meddelandekonsument tar emot och bearbetar varje meddelande. Eftersom meddelanden lagras korrekt i kön behöver producenter (avsändare) och konsumenter (mottagare) inte bearbeta meddelanden samtidigt.
En relaterad fördel är belastningsutjämning, som gör det möjligt för producenter och konsumenter att skicka och ta emot meddelanden i olika takt. I många program varierar systembelastningen över tid. Bearbetningstiden som krävs för varje arbetsenhet är dock vanligtvis konstant. Att förmedla meddelandeproducenter och konsumenter med en kö innebär att det förbrukande programmet bara behöver kunna hantera genomsnittlig belastning i stället för hög belastning.
Att använda köer till mellanliggande mellan meddelandeproducenter och konsumenter ger en inbyggd lös koppling mellan komponenterna. Eftersom producenter och konsumenter inte känner till varandra kan en konsument uppgraderas utan att det påverkar producenten.
Du kan skapa köer med hjälp av mallarna Azure Portal, PowerShell, CLI eller Resource Manager. Skicka och ta sedan emot meddelanden med klienter skrivna i C#, Java, Python och JavaScript.
Ta emot lägen
Du kan ange två olika lägen där Service Bus tar emot meddelanden: Ta emot och ta bort eller Granska lås.
Ta emot och ta bort
När Service Bus i det här läget tar emot begäran från konsumenten markerar det meddelandet som förbrukat och returnerar det till konsumentprogrammet. Det här läget är den enklaste modellen. Det fungerar bäst för scenarier där programmet kan tolerera att ett meddelande inte bearbetas om ett fel inträffar. Tänk dig till exempel ett scenario där konsumenten utfärdar mottagningsbegäran och sedan kraschar innan den bearbetas. När Service Bus markerar meddelandet som förbrukat börjar programmet använda meddelanden vid omstart. Det missar meddelandet som det förbrukade före kraschen.
Tittlås
I det här läget har mottagningsåtgärden två faser. Tack vare det är det möjligt att stöda program som inte tolererar att ett meddelande saknas.
Hittar nästa meddelande som ska användas, låser det för att förhindra att andra konsumenter tar emot det och returnerar sedan meddelandet till programmet.
När programmet har bearbetat meddelandet begär det att Service Bus-tjänsten slutför den andra fasen av mottagningsprocessen. Sedan markerar tjänsten meddelandet som förbrukat.
Om programmet av någon anledning inte kan bearbeta meddelandet kan det begära att Service Bus-tjänsten avger meddelandet. Service Bus låser upp meddelandet och gör det tillgängligt att tas emot igen, antingen av samma konsument eller av en annan konkurrerande konsument. För det andra finns det en tidsgräns som är associerad med låset. Om programmet misslyckas med att bearbeta meddelandet innan tidsgränsen för låsning går ut, kommer Service Bus att låsa upp meddelandet och göra det tillgängligt så att det kan tas emot igen.
Ämnen och prenumerationer
Med en kö kan ett meddelande av en enskild konsument bearbetas. Till skillnad från köer ger ämnen och prenumerationer en en-till-många-form av kommunikation i ett publicerings- och prenumerationsmönster . Det är användbart för skalning till ett stort antal mottagare. Varje publicerat meddelande görs tillgängligt för varje prenumeration som har registrerats med ämnet. Publisher skickar ett meddelande till ett ämne och en eller flera prenumeranter får en kopia av meddelandet.
Prenumerationerna kan använda fler filter för att begränsa de meddelanden som de vill ta emot. Utgivare skickar meddelanden till ett ämne på samma sätt som de skickar meddelanden till en kö. Men konsumenterna får inte meddelanden direkt från ämnet. I stället får konsumenter meddelanden från prenumerationer i ämnet. En ämnesprenumeration liknar en virtuell kö som tar emot kopior av de meddelanden som skickas till ämnet. Konsumenter får meddelanden från en prenumeration på samma sätt som de tar emot meddelanden från en kö.
Funktionen för meddelandesändning i en kö mappar direkt till ett ämne och dess funktioner för meddelandemottagande mappar till en prenumeration. Den här funktionen innebär bland annat att prenumerationer stöder samma mönster som beskrevs tidigare i det här avsnittet om köer: konkurrerande konsument, tidsmässig frikoppling, belastningsutjämning och belastningsutjämning.
Regler och åtgärder
I många scenarier måste meddelanden som har specifika egenskaper bearbetas på olika sätt. Om du vill aktivera den här bearbetningen kan du konfigurera prenumerationer för att hitta meddelanden som har önskade egenskaper och sedan utföra vissa ändringar av dessa egenskaper. Även om Service Bus-prenumerationer ser alla meddelanden som skickas till ämnet kan du bara kopiera en delmängd av dessa meddelanden till den virtuella prenumerationskön. Den här filtreringen utförs med hjälp av prenumerationsfilter. Sådana ändringar kallas filteråtgärder. När en prenumeration skapas kan du ange ett filteruttryck som fungerar på meddelandets egenskaper. Egenskaperna kan vara både systemegenskaperna (till exempel Etikett) och anpassade programegenskaper (till exempel StoreName.) SQL-filteruttrycket är valfritt i det här fallet. Utan ett SQL-filteruttryck utförs alla filteråtgärder som definierats för en prenumeration på alla meddelanden för den prenumerationen.