Deprecazione del protocollo AMQP per lo streaming degli eventi di cambiamento

Questo articolo descrive la deprecazione del protocollo AMQP per la funzione di change event streaming (CES) in SQL Server 2025, database SQL di Azure, Istanza gestita di SQL di Azure e database SQL in Microsoft Fabric.

La deprecazione del protocollo AMQP introduce una modifica interrotta al destination_type valore di configurazione durante la creazione di nuovi gruppi di flusso. Il calendario di distribuzione varia a seconda del prodotto. Questo articolo spiega come questi cambiamenti influenzano i gruppi di flusso nuovi ed esistenti, le differenze specifiche per piattaforma e come migrare i gruppi di flusso esistenti dal protocollo AMQP al protocollo Kafka.

Cos'è il protocollo AMQP?

Il protocollo AMQP ("AMQP") era uno dei due protocolli supportati dal CES nell'invio degli eventi di cambiamento a Hub eventi di Azure e Fabric Eventstream. Era un'implementazione service-to-service che pubblicava eventi su Hub eventi di Azure e Fabric Eventstream.

Prima di questa modifica interrotta, hai specificato il protocollo nel destination_type valore di configurazione quando configuri un gruppo di flusso, usando uno dei seguenti valori supportati:

  • AzureEventHubsAMQP - Protocollo AMQP
  • AzureEventHubsApacheKafka - Protocollo Kafka

Dopo questo cambiamento rivoluzionario, l'unico valore supportato destination_type per i gruppi di flussi appena creati su database SQL di Azure e SQL Database in Microsoft Fabric è AzureEventHubs, che utilizza il protocollo Kafka. Istanza gestita di SQL di Azure e SQL Server 2025 accettano AzureEventHubsAMQP ancora e AzureEventHubsApacheKafka.

Dal 15 agosto 2026, i gruppi di flusso appena creati su database SQL di Azure devono utilizzare AzureEventHubs come destination_type. I tentativi di creare un gruppo di flusso usando valori precedenti falliscono.

I consumatori di messaggi pubblicati su Hub eventi di Azure possono scegliere tra il protocollo AMQP o Kafka, indipendentemente dal protocollo che pubblica il messaggio.

Supporto della piattaforma per i valori destination_type

I valori consentiti destination_type quando si crea un nuovo gruppo di flusso dipendono dal prodotto e dalla versione:

Prodotto Valori consentiti destination_type Note
Database SQL di Azure AzureEventHubs L'unico valore supportato. AzureEventHubsAMQP e AzureEventHubsApacheKafka non vengono accettati per i nuovi gruppi di stream.
Istanza gestita di database SQL di Azure AzureEventHubsAMQP, AzureEventHubsApacheKafka Questi valori sono ancora accettati ma sono obsoleti. Evitare AzureEventHubsAMQP per i nuovi gruppi di streaming.
SQL Server 2025 AzureEventHubsAMQP, AzureEventHubsApacheKafka Questi valori sono ancora accettati ma sono obsoleti. Evitare AzureEventHubsAMQP per i nuovi gruppi di streaming.
Database SQL di Microsoft Fabric AzureEventHubs L'unico valore supportato.

Per i nuovi gruppi di streaming, usa AzureEventHubs quando la piattaforma lo supporta. Per Istanza gestita di SQL di Azure e SQL Server 2025, usare AzureEventHubsApacheKafka (protocollo Kafka). Evitare AzureEventHubsAMQP per i nuovi gruppi di streaming.

Come migrare gruppi di flusso configurati AMQP a Kafka

I gruppi CES esistenti configurati AzureEventHubsAMQP con continuano a pubblicare messaggi utilizzando il protocollo AMQP fino ad aprile 2027. Ricrea i tuoi gruppi di stream configurati AMQP esistenti in SQL Server 2025, database SQL di Azure, Istanza gestita di SQL di Azure o database SQL in Microsoft Fabric usando AzureEventHubs il prima destination_type possibile.

Usa la seguente query per identificare tutti i gruppi di flussi configurati:

exec sp_help_change_event_stream_groups

Salva i valori di configurazione per i gruppi di flusso che hanno AzureEventHubsAMQP nella colonna streaming_dest_type . Questi valori sono necessari quando crei i nuovi gruppi di streaming.

Usa la seguente query per identificare le tabelle in ogni gruppo di flusso che devi migrare:

exec sys.sp_help_change_event_stream_tables

Per migrare un gruppo di flusso configurato da AMQP a Kafka, segui questi passaggi:

  1. Crea un flusso sostitutivo utilizzando la procedura sys.sp_create_event_stream_group memorizzata. Specifica AzureEventHubs come parametro destination_type .

    Il destination_location parametro prevede la porta 9093, come nel seguente esempio: myEventHubsNamespace.servicebus.windows.net:9093/myEventHubsInstance.

    Il protocollo Kafka supporta Microsoft Entra o autenticazione con chiave di servizio. L'autenticazione SAS ora non è più disponibile per il CES.

  2. Rimuovi ogni tabella, una per una, dal vecchio gruppo di flusso usando sys.sp_remove_object_from_event_stream_group:

    exec sys.sp_remove_object_from_event_stream_group @stream_group_name = '<old_stream_group_name>', @object_name = '<schema.table_name>'
    
  3. Aggiungi ogni tabella che hai rimosso dal vecchio gruppo di stream al nuovo gruppo di stream sostitutivo usando 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. Una volta aggiunte tutte le tabelle al nuovo gruppo di stream, usa sys.sp_drop_event_stream_group per rimuovere il vecchio gruppo di stream. Per dettagli, consulta configurare CES.

    exec sys.sp_drop_event_stream_group @stream_group_name = '<old_stream_group_name>'
    
  5. Verifica che il nuovo gruppo di stream sia attivo eseguendo sp_help_change_event_stream_groups e conferma che risulti AzureEventHubs come streaming_dest_type.

