Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Eclipse Hono Agora Suporta Apache Kafka para Mensageria de Dispositivos Perfeita

Eclipse Hono é um projeto open-source para conectar grandes números de dispositivos heterogêneos a um backend (cloud). Hono define interfaces de serviço que permitem comunicação uniforme entre dispositivos, que podem usar protocolos amplamente diferentes, bem como aplicações de negócio. O projeto existe há algum tempo e tem sido usado com sucesso no Bosch IoT Device Management por vários anos. O que é novo é que agora suporta Apache Kafka para mensageria. Os benefícios resultantes e mudanças no uso do Hono são apresentados neste artigo.

Eclipse Hono Agora Suporta Apache Kafka para Mensageria de Dispositivos Perfeita

Dados vindos de dispositivos são transformados no Hono para um formato de mensagem uniforme por adaptadores de protocolo (ex: existem para MQTT, HTTP e CoAP) e passados a um sistema de mensageria. Aplicações de negócio leem essas mensagens, que são ou mensagens de telemetria ou eventos, diretamente do sistema de mensageria (também podem usar Comando e Controle para enviar mensagens a dispositivos e receber respostas). Para mensageria, que não faz parte do Hono mas deve ser provida externamente, o protocolo AMQP 1.0 tem sido usado até agora.

Desde a versão 1.7, Hono suporta Apache Kafka para mensageria como preview técnico. Um recurso chave do Hono é a definição e implementação de APIs para encaminhar mensagens de e para um sistema de mensageria. Como as definições de API são baseadas em mensageria e dependem diretamente de suas propriedades, suportar um novo sistema de mensageria é uma inovação fundamental para o Hono. Para todas as APIs de mensageria no Hono (telemetria, evento e comando e controle), novas especificações baseadas em Kafka foram criadas, tanto voltadas para o adaptador de protocolo quanto para a aplicação de negócio. Cuidado foi tomado para garantir que se comportem da forma mais similar possível às APIs baseadas em AMQP.

Benefícios

Apache Kafka é uma plataforma distribuída de streaming de eventos projetada para throughput muito alto enquanto fornece certas garantias na ordem das mensagens. É um ótimo ajuste para os requisitos do Hono sobre mensageria por várias razões. Benefícios-chave são:

Mudanças

AMQP 1.0 é um protocolo de comunicação onde peers se conectam para trocar mensagens. Em contraste, um cluster Kafka consiste em brokers que coordenam a escrita (e leitura) de dados em armazenamento permanente. Essa diferença tem duas consequências: Primeiro, uma mensagem fica disponível para recuperação por um tempo antes de ser eventualmente deletada. Para alcançar esse efeito no Hono com AMQP, você tipicamente provê um message broker separado onde eventos são armazenados para evitar perda de mensagens caso a aplicação de negócio esteja temporariamente indisponível. Com Kafka, toda mensagem é armazenada. Isso inclui mensagens de telemetria (o tempo de armazenamento, no entanto, depende da configuração dos tópicos de telemetria no cluster Kafka). Em segundo lugar, comunicar via armazenamento permanente desacopla as operações de envio e recebimento uma da outra: O adaptador de protocolo não pode mais reportar de volta ao dispositivo se não há consumidor conectado no momento. Em vez disso, simplesmente armazena as mensagens sem "saber" se ou quando uma aplicação de negócio as lerá.

Testando

Ao instalar Hono, você precisa implantar ou uma rede de mensageria AMQP ou um cluster Kafka. Também há a possibilidade de configurar Hono para usar ambos sistemas de mensageria. Então, cada tenant (um subconjunto de dispositivos e configuração) pode ser configurado para usar AMQP ou Kafka. O projeto Hono fornece um ambiente sandbox publicamente acessível na Internet onde você pode experimentar com Hono usando mensageria baseada em AMQP ou Kafka.

Exemplo prático

A seguir, guiamos você através de um pequeno exemplo de como usar mensageria baseada em Apache Kafka no sandbox do Hono. Você enviará uma mensagem de telemetria ao adaptador de protocolo HTTP e então a lerá do cluster Kafka.

Simulamos um dispositivo habilitado para Internet enviando comandos HTTP da linha de comando. Para isso, usamos a popular ferramenta open-source curl. Se não estiver instalado no seu computador, consulte as instruções de instalação na página inicial do curl. Para simular a aplicação de negócio, usamos o cliente de linha de comando do Hono, que pode ser baixado da página de downloads do Hono. Observe que Java deve ser instalado na versão 11 pelo menos para rodá-lo.

Se qualquer um dos comandos mostrados abaixo não funcionar (o que pode sempre acontecer com tais instruções), consulte o Kafka Messaging Guide onde as explicações cobrem mais detalhes.

Registrando um dispositivo

Primeiro, você precisa criar um novo tenant no sandbox para evitar interferir com outros usuários. O seguinte comando cria um tenant com ID aleatório e o configura para usar Kafka para mensageria.

$ curl -i -H "content-type: application/json" --data-binary '{
 "ext": {
 "messaging-type": "kafka"
 }
}' https://hono.eclipseprojects.io:28080/v1/tenants

