Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Event Hubs é uma plataforma de streaming de big data e serviço de ingestão de eventos da Microsoft. Para mais informações sobre os Centros de Eventos, veja: link.
Use a biblioteca github.com/Azure/azure-sdk-for-cpp/sdk/eventhubs cliente na sua candidatura para:
- Envie eventos para um hub de eventos.
- Consume eventos a partir de um centro de eventos.
Ligações principais:
- Código fonte
- de documentação de referência da API
- Documentação do produto
- Amostras
Como Começar
Instale o pacote
Instale o pacote cliente Azure Event Hubs para C++ com vcpkg:
vcpkg install azure-messaging-eventhubs-cpp
Pré-requisitos
- Um compilador C++ com suporte para C++14
- Uma assinatura do Azure
- Um espaço de nomes Event Hub.
- Um centro de eventos. Pode criar um hub de eventos no namespace dos seus Event Hubs usando o Azure Portal ou a Azure CLI.
Crie um namespace usando o Azure CLI
Iniciar sessão na linha de código:
az login
Crie um grupo de recursos:
az group create --name <your group name> --location <your location> --subscription <your subscription>
Isto deverá gerar algo como:
{
"id": "/subscriptions/<your subscription ID>/resourceGroups/<your group name>",
"location": "<your location>",
"managedBy": null,
"name": "<yourgroup name>",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Crie um espaço de nomes EventHubs:
az eventhubs namespace create --resource-group <your group name> --name <your namespace name> --sku Standard --subscription <your subscription>
Isto deverá gerar algo como:
{
"createdAt": "2023-08-10T18:41:54.19Z",
"disableLocalAuth": false,
"id": "/subscriptions/<your subscription ID>/resourceGroups/<your group name>/providers/Microsoft.EventHub/namespaces/<your namespace>",
"isAutoInflateEnabled": false,
"kafkaEnabled": true,
"location": "West US",
"maximumThroughputUnits": 0,
"metricId": "REDACTED",
"minimumTlsVersion": "1.2",
"name": "<your namespace name>",
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "<your resource group>",
"serviceBusEndpoint": "https://<your namespace name>.servicebus.windows.net:443/",
"sku": {
"capacity": 1,
"name": "Standard",
"tier": "Standard"
},
"status": "Active",
"tags": {},
"type": "Microsoft.EventHub/Namespaces",
"updatedAt": "2023-08-10T18:42:41.343Z",
"zoneRedundant": false
}
Crie um EventHub:
az eventhubs eventhub create --resource-group <your resource group> --namespace-name <your namespace name> --name <your eventhub name>
Isso deverá produzir algo como:
{
"createdAt": "2023-08-10T21:02:07.62Z",
"id": "/subscriptions/<your subscription>/resourceGroups/<your group name>/providers/Microsoft.EventHub/namespaces/<your namespace name>/eventhubs/<your eventhub name>",
"location": "westus",
"messageRetentionInDays": 7,
"name": "<your eventhub name>",
"partitionCount": 4,
"partitionIds": [
"0",
"1",
"2",
"3"
],
"resourceGroup": "<your group name>",
"retentionDescription": {
"cleanupPolicy": "Delete",
"retentionTimeInHours": 168
},
"status": "Active",
"type": "Microsoft.EventHub/namespaces/eventhubs",
"updatedAt": "2023-08-10T21:02:16.29Z"
}
Autenticar o cliente
Os clientes do Event Hub são criados usando uma credencial do pacote Azure Identity, como o DefaultAzureCredential. Alternativamente, pode criar um cliente usando uma cadeia de ligação.
Usando uma entidade de serviço
Usando uma string de conexão
Conceitos-chave
Um namespace de Hub de Eventos pode ter múltiplos hubs de eventos. Cada hub de eventos, por sua vez, contém partições que armazenam eventos.
Os eventos são publicados num centro de eventos através de um editor de eventos. Neste pacote, o editor do evento é o ProducerClient
Os eventos podem ser consumidos a partir de um hub de eventos através de um consumidor de eventos. Neste pacote existem dois tipos para consumir eventos:
- O consumidor básico de eventos é o PartitionClient, no ConsumerClient. Este consumidor é útil se já souber de que partições quer receber.
- Um consumidor distribuído de eventos, que utiliza Azure Blobs para checkpointing e coordenação. Isto é implementado no Processador. O Processador é útil quando se quer que a atribuição da partição seja escolhida dinamicamente e equilibrada com outras instâncias do Processador.
Mais informações sobre as funcionalidades e terminologia do Event Hubs podem ser encontradas aqui: link
Examples
Exemplos para vários cenários podem ser encontrados no azure.github.io ou no diretório de exemplos do nosso repositório GitHub para EventHubs.
Enviar eventos
O exemplo seguinte mostra como enviar eventos para um hub de eventos:
#include <azure/messaging/eventhubs.hpp>
// Your Event Hubs namespace connection string is available in the Azure portal.
std::string connectionString = "<connection_string>";
std::string eventHubName = "<event_hub_name>";
Azure::Messaging::EventHubs::EventDataBatchOptions batchOptions;
batchOptions.PartitionId = "1";
Azure::Messaging::EventHubs::EventDataBatch eventBatch(batchOptions);
Azure::Messaging::EventHubs::Models::EventData message;
message.Body.Data = {'H', 'e', 'l', 'l', 'o', '2'};
eventBatch.AddMessage(message);
Azure::Messaging::EventHubs::ProducerClientOptions producerOptions;
producerOptions.Name = "sender-link";
producerOptions.ApplicationID = "some";
auto client = Azure::Messaging::EventHubs::ProducerClient(
connectionString, eventHubName, producerOptions);
auto result = client.SendEventDataBatch(eventBatch);
Receber eventos
O exemplo seguinte mostra como receber eventos da partição 1 num hub de eventos:
#include <azure/messaging/eventhubs.hpp>
// Your Event Hubs namespace connection string is available in the Azure portal.
std::string connectionString = "<connection_string>";
std::string eventHubName = "<event_hub_name>";
auto client = Azure::Messaging::EventHubs::ConsumerClient(
connectionString, eventHubName);
Azure::Messaging::EventHubs::PartitionClient partitionClient
= client.CreatePartitionClient("1");
auto events = partitionClient.ReceiveEvents(1);
Solução de problemas
Exploração Florestal
O cliente SDK EventHubs utiliza a funcionalidade de mensagens de registo do Azure SDK para permitir diagnósticos.
Contributing
Para mais detalhes sobre como contribuir para este repositório, consulte o guia de contribuições.
Este projeto acolhe contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Colaborador (CLA) declarando que você tem o direito de, e realmente concede, os direitos de usar sua contribuição. Para mais detalhes, visite https://cla.microsoft.com.
Quando você envia uma solicitação pull, um CLA-bot determinará automaticamente se você precisa fornecer um CLA e decorar o PR adequadamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.
Este projeto adotou o Código de Conduta Open Source da Microsoft.
Para obter mais informações, consulte o de perguntas frequentes sobre o Código de Conduta
Links Adicionais Úteis para Colaboradores
Muitas pessoas em todo o mundo ajudaram a tornar este projeto melhor. Vai querer espreitar:
- Quais são algumas boas primeiras edições para novos colaboradores do repositório?
- Como construir e testar a sua mudança
- Como pode fazer uma mudança acontecer!
- Perguntas Frequentes (FAQ) e Tópicos Conceptuais na wiki detalhada do Azure SDK for C++.
Reportar problemas de segurança e bugs de segurança
Problemas de segurança e bugs devem ser reportados de forma privada, por email, ao Centro de Resposta de Segurança da Microsoft (MSRC secure@microsoft.com). Deverá receber uma resposta no prazo de 24 horas. Se, por algum motivo, não o fizer, por favor contacte-nos por e-mail para garantir que recebemos a sua mensagem original. Mais informações, incluindo a chave MSRC PGP, podem ser encontradas no Security TechCenter.
Licença
O Azure SDK para C++ está licenciado sob a licença MIT .