Uso de Azure Event Hubs desde aplicaciones de Apache KafkaUse Azure Event Hubs from Apache Kafka applications

Event Hubs proporciona un punto de conexión de Kafka que las aplicaciones basadas en Kafka existentes pueden usar como alternativa a la ejecución de su propio clúster de Kafka.Event Hubs provides a Kafka endpoint that can be used by your existing Kafka based applications as an alternative to running your own Kafka cluster. Event Hubs admite el protocolo de Apache Kafka 1.0 y versiones más recientes y funciona con las aplicaciones existentes de Kafka, incluida MirrorMaker.Event Hubs supports Apache Kafka protocol 1.0 and later, and works with your existing Kafka applications, including MirrorMaker.

¿Qué proporciona Event Hubs para Kafka?What does Event Hubs for Kafka provide?

La característica Event Hubs para Kafka proporciona un protocolo principal basado en Azure Event Hubs que es compatible a nivel binario con la versión 1.0 de Kafka y posteriores, tanto para leer desde temas de Kafka como para escribir en ellos.The Event Hubs for Kafka feature provides a protocol head on top of Azure Event Hubs that is binary compatible with Kafka versions 1.0 and later for both reading from and writing to Kafka topics. Puede empezar a utilizar el punto de conexión de Kafka desde sus aplicaciones sin tener que realizar ningún cambio en el código, pero será preciso realizar un cambio mínimo en la configuración.You may start using the Kafka endpoint from your applications with no code change but a minimal configuration change. Actualice la cadena de conexión en las configuraciones para que apunte al punto de conexión de Kafka que se expone en el evento, en lugar de apuntar al clúster de Kafka.You update the connection string in configurations to point to the Kafka endpoint exposed by your event hub instead of pointing to your Kafka cluster. A partir de ahí, puede empezar a hacer streaming de los eventos desde las aplicaciones que usen el protocolo Kafka en Event Hubs.Then, you can start streaming events from your applications that use the Kafka protocol into Event Hubs. Esta integración también admite marcos como Kafka Connect, que está en versión preliminar actualmente.This integration also supports frameworks like Kafka Connect, which is currently in preview.

Desde un punto de vista conceptual, Kafka y Event Hubs son casi idénticos: ambos son registros con particiones creados para transmitir datos.Conceptually Kafka and Event Hubs are nearly identical: they are both partitioned logs built for streaming data. En la tabla siguiente, se asignan conceptos entre Kafka y Event Hubs.The following table maps concepts between Kafka and Event Hubs.

Asignación conceptual de Kafka y Event HubsKafka and Event Hub conceptual mapping

Concepto de KafkaKafka Concept Concepto de Event HubsEvent Hubs Concept
ClústerCluster Espacio de nombresNamespace
TemaTopic Centro de eventosEvent Hub
PartitionPartition PartitionPartition
Grupo de consumidoresConsumer Group Grupo de consumidoresConsumer Group
OffsetOffset OffsetOffset

Diferencias principales entre Kafka y Event HubsKey differences between Kafka and Event Hubs

Mientras que Kafka Apache es un software que se puede ejecutar siempre que elija, Event Hubs es un servicio en la nube similar a Azure Blob Storage.While Apache Kafka is software, which you can run wherever you choose, Event Hubs is a cloud service similar to Azure Blob Storage. No hay ningún servidor o red que administrar ni ningún agente que configurar.There are no servers or networks to manage and no brokers to configure. Se crea un espacio de nombres, que es un FQDN en el que están los temas, y después se crean Event Hubs o temas dentro de ese espacio de nombres.You create a namespace, which is an FQDN in which your topics live, and then create Event Hubs or topics within that namespace. Para más información acerca de Event Hubs y de los espacios de nombres, consulte las características de Event Hubs.For more information about Event Hubs and namespaces, see Event Hubs features. Como un servicio en la nube, Event Hubs usa una única dirección IP virtual estable como punto de conexión, de forma que los clientes no necesitan conocer los agentes o equipos de un clúster.As a cloud service, Event Hubs uses a single stable virtual IP address as the endpoint, so clients do not need to know about the brokers or machines within a cluster.

La escala en Event Hubs se controla por el número de unidades de rendimiento que adquiere; cada unidad de rendimiento le otorga 1 MB por segundo o 1000 eventos por segundo de entrada.Scale in Event Hubs is controlled by how many throughput units you purchase, with each throughput unit entitling you to 1 MB per second, or 1000 events per second of ingress. De forma predeterminada, Event Hubs escala verticalmente las unidades de procesamiento cuando se alcanza el límite con la característica Inflado automático; esta característica también funciona con la característica Event Hubs para Kafka.By default, Event Hubs scales up throughput units when you reach your limit with the Auto-Inflate feature; this feature also works with the Event Hubs for Kafka feature.

Seguridad y autenticaciónSecurity and authentication

Azure Event Hubs requiere SSL o TLS para todas las comunicaciones y usa firmas de acceso compartido (SAS) para la autenticación.Azure Event Hubs requires SSL or TLS for all communication and uses Shared Access Signatures (SAS) for authentication. Este requisito también es válido para un punto de conexión de Kafka de Event Hubs.This requirement is also true for a Kafka endpoint within Event Hubs. Por compatibilidad con Kafka, Event Hubs usa SASL PLAIN para la autenticación y SASL SSL para la seguridad de transporte.For compatibility with Kafka, Event Hubs uses SASL PLAIN for authentication and SASL SSL for transport security. Para obtener más información sobre la seguridad en Event Hubs, vea Autenticación y seguridad de Event Hubs.For more information about security in Event Hubs, see Event Hubs authentication and security.

Otras características de Event Hubs disponibles para KafkaOther Event Hubs features available for Kafka

La característica Event Hubs para Kafka le permite escribir con un protocolo y leer con otro, para que los productores de Kafka actuales puedan seguir publicando a través de Kafka y usted pueda agregar lectores con Event Hubs, como Azure Stream Analytics o Azure Functions.The Event Hubs for Kafka feature enables you to write with one protocol and read with another, so that your current Kafka producers can continue publishing via Kafka, and you can add readers with Event Hubs, such as Azure Stream Analytics or Azure Functions. Además, las características de Event Hubs como Capture y Recuperación ante desastres geográfica también funcionan con la característica Event Hubs para Kafka.Additionally, Event Hubs features such as Capture and Geo Disaster-Recovery also work with the Event Hubs for Kafka feature.

Características que aún no se admitenFeatures that are not yet supported

A continuación, se incluye la lista de características de Kafka que aún no se admiten:Here is the list of Kafka features that are not yet supported:

  • Productor idempotenteIdempotent producer
  • TransacciónTransaction
  • CompresiónCompression
  • Retención basada en el tamañoSize-based retention
  • Compactación del registroLog compaction
  • Adición de particiones a un tema existenteAdding partitions to an existing topic
  • Compatibilidad con HTTP Kafka APIHTTP Kafka API support
  • Kafka StreamsKafka Streams

Pasos siguientesNext steps

En este artículo se proporciona una introducción a Event Hubs para Kafka.This article provided an introduction to Event Hubs for Kafka. Para obtener más información, consulte los siguientes vínculos:To learn more, see the following links: