gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
van toepassing op:SQL Server
Azure SQL Managed Instance
SQL Server Service Broker biedt systeemeigen ondersteuning voor berichten en wachtrijen in de SQL Server Database Engine en Azure SQL Managed Instance. Ontwikkelaars kunnen eenvoudig geavanceerde toepassingen maken die gebruikmaken van de database-engineonderdelen om te communiceren tussen verschillende databases en gedistribueerde en betrouwbare toepassingen bouwen.
Gebruik Service Broker-onderdelen om systeemeigen asynchrone berichtverwerkingsfuncties in de database te implementeren. Toepassingsontwikkelaars die Service Broker gebruiken, kunnen gegevensworkloads over verschillende databases distribueren zonder complexe communicatie en interne berichten te programmeren. Service Broker vermindert het ontwikkelen en testen van werk omdat Service Broker de communicatiepaden verwerkt in de context van een gesprek. Het verbetert ook de prestaties. Front-end databases die websites ondersteunen, kunnen bijvoorbeeld informatie vastleggen en intensieve processen in de wachtrij zetten in back-end databases. Service Broker zorgt ervoor dat alle taken worden beheerd in de context van transacties om betrouwbaarheid en technische consistentie te garanderen.
Service Broker is een framework voor berichtbezorging waarmee u systeemeigen in-databaseservicegerichte toepassingen kunt maken. In tegenstelling tot klassieke queryverwerkingsfuncties die voortdurend gegevens uit de tabellen lezen en verwerken tijdens de levenscyclus van de query, hebt u in servicegerichte toepassing databaseservices die de berichten uitwisselen. Elke service heeft een wachtrij waarin de berichten worden geplaatst totdat ze worden verwerkt.
De berichten in de wachtrijen kunnen worden opgehaald met behulp van de opdracht Transact-SQL RECEIVE
of door de activeringsprocedure die wordt aangeroepen wanneer het bericht in de wachtrij binnenkomt.
Databaseservices worden gemaakt met behulp van de CREATE SERVICE Transact SQL-instructie. De service kan worden gekoppeld aan de berichtenwachtrij die wordt gemaakt met behulp van de instructie CREATE QUEUE:
CREATE QUEUE dbo.ExpenseQueue;
GO
CREATE SERVICE ExpensesService
ON QUEUE dbo.ExpenseQueue;
Berichten worden verzonden in het gesprek tussen de services met behulp van de instructie SEND Transact-SQL. Een gesprek is een communicatiekanaal dat tot stand is gebracht tussen de services met behulp van de BEGIN DIALOG
Transact-SQL-verklaring.
DECLARE @dialog_handle UNIQUEIDENTIFIER;
BEGIN DIALOG @dialog_handle
FROM SERVICE ExpensesClient
TO SERVICE 'ExpensesService';
SEND ON CONVERSATION @dialog_handle (@Message) ;
Het bericht wordt verzonden naar de ExpensesService
en in dbo.ExpenseQueue
geplaatst. Omdat er geen activeringsprocedure aan deze wachtrij is gekoppeld, blijft het bericht in de wachtrij totdat iemand het leest.
De berichten die in de wachtrij worden geplaatst, kunnen worden geselecteerd met behulp van een standaardquery SELECT
. De instructie SELECT
wijzigt de wachtrij niet en verwijdert de berichten. Als u de berichten uit de wachtrij wilt lezen en ophalen, kunt u de instructie RECEIVE Transact-SQL gebruiken.
RECEIVE conversation_handle, message_type_name, message_body
FROM ExpenseQueue;
Zodra u alle berichten uit de wachtrij hebt verwerkt, moet u het gesprek sluiten met behulp van de instructie END CONVERSATION Transact-SQL.
De referentiedocumentatie voor Service Broker is opgenomen in de SQL Server-documentatie. Deze referentiedocumentatie bevat de volgende secties:
DDL-instructies (Data Definition Language) (Transact-SQL) voor CREATE-, ALTER- en DROP-instructies
Service Broker-gerelateerde dynamische beheerweergaven (Transact-SQL)
Zie de eerder gepubliceerde documentatie voor Service Broker-concepten en voor ontwikkelings- en beheertaken. Deze documentatie wordt niet gereproduceerd in de SQL Server-documentatie vanwege het kleine aantal wijzigingen in Service Broker in recente versies van SQL Server.
Berichtuitwisseling met de servicebroker tussen exemplaren van Azure SQL Managed Instance en tussen SQL Server en Azure SQL Managed Instance is momenteel in openbare preview beschikbaar.
CREATE ROUTE
: de opgegeven poort moet 4022 zijn. Zie ROUTE AANMAKEN.ALTER ROUTE
: de opgegeven poort moet 4022 zijn. Zie ALTER ROUTE.Transportbeveiliging wordt ondersteund, dialoogbeveiliging niet.
CREATE REMOTE SERVICE BINDING
wordt niet ondersteund.Service Broker is standaard ingeschakeld en kan niet worden uitgeschakeld. De volgende ALTER DATABASE-opties worden niet ondersteund:
ENABLE_BROKER
DISABLE_BROKER
Er zijn geen belangrijke wijzigingen geïntroduceerd in SQL Server 2019 (15.x). De volgende wijzigingen zijn geïntroduceerd in SQL Server 2012 (11.x).
De syntaxis van de SEND (Transact-SQL) instructie is uitgebreid om multicast mogelijk te maken door meerdere gespreksgrepen te ondersteunen.
Wachtrijen hebben een nieuwe kolom, message_enqueue_time, die laat zien hoe lang een bericht in de wachtrij staat.
De CREATE QUEUE (Transact-SQL) en ALTER QUEUE (Transact-SQL) instructies hebben nu de mogelijkheid om de verwerking van gifberichten in of uit te schakelen door de component toe te voegen, POISON_MESSAGE_HANDLING (STATUS = ON | OFF)
. De catalogusweergave sys.service_queues bevat nu de kolom is_poison_message_handling_enabled om aan te geven of gifbericht is ingeschakeld of uitgeschakeld.
Zie Service Broker met AlwaysOn-beschikbaarheidsgroepen (SQL Server)voor meer informatie.
Het meest voorkomende gebruik van Service Broker is voor gebeurtenismeldingen. Leer hoe te het implementeren van gebeurtenismeldingen, het configureren van dialoogvensterbeveiligingof meer informatie te krijgen.
gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertTraining
Module
Communicatiewerkstromen op basis van berichten implementeren met Azure Service Bus - Training
Ontdek hoe u code schrijft in .NET-toepassingen met behulp van Azure Service Bus voor communicatie die grote vraag, lage bandbreedte en hardwarefouten kan verwerken.
Certificering
Microsoft Certified: Azure Database Administrator Associate - Certifications
Beheer een SQL Server-databaseinfrastructuur voor cloud-, on-premises en hybride relationele databases met behulp van de relationele Microsoft PaaS-databaseaanbiedingen.
Documentatie
Prestaties (Service Broker) - SQL Server
De prestaties van een Service Broker-toepassing worden over het algemeen bepaald door twee factoren.