EMQ se da cuenta de que la recopilación de datos de IoT se hunde en Kafka

Requisitos de Software:

Necesita utilizar EMQ Enterprise Edition

Requisitos de la escena:

La plataforma de Internet de las cosas necesita acceder a los datos recopilados por el dispositivo de recopilación de transformadores inteligente y transferir los datos al MQ (EMQ) del servidor según el protocolo MQTT. EMQ reenvía los datos al clúster de Kafka y sparkStreaming se conecta a Kafka para su análisis y procesamiento en tiempo real.

Listo para trabajar:

  • Carga de preparación de datos:
{
    
    
  "id": "NXP-058659730253-963945118132721-22", // 客户端识别码
  "speed": 32.12, // 车辆速度
  "direction": 198.33212, // 行驶方向
  "tachometer": 3211, // 发动机转速,数值大于 8000 时才需存储
  "dynamical": 8.93, // 瞬时油耗
  "location": {
    
     // GPS 经纬度数据
    "lng": 116.296011,
    "lat": 40.005091
  },
  "ts": 1563268202 // 上报时间
}
  • Crear tema de Kafka
./kafka-topics.sh --create --partitions 3 --replication-factor 2 --topic emqtopic --zookeeper node01:2181,node02:2181,node03:2181

Instrucciones de configuración:

  • Crear un recurso
    Abra EMQ X Dashboard, ingrese a la página de recursos en el menú de la izquierda, haga clic en el botón Nuevo e ingrese la información del servidor Kafka para crear un recurso.
    Inserte la descripción de la imagen aquí
    El entorno de red de los nodos en el clúster EMQ X puede ser diferente entre sí. Una vez que el recurso se haya creado correctamente, haga clic en el botón de estado en la lista para verificar el estado de conexión de recursos de cada nodo. Si el recurso en el nodo no está disponible, verifique si la configuración es correcta, la conectividad de red y haga clic en Botón de conexión para volver a conectar manualmente.
    Inserte la descripción de la imagen aquí

  • Crear regla
    Vaya a la página de reglas del menú de la izquierda y haga clic en el botón Nuevo para crear una regla. Aquí elija activar la liberación del mensaje de evento y activar la regla para el procesamiento de datos cuando se libera el mensaje.
    Después de seleccionar el evento desencadenante, podemos ver campos opcionales y SQL de muestra en la interfaz:
    Inserte la descripción de la imagen aquí

  • Filtrar campos obligatorios El
    motor de reglas utiliza sentencias SQL para procesar mensajes de terminal enteros o eventos de conexión, etc. En este negocio, solo necesitamos filtrar los campos clave en la carga útil para su uso. Para hacer esto, puede usar el formato de carga útil para seleccionar campos en la carga útil. Además, además del contenido de la carga útil, es necesario guardar la información de identificación del mensaje. El SQL se puede configurar con el siguiente formato:

SELECT
  payload.id as client_id, payload.speed as speed, 
  payload.tachometer as tachometer,
  payload.ts as ts, id
FROM
  "message.publish"
WHERE
  topic =~ 't/#'

  • Utilice la función de prueba de SQL para la prueba de salida.
    Con la función de prueba de SQL, podemos ver la salida de datos después del procesamiento de SQL actual en tiempo real. Esta función requiere que especifiquemos la carga útil y otros datos sin procesar simulados.
    Los datos de carga útil son los siguientes, preste atención para cambiar el valor del tacómetro para cumplir con las condiciones de SQL:
{
    
    
  "id": "NXP-058659730253-963945118132721-22",
  "speed": 32.12,
  "direction": 198.33212,
  "tachometer": 9001,
  "dynamical": 8.93,
  "location": {
    
    
    "lng": 116.296011,
    "lat": 40.005091
  },
  "ts": 1563268202
}

Haga clic en el botón del interruptor de prueba de SQL, cambie el tema y la carga útil a la información de la escena, haga clic en el botón de prueba para ver la salida de datos: los datos de salida de
Inserte la descripción de la imagen aquí
prueba son:

{
    
    
  "client_id": "NXP-058659730253-963945118132721-22",
  "id": "589A429E9572FB44B0000057C0001",
  "speed": 32.12,
  "tachometer": 9001,
  "ts": 1563268202
}
  • Después de agregar la acción de respuesta y unir el mensaje a la
    entrada y salida condicional de Kafka SQL, continuamos agregando la acción correspondiente, configuramos la instrucción SQL escrita y conectamos el resultado de la detección con Kafka.
    Haga clic en el botón Agregar en la acción de respuesta, seleccione los datos del puente a la acción de Kafka, seleccione el recurso que acaba de seleccionar y complete el tema emq creado anteriormente para el tema de Kafka
    Inserte la descripción de la imagen aquí

prueba

Use la herramienta Websocket en el Panel de control para realizar la prueba.
Cambie a la página Herramientas -> Websocket, use cualquier cliente de información para conectarse a EMQ X y envíe la siguiente información a la tarjeta de mensajes después de que la conexión sea exitosa:

{
    
    
  "id": "NXP-058659730253-963945118132721-22",
  "speed": 32.12,
  "direction": 198.33212,
  "tachometer": 8081,
  "dynamical": 8.93,
  "location": {
    
    
    "lng": 116.296011,
    "lat": 40.005091
  },
  "ts": 1563268202
}

Inserte la descripción de la imagen aquí
Haga clic en el botón enviar y, a continuación, utilice el comando de Kafka para comprobar si el mensaje se ha producido correctamente: Hasta
Inserte la descripción de la imagen aquí
ahora, nos hemos dado cuenta del desarrollo empresarial de utilizar el motor de reglas para conectar el mensaje con Kafka a través del motor de reglas.

Supongo que te gusta

Origin blog.csdn.net/weixin_44455388/article/details/108253441
Recomendado
Clasificación