Escolher uma tecnologia de ingestão de mensagens em tempo real no AzureChoosing a real-time message ingestion technology in Azure

Processamento em tempo real lida com fluxos de dados que são capturados em tempo real e processados com uma latência mínima.Real time processing deals with streams of data that are captured in real-time and processed with minimal latency. Muitas soluções de processamento em tempo real precisam de um arquivo de ingestão de mensagens para atuar como uma memória intermédia de mensagens e para suportar o processamento de escalamento horizontal, entrega fiável e outras semânticas de colocação de mensagens.Many real-time processing solutions need a message ingestion store to act as a buffer for messages, and to support scale-out processing, reliable delivery, and other message queuing semantics.

Quais são as opções para ingestão de mensagens em tempo real?What are your options for real-time message ingestion?

Azure Event HubsAzure Event Hubs

Os Hubs de eventos do Azure é uma plataforma e o evento de serviço de ingestão, capaz de receber e processar milhões de eventos por segundo de fluxo de dados altamente dimensionáveis.Azure Event Hubs is a highly scalable data streaming platform and event ingestion service, capable of receiving and processing millions of events per second. Os Hubs de Eventos podem processar e armazenar eventos, dados ou telemetria produzidos por dispositivos e software distribuído.Event Hubs can process and store events, data, or telemetry produced by distributed software and devices. Os dados enviados para um hub de eventos podem ser transformados e armazenados em qualquer fornecedor de análise em tempo real ou adaptadores de armazenamento/criação de batches.Data sent to an event hub can be transformed and stored using any real-time analytics provider or batching/storage adapters. Os Event Hubs fornecem de publicação-subscrição capacidades com baixa latência em grande escala, o que faz com que seja adequado para cenários de macrodados.Event Hubs provides publish-subscribe capabilities with low latency at massive scale, which makes it appropriate for big data scenarios.

Azure IoT HubAzure IoT Hub

O IoT Hub do Azure é um serviço gerido que permite comunicações bidirecionais fiáveis e seguras entre milhões de dispositivos IoT e um back-end baseado na nuvem.Azure IoT Hub is a managed service that enables reliable and secure bidirectional communications between millions of IoT devices and a cloud-based back end.

Recurso do IoT Hub incluem:Feature of IoT Hub include:

  • Várias opções para a comunicação do dispositivo para a nuvem e na cloud para o dispositivo.Multiple options for device-to-cloud and cloud-to-device communication. Estas opções incluem mensagens unidirecionais, transferência de ficheiros e métodos de pedido-resposta.These options include one-way messaging, file transfer, and request-reply methods.
  • Mensagem de encaminhamento para outros serviços do Azure.Message routing to other Azure services.
  • Loja consultável para metadados de dispositivo e informações de estado sincronizadas.Queryable store for device metadata and synchronized state information.
  • Comunicações seguras e controlo de acesso através de chaves de segurança por dispositivo ou certificados X.509.Secure communications and access control using per-device security keys or X.509 certificates.
  • Monitorização de conectividade do dispositivo e eventos de gestão de identidade de dispositivo.Monitoring of device connectivity and device identity management events.

Em termos de ingestão de mensagens, o IoT Hub é semelhante aos Hubs de eventos.In terms of message ingestion, IoT Hub is similar to Event Hubs. No entanto, ela foi projetada especificamente para o gerenciamento de conectividade do dispositivo do IoT, não apenas a ingestão de mensagens.However, it was specifically designed for managing IoT device connectivity, not just message ingestion. Para obter mais informações, consulte comparação do IoT Hub do Azure e Hubs de eventos.For more information, see Comparison of Azure IoT Hub and Azure Event Hubs.

Kafka no HDInsightKafka on HDInsight

