Crear un centro de eventos mediante la CLI de Azure

Completado

El equipo toma la decisión de usar las capacidades de Azure Event Hubs para administrar y procesar los crecientes volúmenes de transacciones que llegan a través del sistema.

Un centro de eventos es un recurso de Azure, por lo que el primer paso consiste en crear uno en Azure y configurarlo para satisfacer los requisitos específicos de las aplicaciones.

¿Qué es Azure Event Hubs?

Azure Event Hubs es un servicio de procesamiento de eventos basado en la nube capaz de recibir y procesar millones de eventos por segundo. Event Hubs actúa como una puerta principal para una canalización de eventos, recibe los datos entrantes y los almacena hasta que los recursos de procesamiento estén disponibles.

Una entidad que envía datos al centro de eventos se denomina publicador y una entrada que lee datos desde un centro de eventos se denomina consumidor o suscriptor. El centro de eventos se ubica entre el publicador y el suscriptor para dividir la producción (desde el publicador) y el consumo (al suscriptor) de un flujo de datos de eventos. Este desacoplamiento ayuda a administrar los escenarios donde la velocidad de la producción de eventos es considerablemente mayor que el consumo. La siguiente ilustración muestra el rol del centro de eventos:

An illustration showing an Azure event hub placed between four publishers and two subscribers. The event hub receives multiple events from the publishers, serializes the events into data streams, and makes the data streams available to subscribers.

Eventos

Un evento es un pequeño paquete de información (un datagrama) que contiene una notificación. Los eventos se pueden publicar de manera individual o en lotes, pero una sola publicación (individual o en lote) no puede superar 1 MB.

Publicadores y suscriptores

Los publicadores de eventos son cualquier aplicación o dispositivo que pueda enviar eventos mediante el protocolo HTTPS, Advanced Message Queuing Protocol (AMQP) 1.0 o Apache Kafka.

  • Para los publicadores que envían datos con frecuencia, AMQP tiene mejor rendimiento. Pero tiene una mayor sobrecarga de sesión inicial, ya que primero se debe configurar un socket bidireccional persistente y seguridad de nivel de transporte (TLS) o SSL/TLS.
  • Para una publicación más intermitente, la mejor opción es HTTPS. Aunque HTTPS necesita más sobrecarga para cada solicitud, no hay sobrecarga de inicialización de sesión.
  • Event Hubs proporciona un punto de conexión compatible con las API de productor y consumidor de Apache Kafka que pueden usar la mayoría de las aplicaciones cliente de Apache Kafka existentes como alternativa a la ejecución de su propio clúster de Apache Kafka. Event Hubs admite clientes de API de productor y consumidor de Apache Kafka en la versión 1.0 y posteriores. Para obtener más información, consulte Event Hubs para Apache Kafka.

Los suscriptores de eventos son aplicaciones que usan uno de los dos métodos de programación compatibles para recibir y procesar eventos procedentes de un centro de eventos.

  • EventHubReceiver: método sencillo que proporciona opciones de administración limitadas.
  • EventProcessorHost: método eficaz que usaremos más adelante en este módulo.

Grupos de consumidores

Un grupo de consumidores de un centro de eventos representa una vista específica del flujo de datos de un centro de eventos. Cuando usa grupos de consumidores independientes, varias aplicaciones de suscriptor pueden procesar un flujo de datos de eventos por separado y sin afectar a otras aplicaciones. Pero el uso de muchos grupos de consumidores no es un requisito y, para muchas aplicaciones, el grupo de consumidores predeterminado único es suficiente.

Precios

Existen cuatro planes de tarifa para Azure Event Hubs: Básico, Estándar, Premium y Dedicado. Los planes difieren en cuanto a las conexiones admitidas, el número de grupos de consumidores disponibles y el rendimiento. Cuando se usa la CLI de Azure para crear un espacio de nombres de Event Hubs, si no se especifica un plan de tarifa, se asigna el valor predeterminado Estándar (20 grupos de consumidores, 1000 conexiones asincrónicas). Para ver las principales diferencias entre estos niveles, consulte Azure Event Hubs: Precios.

Creación y configuración de un centro de eventos

Hay dos pasos principales para crear un centro de eventos. El primer paso consiste en definir un espacio de nombres para Event Hubs. El segundo paso es crear un centro de eventos en ese espacio de nombres.

Definición de un espacio de nombres de Event Hubs

Un espacio de nombres de Event Hubs es un contenedor para administrar uno o varios centros de eventos. La creación de un espacio de nombres para Event Hubs habitualmente implica la configuración siguiente:

Definir la configuración en el nivel de espacio de nombres