Ripeti questo processo per ogni gruppo di stream configurato AMQP nel tuo ambiente.

Spostamento delle tabelle verso nuovi gruppi di flussi (Kafka)

CES scansiona e pubblica le modifiche dal file di log nel momento in cui vengono create, ma la latenza di pubblicazione può causare rallentamenti agli eventi. Quando rimuovi una tabella da un gruppo di streaming, le modifiche in sospeso nel file di log non vengono pubblicate. Per questo motivo, coordina con cura le tabelle in movimento tra i gruppi di flussi per evitare eventi mancanti.

Prima di rimuovere una tabella da un gruppo di streaming, controlla il DMV sys.dm_change_feed_log_scan_sessions per assicurarti che non ci siano modifiche in sospeso da pubblicare sulle tabelle. Se ci sono modifiche in sospeso, aspetta che il processo le pubblichi prima di rimuovere la tabella dal vecchio gruppo di stream e aggiungerla al nuovo gruppo di streaming.

Per ridurre il rischio di eventi mancanti, si utilizza uno dei seguenti approcci:

  • Sposta le tabelle tra gruppi di flusso durante una finestra di manutenzione dedicata quando non ci sono scritture sulle tabelle.
  • Imposta un blocco esclusivo sulle tabelle che vengono trasmesse in streaming durante un periodo di bassa attività per prevenire nuove scritture su quelle tabelle. Rilascia il blocco esclusivo solo dopo che le tabelle sono nel nuovo gruppo di streaming.

Tempistiche di depreciazione

La depreciazione del protocollo AMQP segue queste due linee temporali:

Tipo di gruppo di flusso Data di validità Impatto
Nuovi gruppi di flussi su database SQL di Azure e SQL database in Microsoft Fabric 15 agosto 2026 I gruppi di flusso appena creati devono specificare AzureEventHubs come .destination_type Tentativi di usare uno dei due AzureEventHubsAMQP o AzureEventHubsApacheKafka falliscono.
Nuovi gruppi di stream su Istanza gestita di SQL di Azure e SQL Server 2025 Aggiornamento futuro (da definire) AzureEventHubsAMQP e AzureEventHubsApacheKafka sono ancora accettati ma deprecati. Un aggiornamento futuro aggiunge AzureEventHubs valore richiesto.
Gruppi di flusso esistenti che utilizzano il protocollo AMQP Aprile 2027 I gruppi di stream già configurati AzureEventHubsAMQP continuano a funzionare normalmente fino ad oggi. Devono essere migrati per utilizzare il protocollo Kafka prima che il supporto per il protocollo AMQP venga rimosso.

I consumatori di messaggi pubblicati non devono apportare alcuna modifica.

Impatto della deprecazione

Questa sezione descrive l'impatto della deprecazione del protocollo AMQP, ad esempio:

Impatto sui consumatori dei messaggi pubblicati

Il protocollo utilizzato per scrivere nella destinazione (Hub eventi di Azure o Fabric Eventstream) è indipendente dal protocollo utilizzato dai consumatori di messaggi. Pertanto, il passaggio dal protocollo AMQP al protocollo Kafka per la pubblicazione dei messaggi non influisce sui consumatori di messaggi. Possono continuare a consumare messaggi usando entrambi i protocolli.

Impatto sui gruppi di flussi AMQP esistenti

I gruppi di flusso esistenti configurati AzureEventHubsAMQPcontinuano a lavorare as-is utilizzando il protocollo AMQP. Non è necessaria alcuna interruzione immediata o cambio di configurazione per questi gruppi. Tuttavia, è necessario migrare i gruppi di flusso configurati AMQP per utilizzare il protocollo Kafka prima che il supporto al protocollo AMQP venga rimosso nell'aprile 2027.

Impatto sui nuovi gruppi di corsi d'acqua creati

A partire dal 15 agosto 2026, l'unico valore consentito destination_type per i gruppi di flussi appena creati su database SQL di Azure e SQL Database in Microsoft Fabric è AzureEventHubs. I tentativi di creare un gruppo di flusso usando un valore precedente o AzureEventHubsAMQPAzureEventHubsApacheKafka, falliscono con il seguente messaggio di errore:

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.'

Aggiorna eventuali script di automazione che creano gruppi di flusso prima di questa data. Il parametro destination_type deve usare AzureEventHubs invece di AzureEventHubsAMQP o AzureEventHubsApacheKafka.

Il protocollo Kafka utilizza Microsoft Entra o autenticazione con chiave di servizio per connettersi ad Hub eventi di Azure o Fabric Eventstream. Se i tuoi gruppi di stream AMQP esistenti usano l'autenticazione SAS, devi passare a Microsoft Entra o all'autenticazione della chiave di servizio quando crei nuovi gruppi di streaming. Vedi Configura modifica streaming eventi per dettagli su come configurare l'autenticazione per i gruppi di streaming.

Impatto sulla configurazione della rete degli editori

A seconda di come configuri la rete sul lato pubblicazione, potresti dover riconfigurare le porte in uscita consentite per usare la porta 9093 di Kafka, invece delle porte 5671 e 5672 usate da AMQP. L'editore deve consentire il traffico in uscita sulla porta 9093.

Lascia aperte le porte 5671 e 5672 solo se hai gruppi di stream esistenti che utilizzano ancora il protocollo AMQP. Queste porte non sono obbligatorie per i gruppi di stream appena creati che utilizzano il protocollo Kafka.

Per maggiori informazioni, consulta Hub eventi di Azure configurazione firewall per protocollo.