Apache Kafka é uma código-fonte aberto transmissão em fluxo plataforma distribuída que pode ser utilizada para criar aplicações de transmissão em fluxo e pipelines de dados em tempo real.Apache Kafka is an open-source distributed streaming platform that can be used to build real-time data pipelines and streaming applications. O Kafka também fornece a funcionalidade de mediador de mensagem semelhante a uma fila de mensagens, onde pode publicar e subscrever fluxos de dados nomeados.Kafka also provides message broker functionality similar to a message queue, where you can publish and subscribe to named data streams. É dimensionável horizontalmente, tolerante a falhas e de resposta extremamente rápidos.It is horizontally scalable, fault-tolerant, and extremely fast. O Kafka no HDInsight fornece um Kafka como um serviço gerido, altamente dimensionável e de elevada disponibilidade no Azure.Kafka on HDInsight provides a Kafka as a managed, highly scalable, and highly available service in Azure.

São alguns casos de utilização comuns para o Kafka:Some common use cases for Kafka are:

  • Mensagens.Messaging. Uma vez que suporta a funcionalidade Publicar-subscrever o padrão de mensagem, o Kafka é frequentemente utilizado como um mediador de mensagens.Because it supports the publish-subscribe message pattern, Kafka is often used as a message broker.
  • Atividade de controlo.Activity tracking. Como o Kafka fornece o registo de registos por ordem, pode ser utilizado para controlar e voltar a criar atividades, tais como ações do usuário num site.Because Kafka provides in-order logging of records, it can be used to track and re-create activities, such as user actions on a web site.
  • Agregação.Aggregation. Utilizar o processamento de fluxos, pode agregar informações a partir de várias transmissões em fluxo para combinar e centralizar as informações nos dados operacionais.Using stream processing, you can aggregate information from different streams to combine and centralize the information into operational data.
  • Transformação.Transformation. Com o processamento de fluxos, pode combinar e enriquecer os dados de vários tópicos de entrada em uma de ou mais tópicos de saída.Using stream processing, you can combine and enrich data from multiple input topics into one or more output topics.

Principais critérios de seleçãoKey selection criteria

Para limitar as opções, comece por resposta a estas perguntas:To narrow the choices, start by answering these questions:

  • Precisa de comunicação bidirecional entre os dispositivos de IoT e o Azure?Do you need two-way communication between your IoT devices and Azure? Nesse caso, escolha o IoT Hub.If so, choose IoT Hub.

  • Precisa de gerir o acesso para dispositivos individuais e ser capaz de revogar o acesso a um dispositivo específico?Do you need to manage access for individual devices and be able to revoke access to a specific device? Se Sim, escolha o IoT Hub.If yes, choose IoT Hub.

Matriz de capacidadeCapability matrix

As tabelas seguintes resumem as principais diferenças nos recursos.The following tables summarize the key differences in capabilities.

IoT HubIoT Hub Hubs de EventosEvent Hubs Kafka no HDInsightKafka on HDInsight
Comunicações de cloud-para-dispositivoCloud-to-device communications SimYes NãoNo NãoNo
Carregamento de ficheiros iniciada pelo dispositivoDevice-initiated file upload SimYes NãoNo NãoNo
Informações de estado do dispositivoDevice state information Dispositivos duplosDevice twins NãoNo NãoNo
Suporte de protocoloProtocol support MQTT, AMQP, HTTPS 1MQTT, AMQP, HTTPS 1 AMQP, HTTPSAMQP, HTTPS Protocolo de KafkaKafka Protocol
SegurançaSecurity Identidade por dispositivo; controlo de acesso irrevogável.Per-device identity; revocable access control. Políticas de acesso partilhado revogação limitada através de políticas do publicador.Shared access policies; limited revocation through publisher policies. Autenticação a utilizar o SASL; autorização conectáveis; integração com os serviços de autenticação externo suportado.Authentication using SASL; pluggable authorization; integration with external authentication services supported.

[1] também pode utilizar gateway de protocolo do IoT do Azure como um gateway personalizado para ativar a adaptação de protocolo para o IoT Hub.[1] You can also use Azure IoT protocol gateway as a custom gateway to enable protocol adaptation for IoT Hub.

Para obter mais informações, consulte comparação do IoT Hub do Azure e Hubs de eventos.For more information, see Comparison of Azure IoT Hub and Azure Event Hubs.