La capacidad del espacio de nombres (que se configura mediante unidades de procesamiento en el nivel estándar), el plan de tarifa y las métricas de rendimiento se definen en el nivel de espacio de nombres. Estos valores se aplican a todos los centros de eventos dentro de ese espacio de nombres. Si no define esta configuración, se usa un valor predeterminado: 1 para capacidad y Standard para el plan de tarifa.

Tenga en cuenta los aspectos siguientes:

  • Debe equilibrar la configuración con las expectativas presupuestarias de Azure.

  • Considere la posibilidad de configurar distintos centros de eventos para distintos requisitos de rendimiento. Por ejemplo, si tiene una aplicación de datos de ventas y planifica dos centros de eventos, tendría sentido usar un espacio de nombres independiente para cada centro.

    Configure un espacio de nombres para la recopilación de alto rendimiento de datos de ventas en tiempo real y otro para la recopilación de registros de eventos poco frecuentes. De ese modo, solo tendría que configurar (y pagar) la capacidad de alto rendimiento en el centro de datos de ventas en tiempo real.

    1. Seleccionar un nombre único para el espacio de nombres. Es posible acceder al espacio de nombres a través de esta dirección URL: espacio_de_nombres.servicebus.windows.net

    2. Definir estas propiedades opcionales:

      • Hacer que esta zona de espacio de nombres sea redundante. La redundancia de zona replica datos entre centros de datos independientes con infraestructuras de alimentación, redes y refrigeración propias.

      • Habilite el escalado vertical automático de las unidades de procesamiento (nivel estándar). El inflado automático proporciona una opción de escalado horizontal automático al aumentar el número de unidades de procesamiento hasta un valor máximo. Esta opción resulta útil para evitar las limitaciones en situaciones en las que las frecuencias de datos entrantes o salientes superan el número de unidades de procesamiento actualmente establecido.

Comandos de la CLI de Azure para crear un espacio de nombres de Event Hubs

Para crear un espacio de nombres de Event Hubs, use comandos az eventhubs namespace. Esta es una breve descripción de los comandos que usaremos en el ejercicio.

Comando Descripción
create Crea un espacio de nombres de Event Hubs.
authorization-rule Todos los centros de eventos dentro del mismo espacio de nombres comparten credenciales de conexión comunes. Necesita estas credenciales al configurar aplicaciones para enviar y recibir mensajes mediante el centro de eventos. Este comando devuelve la cadena de conexión del espacio de nombres de Event Hubs.

Configuración de un nuevo centro de eventos

Después de crear el espacio de nombres para Event Hubs, puede crear un centro de eventos. Hay varios parámetros obligatorios al crear un centro de eventos.

Estos parámetros son obligatorios para crear un centro de eventos:

  • Nombre del centro de eventos: nombre de centro de eventos único dentro de la suscripción y:
    • Tiene entre 1 y 50 caracteres.
    • Solo incluye letras, números, puntos, guiones y guiones bajos.
    • Empieza y termina por una letra o un número.
  • Número de particiones: número de particiones necesarias en un centro de eventos (entre 2 y 32 en el nivel estándar). El número de particiones debe estar directamente relacionado con el número previsto de consumidores simultáneos y no se puede cambiar una vez creado el centro. La partición separa el flujo de mensajes, de manera que las aplicaciones de consumidor o receptor solo deben leer un subconjunto específico del flujo de datos. Si no se define, el valor predeterminado es 4.
  • Retención de mensajes: número de días (de 1 a 7 en el nivel estándar) que los mensajes siguen disponibles, si es necesario reproducir el flujo de datos por cualquier motivo. Si no se define, el valor predeterminado se establece en 7.

De forma opcional, también puede configurar un centro de eventos para que transmita datos a Azure Data Lake Storage o Azure Blob Storage.

Comandos de la CLI de Azure para crear un centro de eventos

Para crear un nuevo centro de eventos con la CLI de Azure, ejecute el conjunto de comandos az eventhubs eventhub. Esta es una breve descripción de los comandos que usaremos en el ejercicio.

Comando Descripción
create Crea el centro de eventos en un espacio de nombres especificado.
show Muestra los detalles del centro de eventos.

Nota

Para ver las cuotas y los límites en los distintos niveles de Event Hubs, consulte Cuotas y límites de Azure Event Hubs.

Resumen

Para implementar Azure Event Hubs, debe configurar un espacio de nombres de Event Hubs y, después, configurar el propio centro de eventos. En la unidad siguiente, se describen los pasos de configuración detallados para crear un espacio de nombres y un centro de eventos.