Veroudering van het AMQP-protocol voor het streamen van wijzigingsgebeurtenissen.

Dit artikel beschrijft de afschaffing van het AMQP-protocol voor de change event streaming (CES)-functie in SQL Server 2025, Azure SQL Database, Azure SQL Managed Instance en SQL Database in Microsoft Fabric.

Het afschaffen van het AMQP-protocol brengt een breaking change in de destination_type configuratiewaarde met zich mee bij het aanmaken van nieuwe streamgroepen. Het uitrolschema verschilt per product. Dit artikel legt uit hoe deze veranderingen nieuwe en bestaande streamgroepen beïnvloeden, de platformspecifieke verschillen, en hoe bestaande streamgroepen van het AMQP-protocol naar het Kafka-protocol kunnen migreren.

Wat is het AMQP-protocol?

Het AMQP-protocol ("AMQP") was een van de twee protocollen die CES ondersteunde bij het verzenden van wijzigingsgebeurtenissen naar Azure Event Hubs en Fabric Eventstream. Het was een service-to-service implementatie die events publiceerde naar Azure Event Hubs en Fabric Eventstream.

Voor deze breaking change specificeerde je het protocol in de configuratiewaarde bij het destination_typeconfigureren van een streamgroep, met behulp van een van de volgende ondersteunde waarden:

  • AzureEventHubsAMQP - AMQP-protocol
  • AzureEventHubsApacheKafka - Kafka-protocol

Na deze ingrijpende wijziging is AzureEventHubsde enige ondersteunde destination_type waarde voor nieuw aangemaakte streamgroepen op Azure SQL Database en SQL-database in Microsoft Fabric , dat het Kafka-protocol gebruikt. Azure SQL Managed Instance en SQL Server 2025 accepteren AzureEventHubsAMQP nog steeds en AzureEventHubsApacheKafka.

Vanaf 15 augustus 2026 moeten nieuw gemaakte streamgroepen op Azure SQL Database AzureEventHubs gebruiken als destination_type. Pogingen om een streamgroep te maken met eerdere waarden mislukken.

De consumenten van berichten die zijn gepubliceerd op Azure Event Hubs kunnen kiezen tussen het AMQP- of Kafka-protocol, ongeacht het protocol dat het bericht publiceert.

Platformondersteuning voor destination_type waarden

De toegestane destination_type waarden bij het aanmaken van een nieuwe streamgroep hangen af van het product en de versie:

Product Toegestane destination_type waarden Aantekeningen
Azure SQL Database AzureEventHubs De enige ondersteunde waarde. AzureEventHubsAMQP en AzureEventHubsApacheKafka worden niet geaccepteerd voor nieuwe streamgroepen.
Azure SQL Managed Instance AzureEventHubsAMQP, AzureEventHubsApacheKafka Deze waarden worden nog steeds geaccepteerd, maar zijn verouderd. Vermijd AzureEventHubsAMQP voor nieuwe streamgroepen.
SQL Server 2025 AzureEventHubsAMQP, AzureEventHubsApacheKafka Deze waarden worden nog steeds geaccepteerd, maar zijn verouderd. Vermijd AzureEventHubsAMQP voor nieuwe streamgroepen.
SQL-database in Microsoft Fabric AzureEventHubs De enige ondersteunde waarde.

Voor nieuwe streamgroepen, gebruik AzureEventHubs wanneer het platform het ondersteunt. Voor Azure SQL Managed Instance en SQL Server 2025, gebruik AzureEventHubsApacheKafka (Kafka-protocol). Vermijd AzureEventHubsAMQP voor nieuwe streamgroepen.

Hoe AMQP-geconfigureerde streamgroepen naar Kafka te migreren

Bestaande CES-groepen die zijn geconfigureerd met AzureEventHubsAMQP blijven berichten publiceren met behulp van het AMQP-protocol tot april 2027. Maak je bestaande met AMQP geconfigureerde streamgroepen zo snel mogelijk opnieuw in SQL Server 2025, Azure SQL Database, Azure SQL Managed Instance of een SQL-database in Microsoft Fabric met behulp van destination_type als de AzureEventHubs.

