Supongamos que ha creado una aplicación y desea saber cómo los miles de usuarios utilizan su aplicación. Esto significa que debe implementar algún tipo de registro, y para este escenario puede configurar un Event Hub en Azure y enviar eventos con datos de registro desde su aplicación al Event Hub cuando ocurre una acción de usuario específica. Técnicamente, un evento es un mensaje que contiene, por ejemplo, un pequeño documento JSON. El documento JSON podría contener información, como, por ejemplo, que el usuario navegó a la página de aproximadamente de su aplicación. Entonces, en otras palabras, un Event Hub se puede usar para recopilar datos de telemetría como este registro de datos.
Tele significa remoto y metry para medir.
Pero ahora puede pensar que en lugar de utilizar un Event Hub aquí, también podría crear una API web con ASP.NET Core que tome los datos de registro de su aplicación y los almacene en una base de datos. Entonces, ¿cuál es exactamente la ventaja de utilizar un Event Hub en lugar de una clásica API Web ASP.NET?
Una ventaja es que no tiene que escribir ningún código para configurar un Azure Event Hub. Simplemente vaya al portal de Azure y allí puede crear y configurar un Hub de eventos muy fácilmente. Es una plataforma como un servicio. Pero hay otras ventajas, y una gran ventaja es escalar. Azure Event Hubs se puede usar para recopilar más de un millón de eventos por segundo.
Event Hubs también se utilizan con bastante frecuencia para recopilar datos de telemetría que provienen de dispositivos y puertas de enlace. Por ejemplo, los registros de GPS podrían enviar datos de posición periódicamente a un centro de eventos, o una estación meteorológica podría enviar temperaturas cada 5 segundos a un centro de eventos.
Muy a menudo hay dispositivos que no pueden conectarse a Internet por sí solos. Entonces, por lo general, una aplicación toma datos del sensor de estos dispositivos y los envía a un Hub de eventos. Una aplicación de este tipo que toma los datos del sensor de los dispositivos y los envía a un Concentrador de eventos se denomina gateway. Como puede ver, además de enviar datos de registro desde una aplicación clásica, puede usar Azure Event Hubs para escenarios típicos de Internet of Things en los que envía datos de sensores desde dispositivos y puertas de enlace a un Event Hub. Todos estos remitentes diferentes, una aplicación, un dispositivo o una puerta de enlace, tienen en común que siempre es una pieza de código que envía un evento a un centro de eventos. Y el Event Hub en sí mismo es fácil de configurar y escalar muy bien. Ahora supongamos que los eventos se envían a su Event Hub. Entonces puedes consumir y analizar estos eventos. Echemos un vistazo a los diferentes enfoques para consumir eventos de su Hub de eventos.
Después de que sus aplicaciones o sus dispositivos hayan enviado eventos a su Event Hub, puede consumir y analizar estos eventos. Una forma de hacerlo es configurar un trabajo de análisis de flujo en Azure. Con Stream Analytics, puede usar una sintaxis de consulta similar a SQL para leer y analizar los eventos del Event Hub. Por ejemplo, puede agrupar eventos para averiguar cuántos usuarios navegaron a la página de información de su aplicación en el último minuto. Stream Analytics lleva los resultados de su consulta a un resultado que ha definido.
El resultado puede ser, por ejemplo, Power BI. En Power BI, puede crear un panel en tiempo real que muestre los datos provenientes del trabajo de Stream Analytics. Esto significa que, por ejemplo, una aplicación envía eventos al centro de eventos, el trabajo de Stream Analytics procesa estos eventos y Power BI muestra los datos en tiempo casi real.
Después de que Stream Analytics haya consumido un evento del Event Hub, el evento no se elimina del Event Hub. Por defecto, los eventos se almacenan en el Event Hub por un día. En Azure Portal, puede configurar hasta siete días de esta llamada retención de mensajes. Como los eventos no se eliminan después de que un consumidor los haya leído, puede hacer que varios consumidores lean desde su Event Hub. Esto significa que, además de su trabajo de Stream Analytics, puede haber varios otros consumidores. Puede consumir y procesar los eventos desde su Event Hub, por ejemplo, también con una aplicación .NET Core con una función Azure, con una aplicación lógica de Azure, o puede enviar todos los datos del evento directamente a un almacenamiento de blobs por mucho tiempo. tiempo de almacenamiento utilizando la característica Event Hub Capture.
Como puede ver en esta diapositiva, un Event Hub puede ser el punto de entrada para eventos en la nube. Siempre que necesite recopilar datos de telemetría de sus aplicaciones o dispositivos IoT, Azure Event Hubs es una excelente opción. Ahora, cuando se trata de Internet de las cosas, o corto, IoT, también puede encontrar Azure IoT Hub.
Como aprendió hasta ahora, puede usar Azure Event Hub para recopilar datos de telemetría de sus aplicaciones y dispositivos. Un Azure IoT Hub es compatible con un concepto similar. Puede enviar eventos desde sus dispositivos a un Hub de IoT. Los eventos en el IoT Hub también se pueden consumir, por ejemplo, mediante un trabajo de Stream Analytics
IoT Hub está hecho para dispositivos. Además del dispositivo para la comunicación en la nube, también admite una comunicación de nube a dispositivo.
Entonces, cuando establece los dos en comparación, tenemos la comunicación que es dispositivo a la nube para el Event Hub, y el dispositivo a la nube y también a la nube al dispositivo para el IoT Hub. Otra diferencia entre los dos son los protocolos compatibles. Event Hub es compatible con HTTPS y el protocolo de cola avanzada de mensajes, o abreviado, AMQP. IoT Hub también es compatible con HTTPS y AMQP, pero también con el denominado protocolo de transporte de telemetría de cola de mensaje, o abreviado, MQTT, que es un protocolo de servidor de cliente estándar admitido por muchos dispositivos de IoT.
Cuando se trata de conexiones concurrentes AMQP, el Event Hub estándar admite hasta 5000 mientras que un IoT Hub está optimizado para millones de dispositivos conectados simultáneamente. Cuando trabajas con dispositivos, otra cosa importante puede ser la administración de un dispositivo. Un Event Hub no cuenta con dicha administración de dispositivos, pero IoT Hub tiene una administración de dispositivos integrada para escenarios típicos. Estos escenarios pueden ser, por ejemplo, reiniciar un dispositivo, forzar un restablecimiento de fábrica o instalar la actualización del firmware. También es interesante la autenticación. Mientras que un concentrador de eventos utiliza una clave de acceso compartido, un concentrador de IoT admite una autenticación individual por dispositivo. Como puede ver, un IoT Hub tiene muchas características adicionales específicas para dispositivos. Por Debajo, funciona más o menos como un Hub de eventos y también le permite recopilar datos de telemetría. Pero si no necesita todas las funciones específicas del dispositivo de un IoT Hub, y solo desea recopilar datos de telemetría, entonces Event Hub es una gran opción y también mucho más económica que un IoT Hub, porque un Event Hub está enfocando en ese único escenario, recopilar datos de telemetría
Advanced Message Queuing Protocol (AMQP)
Frank Grimes
La unidad de rendimiento es una capacidad reservada. La unidad de rendimiento único le da a su espacio de nombres de Hub de Eventos la capacidad de manejar 1 MB/s o 1000 eventos/s, cualquiera de los 2 que llegue primero de los datos entrantes, los llamados datos de ingreso.
Esto significa que los Hubs de Eventos en ese espacio de nombre comparten estas unidades de rendimiento. Si tiene aquí 10 Event Hubs en su espacio de nombres y ha definido una sola unidad de rendimiento, entonces tiene la capacidad que admite un promedio de 100 KB o 100 eventos / s de datos de ingreso por Event Hub.
Por supuesto, si 9 Event Hub no hace nada, el Event Hub restante puede tomar toda la capacidad que proporciona la unidad de rendimiento único.
Unidades de rendimiento y particiones, estos conceptos son importantes cuando quieres escalar Event Hub para que puedas procesar mas eventos por Segundo
3 – 7:36
Cuando los remitentes envían eventos a su Event Hub, estos eventos enviados se distribuyen a las particiones mediante el uso de un modelo round robin. La partición en sí misma es un mecanismo de organización de datos para almacenar una secuencia ordenada de eventos. Los nuevos eventos que llegan se agregan al final de esa secuencia. Las particiones de un Hub de eventos son independientes entre sí.
La cantidad de particiones en un Event Hub se relaciona directamente con la cantidad de lectores simultáneos que espera tener. Eso significa, por ejemplo, que si espera un máximo de dos consumidores concurrentes, dos particiones son una gran opción. Si espera cuatro consumidores concurrentes, cree cuatro particiones para su Event Hub. Una cosa importante que debe saber es que puede seleccionar el número de particiones solo cuando está creando un Event Hub. Después de que se creó su Hub de eventos, ya no puede cambiar el número de particiones
Un grupo de consumidores es como una vista de selección * en Event Hub. Cada grupo de consumidores proporciona el flujo de eventos completo a la aplicación consumidora. Esto significa que las aplicaciones A y B pueden leer completamente en paralelo desde el Event Hub.