Em uma solução de Internet das Coisas (IoT), os dispositivos IoT enviam eventos (notificações, reconhecimentos, telemetria) para o aplicativo para obter insights. Os aplicativos podem exigir subconjuntos específicos de eventos para processamento ou armazenamento em diferentes pontos finais. Esses eventos também podem precisar ser encaminhados para diferentes serviços para processamento posterior. À medida que a solução de IoT se expande, o número de dispositivos, o volume de eventos, a variedade de eventos e os diferentes serviços também variam. Um método flexível, escalável, consistente e confiável para rotear eventos é necessário para atender a esse padrão.
Potenciais casos de utilização
Um ponto de venda está monitorando as geladeiras para sua seção de alimentos congelados:
- Um alerta é enviado quando a temperatura dos frigoríficos ultrapassa um limite pré-determinado. Uma regra de roteamento pode ser criada com a regra de limite para enviar esses eventos específicos para um sistema de alerta.
- A equipe de ciência de dados está construindo um modelo de deteção de anomalias para identificar problemas com as geladeiras antes que qualquer uma delas quebre. Uma regra de roteamento de mensagens pode enviar todos os dados brutos de telemetria para uma conta de armazenamento especificamente para a equipe de ciência de dados usar para treinamento e modelagem.
Este cenário aplica-se às indústrias de retalho, energia e ambiente.
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Em uma plataforma IoT, regras podem ser criadas para roteamento refinado de eventos. Uma ou mais regras podem ser configuradas na plataforma IoT. As regras serão aplicadas aos eventos de entrada e são encaminhadas para o(s) ponto(s) de extremidade específico(s).
Características
Aqui estão algumas considerações ao usar esse padrão.
Taxa de transferência de pontos de extremidade: os pontos de extremidade que recebem eventos devem ser capazes de lidar com a entrada de eventos enviados por meio de roteamento. Certifique-se de que os serviços de ponto de extremidade tenham a capacidade de ingerir e armazenar os dados até que sejam consumidos.
Formato dos eventos: Para que o roteamento seja escalável e flexível, os eventos devem ter um formato comum para garantir a interoperabilidade entre protocolos.
Tratamento de eventos: se um evento corresponder a várias rotas que apontam para o mesmo ponto de extremidade, ele deverá ser entregue a esse ponto de extremidade apenas uma vez. Também é importante garantir a ordenação das mensagens nessas situações.
Duplicação de eventos: Para lidar com a duplicação de mensagens, recomendamos carimbar um identificador exclusivo nas propriedades do aplicativo da mensagem no ponto de origem, que geralmente é um dispositivo ou um módulo. O serviço que consome as mensagens pode então lidar com mensagens duplicadas usando esse identificador.
Rota de fallback: os eventos que não correspondem a nenhuma regra devem aterrissar em uma rota de fallback para que possam ser abordados adequadamente e nenhum evento seja perdido.
Eventos não relacionados à telemetria: as soluções de IoT têm diferentes tipos de eventos, como alterações de estado do dispositivo e eventos do ciclo de vida do dispositivo. A rota de eventos deve ser capaz de capturar e aplicar regras a esses eventos não telemétricos para permitir a automação e o monitoramento.
Quando usar este padrão:
Envio de mensagens de telemetria do dispositivo, eventos do ciclo de vida do dispositivo ou eventos de alteração de gêmeos do dispositivo para pontos de extremidade específicos determinados por regras.
Filtragem de eventos aplicando regras específicas.
Este padrão não é recomendado para:
- Roteamento baseado em análise de dados complexos em tempo real de dados de séries temporais. Por exemplo, ao comparar os dados de telemetria média de 15 minutos. Se a análise de dados em tempo real for necessária, use um serviço de análise em tempo real para os dados de caminho ativo.