Descontinuação do protocolo AMQP para transmissão de eventos de alteração

Este artigo descreve a descontinuação do protocolo AMQP para a funcionalidade de transmissão de eventos de alteração (CES) no SQL Server 2025, Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL no Microsoft Fabric.

A descontinuação do protocolo AMQP introduz uma alteração incompatível no valor de configuração destination_type ao criar novos grupos de fluxos. O calendário de implementação varia consoante o produto. Este artigo explica como estas alterações afetam grupos de fluxos novos e existentes, as diferenças específicas da plataforma e como migrar grupos de fluxos existentes do protocolo AMQP para o protocolo Kafka.

O que é o protocolo AMQP?

O protocolo AMQP ("AMQP") era um dos dois protocolos que a CES suportava ao enviar eventos de alteração para o Hubs de Eventos do Azure e o Fabric Eventstream. Era uma implementação service-to-service que publicava eventos para Hubs de Eventos do Azure e Fabric Eventstream.

Antes desta alteração interruptiva, especificava o protocolo no valor de configuração destination_type ao configurar um grupo de fluxos, utilizando um dos seguintes valores suportados:

  • AzureEventHubsAMQP - Protocolo AMQP
  • AzureEventHubsApacheKafka - Protocolo Kafka

Após esta alteração, o único valor suportado destination_type para grupos de stream recém-criados no Base de Dados SQL do Azure e SQL Database no Microsoft Fabric é AzureEventHubs, que utiliza o protocolo Kafka. Azure SQL Managed Instance e SQL Server 2025 continuam a aceitar AzureEventHubsAMQP e AzureEventHubsApacheKafka.

A partir de 15 de agosto de 2026, os grupos de fluxos criados recentemente no Base de Dados SQL do Azure têm de usar AzureEventHubs como destination_type. As tentativas de criar um grupo de fluxo usando valores anteriores falham.

Os consumidores de mensagens publicadas nos Hubs de Eventos do Azure podem escolher entre o protocolo AMQP ou Kafka, independentemente do protocolo que publica a mensagem.

Suporte da plataforma para os valores de destination_type

Os valores permitidos destination_type ao criar um novo grupo de fluxo dependem do produto e da versão:

Produto Valores permitidos destination_type Notes
Base de Dados SQL do Azure AzureEventHubs O único valor suportado. AzureEventHubsAMQP e AzureEventHubsApacheKafka não são permitidos para novos grupos de fluxos.
Azure SQL Managed Instance AzureEventHubsAMQP, AzureEventHubsApacheKafka Estes valores ainda são aceites, mas estão obsoletos. Evite AzureEventHubsAMQP para os novos grupos de fluxos.
SQL Server 2025 AzureEventHubsAMQP, AzureEventHubsApacheKafka Estes valores ainda são aceites, mas estão obsoletos. Evite AzureEventHubsAMQP para os novos grupos de fluxos.
Base de dados SQL em Microsoft Fabric AzureEventHubs O único valor suportado.

Para novos grupos de streams, use AzureEventHubs quando a plataforma o suporta. Para Azure SQL Managed Instance e SQL Server 2025, use AzureEventHubsApacheKafka (protocolo Kafka). Evite AzureEventHubsAMQP para os novos grupos de fluxos.

Como migrar grupos de fluxo configurados pelo AMQP para o Kafka

Os grupos CES existentes configurados AzureEventHubsAMQP continuam a publicar mensagens utilizando o protocolo AMQP até abril de 2027. Recrie os seus grupos de fluxos existentes configurados com AMQP no SQL Server 2025, no Base de Dados SQL do Azure, no Azure SQL Managed Instance ou na base de dados SQL no Microsoft Fabric, utilizando AzureEventHubs como destination_type, o mais rapidamente possível.

Use a seguinte consulta para identificar todos os grupos de fluxos configurados:

exec sp_help_change_event_stream_groups

Guarde os valores de configuração para os grupos de fluxo que tenham AzureEventHubsAMQP na coluna streaming_dest_type . Precisas destes valores ao criar os novos grupos de streams.

Use a seguinte consulta para identificar as tabelas em cada grupo de fluxo que precisa de migrar:

exec sys.sp_help_change_event_stream_tables

Para migrar um grupo de fluxo configurado por AMQP para Kafka, siga estes passos:

  1. Crie um fluxo de substituição usando o procedimento sys.sp_create_event_stream_group armazenado. Especifique AzureEventHubs como parâmetro destination_type .

    O destination_location parâmetro espera a porta 9093, como o seguinte exemplo: myEventHubsNamespace.servicebus.windows.net:9093/myEventHubsInstance.

    O protocolo Kafka suporta Microsoft Entra ou autenticação por chave de serviço. A autenticação SAS já não está disponível para o CES.

  2. Remova cada tabela, uma a uma, do antigo grupo de stream 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. Adicione cada tabela que removeu do grupo de stream antigo ao novo grupo de stream de substituição 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. Depois de adicionares todas as tabelas ao novo grupo de streams, usa sys.sp_drop_event_stream_group para remover o grupo de stream antigo. Para mais detalhes, consulte a configuração CES.

    exec sys.sp_drop_event_stream_group @stream_group_name = '<old_stream_group_name>'
    
  5. Verifica se o novo grupo de stream está ativo correndo sp_help_change_event_stream_groups e confirmando que aparece AzureEventHubs como streaming_dest_type.

