Inicio rápido: transmisión de datos con Azure Event Hubs y Apache Kafka
En este inicio rápido se muestra cómo transmitir datos hacia y desde Azure Event Hubs mediante el protocolo Apache Kafka. No cambiará ningún código en las aplicaciones de consumidor o productor de Kafka de ejemplo. Solo tiene que actualizar las configuraciones que usan los clientes para apuntar a un espacio de nombres de Event Hubs, que expone un punto de conexión de Kafka. Tampoco se compila y usa un clúster de Kafka por cuenta propia. En su lugar, usa el espacio de nombres de Event Hubs con el punto de conexión de Kafka.
Nota
Este ejemplo está disponible en GitHub.
Prerrequisitos
Para completar esta guía de inicio rápido, asegúrese de cumplir los siguientes requisitos previos:
- Lea el artículo Event Hubs para Apache Kafka.
- Suscripción a Azure. Si no tiene una, cree una cuenta gratuita antes de empezar.
- Cree una máquina virtual Windows e instale los siguientes componentes:
- Kit de desarrollo de Java (JDK) 1.7+.
- Descargue e instale un archivo binario de Maven.
- Git
Creación de un espacio de nombres de Azure Event Hubs
Al crear un espacio de nombres de Event Hubs, se habilita automáticamente el punto de conexión de Kafka para el espacio de nombres. Puede transmitir eventos a Event Hubs desde las aplicaciones que usan el protocolo de Kafka. Siga las instrucciones paso a paso de Creación de un centro de eventos mediante Azure Portal para crear un espacio de nombres de Event Hubs. Si usa un clúster dedicado, consulte Creación de un espacio de nombres y un centro de eventos en un clúster dedicado.
Nota:
Event Hubs para Kafka no se admite en el nivel básico.
Envío y recepción de mensajes con Kafka en Event Hubs
Habilite una identidad administrada asignada por el sistema para la máquina virtual. Para obtener información sobre cómo configurar una identidad administrada en una máquina virtual, vea Configurar identidades administradas para recursos de Azure en una VM mediante Azure Portal. Las identidades administradas de los recursos de Azure proporcionan a los servicios de Azure una identidad administrada automáticamente en Microsoft Entra ID. Puede usar esta identidad para autenticar a cualquier servicio que admita la autenticación de Microsoft Entra, sin necesidad de tener credenciales en el código.
Con la página Control de acceso del espacio de nombres de Event Hubs que creó, asigne el rol Propietario de los datos de Azure Event Hubs a la identidad administrada de la máquina virtual. Azure Event Hubs admite la autorización de solicitudes a recursos de Event Hubs mediante Microsoft Entra ID. Con Microsoft Entra ID, puede usar el control de acceso basado en rol de Azure (RBAC de Azure) para conceder permisos a una entidad de seguridad, que puede ser un usuario o una entidad de servicio de aplicación.
En Azure Portal, vaya al espacio de nombres de Event Hubs. Vaya a "Control de acceso (IAM)" en el panel de navegación izquierdo.
Seleccione + Agregar y seleccione
Add role assignment
.En la pestaña Rol, seleccione Propietario de los datos de Azure Event Hubs y seleccione el botón Siguiente.
En la pestaña Miembros, seleccione la Identidad administrada en la sección Asignar acceso a.
Haga clic en el enlace +Seleccionar miembros.
En la página Seleccionar identidades administradas, siga estos pasos:
Seleccione la suscripción de Azure que tiene la máquina virtual.
En Identidad administrada, seleccione Máquina virtual.
Seleccione la identidad administrada de la máquina virtual.
Seleccione Seleccionar en la parte inferior de la página.
Seleccione Revisar y asignar.
Reinicie la máquina virtual e inicie sesión de nuevo en la máquina virtual para la que ha configurado la identidad administrada.
Vaya a
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer
.Cambie a la carpeta
src/main/resources/
y abraconsumer.config
. Reemplacenamespacename
por el nombre del espacio de nombres de Event Hubs.bootstrap.servers=NAMESPACENAME.servicebus.windows.net:9093 security.protocol=SASL_SSL sasl.mechanism=OAUTHBEARER sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required; sasl.login.callback.handler.class=CustomAuthenticateCallbackHandler;
Nota
Puede encontrar todos los ejemplos de OAuth de Event Hubs para Kafka aquí.
Vuelva a la carpeta Consumer donde está el archivo pom.xml y ejecute el código de consumidor y procese eventos desde el centro de eventos mediante los clientes de Kafka:
mvn clean package mvn exec:java -Dexec.mainClass="TestConsumer"
Inicie otra ventana del símbolo del sistema y vaya a
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer
.Cambie a la carpeta
src/main/resources/
y abraproducer.config
. Reemplacemynamespace
por el nombre del espacio de nombres de Event Hubs.Vuelva a la carpeta Producer donde está el archivo
pom.xml
y ejecute el código de productor y transmita eventos a Event Hubs:mvn clean package mvn exec:java -Dexec.mainClass="TestProducer"
Debería ver los mensajes sobre los eventos enviados en la ventana del productor. Ahora, compruebe la ventana de la aplicación de consumidor para ver los mensajes que esta recibe del centro de eventos.
Validación de esquemas para Kafka con el Registro de esquemas
Puede usar Azure Schema Registry para realizar la validación del esquema al transmitir datos con las aplicaciones de Kafka mediante Event Hubs. El Registro de esquemas de Azure Event Hubs proporciona un repositorio centralizado para administrar esquemas y puede conectar sin problemas las aplicaciones de Kafka nuevas o existentes con el Registro de esquemas.
Para más información, consulte Validación de esquemas para aplicaciones de Apache Kafka mediante Avro.
Pasos siguientes
En este artículo se muestra cómo hacer streaming a instancias de Event Hubs sin cambiar los clientes del protocolo o ejecutar sus propios clústeres. Para más información, consulte Guía del desarrollador de Apache Kafka para Azure Event Hubs.