Gebruik de volgende query om alle geconfigureerde streamgroepen te identificeren:

exec sp_help_change_event_stream_groups

Sla de configuratiewaarden op voor de stroomgroepen die in de kolom streaming_dest_type staanAzureEventHubsAMQP. Je hebt deze waarden nodig bij het aanmaken van de nieuwe streamgroepen.

Gebruik de volgende query om de tabellen in elke stroomgroep te identificeren die je moet migreren:

exec sys.sp_help_change_event_stream_tables

Om een door AMQP geconfigureerde streamgroep naar Kafka te migreren, volgt u deze stappen:

  1. Maak een vervangende stream aan door gebruik te maken van de sys.sp_create_event_stream_group stored procedure. Specificeer AzureEventHubs als parameter destination_type .

    De destination_location parameter verwacht poort 9093, zoals het volgende voorbeeld: myEventHubsNamespace.servicebus.windows.net:9093/myEventHubsInstance.

    Het Kafka-protocol ondersteunt Microsoft Entra- of servicesleutelauthenticatie. SAS-authenticatie is nu niet beschikbaar voor CES.

  2. Verwijder elke tabel één voor één uit de oude stroomgroep door sys.sp_remove_object_from_event_stream_group te gebruiken:

    exec sys.sp_remove_object_from_event_stream_group @stream_group_name = '<old_stream_group_name>', @object_name = '<schema.table_name>'
    
  3. Voeg elke tabel die je uit de oude stroomgroep hebt verwijderd toe aan de nieuwe vervangende stroomgroep met behulp van sys.sp_add_object_to_event_stream_group:

    exec sys.sp_add_object_to_event_stream_group @stream_group_name = '<new_stream_group_name>', @object_name = '<schema.table_name>'
    
  4. Zodra je alle tabellen aan de nieuwe stroomgroep hebt toegevoegd, gebruik je sys.sp_drop_event_stream_group om de oude stroomgroep te verwijderen. Voor details, bekijk configure CES.

    exec sys.sp_drop_event_stream_group @stream_group_name = '<old_stream_group_name>'
    
  5. Controleer of de nieuwe streamgroep actief is, door sp_help_change_event_stream_groups uit te voeren en te bevestigen dat wordt weergegeven als AzureEventHubs.

Herhaal dit proces voor elke AMQP-geconfigureerde streamgroep in jouw omgeving.

Tabellen verplaatsen naar nieuwe stroomgroepen (Kafka)

CES scant en publiceert wijzigingen uit het logbestand zodra ze worden aangemaakt, maar publicatielatentie kan ervoor zorgen dat gebeurtenissen achterblijven. Wanneer je een tabel uit een streamgroep verwijdert, worden de wachtende wijzigingen in het logbestand niet gepubliceerd. Coördineer daarom zorgvuldig het verplaatsen van tabellen tussen stroomgroepen om te voorkomen dat gebeurtenissen worden gemist.

Voordat je een tabel uit een streamgroep verwijdert, controleer je de sys.dm_change_feed_log_scan_sessions DMV om ervoor te zorgen dat er geen nog te publiceren wijzigingen voor de tabellen in behandeling zijn. Als er wijzigingen in behandeling zijn, wacht dan tot het proces deze publiceert voordat je de tabel uit de oude streamgroep verwijdert en toevoegt aan de nieuwe streamgroep.

Om het risico op het missen van evenementen te beperken, gebruik een van de volgende methoden:

  • Verplaats de tabellen tussen streamgroepen tijdens een toegewijd onderhoudsvenster wanneer er geen schrijfacties naar de tabellen plaatsvinden.
  • Plaats een exclusieve vergrendeling op de tabellen die worden gestreamd tijdens een periode van weinig activiteit om nieuwe schrijfacties naar die tabellen te voorkomen. Geef de exclusieve lock pas los nadat de tabellen in de nieuwe streamgroep staan.

Tijdlijnen voor deprecatie

De afschaffing van het AMQP-protocol volgt deze twee tijdlijnen:

Type stroomgroep Ingangsdatum Impact
Nieuwe stroomgroepen op Azure SQL Database en SQL-database in Microsoft Fabric 15 augustus 2026 Nieuw aangemaakte stroomgroepen moeten AzureEventHubs als de destination_type opgeven. Pogingen om een van beide AzureEventHubsAMQP te gebruiken of AzureEventHubsApacheKafka falen.
Nieuwe streamgroepen op Azure SQL Managed Instance en SQL Server 2025 Toekomstige update (nog te bepalen) AzureEventHubsAMQP en AzureEventHubsApacheKafka worden nog steeds geaccepteerd maar worden vervallen. Een toekomstige update voegt de benodigde waarde toe.AzureEventHubs
Bestaande streamgroepen die het AMQP-protocol gebruiken april 2027 Streamgroepen die al zijn geconfigureerd met AzureEventHubsAMQP blijven normaal werken tot die tijd. Ze moeten worden gemigreerd om het Kafka-protocol te gebruiken voordat de ondersteuning voor het AMQP-protocol wordt verwijderd.

Consumenten van gepubliceerde berichten hoeven geen wijzigingen aan te brengen.

Invloed van waardevermindering

Deze sectie beschrijft de impact van het afschaffen van AMQP-protocol, zoals:

Impact op consumenten van gepubliceerde berichten

Het protocol dat wordt gebruikt om naar de bestemming te schrijven (hetzij Azure Event Hubs of Fabric Eventstream) is onafhankelijk van het protocol dat door berichtgebruikers wordt gebruikt. Daarom heeft de overstap van AMQP naar het Kafka-protocol voor het publiceren van berichten geen invloed op berichtgebruikers. Ze kunnen berichten blijven consumeren via beide protocollen.

Impact op bestaande AMQP-stroomgroepen

Bestaande streamgroepen die zijn geconfigureerd met AzureEventHubsAMQPblijven ongewijzigd werken met behulp van het AMQP-protocol. Er is geen directe onderbreking of configuratiewijziging nodig voor deze groepen. Je moet echter AMQP-geconfigureerde streamgroepen migreren om het Kafka-protocol te gebruiken voordat de ondersteuning voor het AMQP-protocol in april 2027 wordt verwijderd.

Impact op nieuw gevormde stroomgroepen

Vanaf 15 augustus 2026 is de enige toegestane destination_type waarde voor nieuw aangemaakte streamgroepen in Azure SQL Database en SQL-database in Microsoft Fabric .AzureEventHubs Pogingen om een stroomgroep te maken door gebruik te maken van een vorige waarde AzureEventHubsAMQP of AzureEventHubsApacheKafka, mislukken met de volgende foutmelding:

Msg 23626, Level 16, State 2, Line 481, An error occurred. The error/state returned was 23618/5: 'The value provided for the argument '@destination_type' is invalid. Allowed values: AzureEventHubs.'

Werk vóór deze datum alle automatiseringsscripts bij die streamgroepen aanmaken. De parameter destination_type moet AzureEventHubsAMQP gebruiken in plaats van AzureEventHubsApacheKafka of AzureEventHubs.

Het Kafka-protocol gebruikt Microsoft Entra of servicesleutelauthenticatie om verbinding te maken met Azure Event Hubs of Fabric Eventstream. Als je bestaande AMQP-streamgroepen SAS-authenticatie gebruiken, moet je overschakelen naar Microsoft Entra of servicekey-authenticatie bij het aanmaken van nieuwe streamgroepen. Zie Wijzigingsgebeurtenisstroom configureren voor details over hoe authenticatie voor streamgroepen te configureren.

Invloed op de netwerkconfiguratie van de uitgever

Afhankelijk van hoe je het netwerk aan de publicatiekant configureert, moet je mogelijk toegestane uitgaande poorten herconfigureren om Kafka's poort 9093 te gebruiken, in plaats van de 5671 - en 5672-poorten die door AMQP worden gebruikt. De uitgever moet uitgaand verkeer toestaan op poort 9093.

Laat poorten 5671 en 5672 alleen open als je bestaande streamgroepen hebt die nog steeds het AMQP-protocol gebruiken. Deze poorten zijn niet vereist voor nieuw aangemaakte streamgroepen die het Kafka-protocol gebruiken.

Voor meer informatie, zie Azure Event Hubs firewallconfiguratie per protocol.