Repita este processo para cada grupo de stream configurado por AMQP no seu ambiente.

Mover tabelas para novos grupos de fluxos (Kafka)

O CES analisa e publica alterações do ficheiro de registo no momento em que são criadas, mas a latência de publicação pode causar atraso nos eventos. Quando removes uma tabela de um grupo de streams, as alterações pendentes no ficheiro de log não são publicadas. Por isso, coordene cuidadosamente a movimentação de tabelas entre grupos de fluxos para evitar perder eventos.

Antes de remover uma tabela de um grupo de streams, verifique o DMV sys.dm_change_feed_log_scan_sessions para garantir que não há alterações pendentes para publicar nas tabelas. Se houver alterações pendentes, espere que o processo as publique antes de remover a tabela do antigo grupo de fluxo e adicioná-la ao novo grupo de fluxos.

Para mitigar o risco de falhar eventos, utilize uma das seguintes abordagens:

  • Mova as tabelas entre grupos de fluxos durante uma janela de manutenção dedicada, quando não estiverem a ocorrer operações de escrita nas tabelas.
  • Coloque um bloqueio exclusivo nas tabelas que estão a ser transmitidas durante um período de baixa atividade para evitar novas escritas nessas tabelas. Liberte o bloqueio exclusivo apenas depois de as tabelas estarem no novo grupo de fluxos.

Cronologias de despreciação

A descontinuação do protocolo AMQP segue estas duas linhas temporais:

Tipo de grupo de fluxo Data efetiva Impacto
Novos grupos de fluxo no Base de Dados SQL do Azure e na base de dados SQL no Microsoft Fabric 15 de agosto de 2026 Os novos grupos de fluxo criados devem especificar AzureEventHubs como o destination_type. Tentativas de usar qualquer um AzureEventHubsAMQP ou AzureEventHubsApacheKafka falham.
Novos grupos de stream no Azure SQL Managed Instance e SQL Server 2025 Atualização futura (por definir) AzureEventHubsAMQP e AzureEventHubsApacheKafka ainda são aceites, mas desvalorizados. Uma atualização futura acrescenta AzureEventHubs como valor necessário.
Grupos de fluxo existentes que utilizam o protocolo AMQP Abril de 2027 Os grupos de fluxos já configurados com AzureEventHubsAMQP continuam a funcionar normalmente até esta data. Devem ser migrados para usar o protocolo Kafka antes de ser removido o suporte ao protocolo AMQP.

Os consumidores de mensagens publicadas não precisam de fazer quaisquer alterações.

Impacto da depreciação

Esta secção descreve o impacto da descontinuação do protocolo AMQP, tais como:

Impacto nos consumidores de mensagens publicadas

O protocolo usado para escrever no destino (seja Hubs de Eventos do Azure ou Fabric Eventstream) é independente do protocolo usado pelos consumidores de mensagens. Portanto, a mudança do protocolo AMQP para o protocolo Kafka para publicação de mensagens não afeta os consumidores de mensagens. Podem continuar a consumir mensagens usando qualquer um dos protocolos.

Impacto nos grupos de fluxos AMQP existentes

Os grupos de fluxos existentes configurados com AzureEventHubsAMQPcontinuam a funcionar tal como estão utilizando o protocolo AMQP. Não é necessária interrupção imediata ou alteração de configuração para estes grupos. No entanto, deve migrar grupos de fluxo configurados com AMQP para usar o protocolo Kafka antes de o suporte ao protocolo AMQP ser removido em abril de 2027.

Impacto nos novos grupos de cursos de água criados

A partir de 15 de agosto de 2026, o único valor destination_type permitido para grupos de fluxos criados recentemente no Base de Dados SQL do Azure e para a base de dados SQL no Microsoft Fabric é AzureEventHubs. As tentativas de criar um grupo de fluxos utilizando o valor anterior, AzureEventHubsAMQP ou AzureEventHubsApacheKafka, resultam na seguinte mensagem de erro:

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

Atualize quaisquer scripts de automação que criem grupos de stream antes desta data. O destination_type parâmetro deve usar AzureEventHubs em vez de AzureEventHubsAMQP ou AzureEventHubsApacheKafka.

O protocolo Kafka utiliza Microsoft Entra ou autenticação por chave de serviço para se ligar ao Hubs de Eventos do Azure ou ao Fabric Eventstream. Se os seus grupos de stream AMQP existentes usarem autenticação SAS, precisa de mudar para Microsoft Entra ou autenticação por chave de serviço ao criar novos grupos de streams. Consulte Configurar alterar o streaming de eventos para detalhes sobre como configurar a autenticação para grupos de streams.

Impacto na configuração da rede de editores

Dependendo de como configuras a rede no lado da publicação, podes precisar de reconfigurar as portas de saída permitidas para usar a porta 9093 do Kafka, em vez das portas 5671 e 5672 usadas pela AMQP. O editor deve permitir o tráfego de saída na porta 9093.

Só deixa as portas 5671 e 5672 abertas se tiveres grupos de stream que ainda usam o protocolo AMQP. Estas portas não são necessárias para grupos de stream recém-criados que usam o protocolo Kafka.

Para mais informações, veja configuração do firewall do Hubs de Eventos do Azure por protocolo.