A saída deve conter algo como: {"id":"85f63e23-1b78-4156-8500-debcbd1a8d35"}.

Agora copie este ID e defina-o como variável de ambiente da seguinte forma:

$ export MY_TENANT=85f63e23-1b78-4156-8500-debcbd1a8d35

Registre um dispositivo para o tenant:

$ curl -i -X POST https://hono.eclipseprojects.io:28080/v1/devices/$MY_TENANT

e mais uma vez forneça o ID retornado como variável de ambiente da seguinte forma:

$ export MY_DEVICE=4412abe2-f219-4099-ae14-b446604ae9c6

Finalmente defina uma senha para o dispositivo:

$ export MY_PWD=my-pwd
$ curl -i -X PUT -H "content-type: application/json" --data-binary '[{
 "type": "hashed-password",
 "auth-id": "'$MY_DEVICE'",
 "secrets": [{
 "pwd-plain": "'$MY_PWD'"
 }]
}]' https://hono.eclipseprojects.io:28080/v1/credentials/$MY_TENANT/$MY_DEVICE

Enviando uma mensagem

Agora que você registrou um dispositivo, pode enviar e receber mensagens.

Abra uma segunda janela de terminal para receber as mensagens. Vá ao diretório onde baixou o cliente de linha de comando do Hono. Agora inicie o cliente com o seguinte comando, certificando-se de substituir my-tenant pelo ID do tenant que você acabou de criar:

# no diretório onde o arquivo hono-cli-*-exec.jar foi baixado
$ java -jar hono-cli-*-exec.jar --spring.profiles.active=receiver,sandbox,kafka --tenant.id="my-tenant"

O cliente está pronto para receber mensagens se a saída contiver uma linha similar à seguinte:
10:23:01.807 [vert.x-eventloop-thread-0] INFO org.eclipse.hono.cli.app.Receiver - Receiver [tenant: 85f63e23-1b78-4156-8500-debcbd1a8d35, mode: all] created successfully, hit ctrl-c to exit

Agora você pode enviar uma mensagem do seu dispositivo simulado para o Hono. Para isso, volte à primeira janela de terminal. O seguinte comando envia uma mensagem de telemetria ao adaptador de protocolo HTTP:

$ curl -i -u $MY_DEVICE@$MY_TENANT:$MY_PWD -H "content-type: application/json" --data-binary '{"temp": 42}' https://hono.eclipseprojects.io:8080/telemetry

A mensagem deve agora ser impressa no segundo terminal.

Você também pode enviar um evento:

$ curl -i -u $MY_DEVICE@$MY_TENANT:$MY_PWD -H "content-type: application/json" --data-binary '{"hello": "kafka"}' https://hono.eclipseprojects.io:8080/event

Agora você deve ter, esperançosamente, sucesso em enviar mensagens de um dispositivo para o Hono e recebê-las do cluster Kafka. Como próximo passo, você pode dar uma olhada nos exemplos mais detalhados no Kafka Messaging Guide do Hono. Ele também mostra como enviar um comando da aplicação de negócio para o dispositivo e responder a ele. Se quiser se aprofundar, pode querer dar uma olhada nas especificações das APIs baseadas em Kafka, que podem ser encontradas nas API Specifications do Hono.

Conclusão

O sistema de mensageria é a base para a funcionalidade central do Eclipse Hono porque suas interfaces são fornecidas sobre ele. Suportar Kafka junto com AMQP 1.0 é uma mudança muito profunda para o Hono, onde grande ênfase foi colocada em garantir que interfaces possam ser facilmente mapeadas uma à outra. Os principais benefícios do Kafka são sua escalabilidade, suas garantias de ordenação, sua ampla adoção e riqueza de ofertas de serviços comerciais. As principais diferenças para mensageria com AMQP são que todos os tipos de mensagem são brokered. Isso significa que mensagens podem ser entregues mesmo se o destinatário estava desconectado por um momento. A comunicação também é desacoplada no tempo de forma que feedback direto do destinatário para o remetente de uma mensagem não é mais possível. Em um breve exemplo prático, mostramos como enviar mensagens de um dispositivo simulado para o sandbox do Hono e consumi-las do cluster Kafka.


Tecnologia industrial

  1. Temperaturas Críticas de Supercondutores Elementares e de Alta Temperatura (Kelvin)
  2. Resistência Dielétrica de Isoladores – Dados-Chave para Engenheiros Elétricos
  3. Regras Essenciais de Derivação: Referência Rápida
  4. Regras Fundamentais de Antiderivação: Constantes, Somas e Diferenças
  5. Eclipse Hono Lança Registro de Dispositivos Baseado em MongoDB — Escalável, Pronto para Produção
  6. Eclipse Hono 1.0.0 Lança: Plataforma Unificada Open-Source de Conectividade IoT
  7. Autenticação Segura de Dispositivos com Certificados X.509 no Eclipse Hono
  8. PCIs Robustas para Condições Extremas: Projeto, Benefícios e Aplicações
  9. Otimizando Design de PCB para Fabricação: Estratégias-chave e Melhores Práticas
  10. Fabricação de PCB na Era do 5G: Tendências e Desafios