Estou planejando começar a implementar o caso de uso da IoT abaixo.
Caso de uso
Os dispositivos IoT enviarão 100 mil mensagens / minuto para o gateway via repetidores e o gateway transferirá as mensagens para a nuvem. Eu quero rastrear os funcionários de uma organização. Os sensores serão fixados no cartão de identificação. O sensor envia os dados relacionados à localização (aprox. 15 KB / mensagem) para o gateway via repetidores. É para fins analíticos. Depois que os dados forem transmitidos para a nuvem, farei algumas análises e armazenarei no banco de dados e exibirei em uma página da web. Com base nesses dados de análise, mostrarei a localização atual do usuário e também a localização móvel do usuário em um determinado período de tempo passado (última 1 hora ou 2 horas ou 1 dia).
Vou fazer algum processamento sobre os dados e enviá-los para o front end / DB.
Eu analisei o básico da IoT e sua arquitetura. Decidi usar a arquitetura de pilha "SMACK" (Spark, Mesos, Akka, Cassandra, Kafka).
Decidi usar o "cliente nativo Kafka" no gateway para publicar as mensagens na nuvem.
Devo usar o protocolo MQTT para transferir a mensagem para Kafka? Ou o MQTT não é necessário para o caso de uso acima?
Se sim, qual seria o benefício de usar o MQTT com a arquitetura "SMACK"?
Respostas:
Você não precisa usar o MQTT. Os clientes Kafka instalados nos cartões de identificação dos funcionários podem enviar dados diretamente para o broker kafka na nuvem. Portanto, enquanto você estiver usando o Kafka para o gateway, você poderá realmente usar o kafka para os próprios sensores.
Kafka e MQTT não são intercambiáveis, eles têm lados fortes diferentes (consumo de energia, consumo de largura de banda, taxa de transferência ...), mas acho que você sabe disso, assumindo a complexidade da sua pilha. Kafka pode lidar com 100 mil mensagens / minuto.
Se você decidir usar o MQTT de qualquer maneira, aqui está uma postagem de blog sobre como a IBM usa o MQTT e o Kafka no mesmo projeto. O projeto deles também é sobre mobilidade, então acho que pode ajudar.
Gerenciando dispositivos de IoT com Kafka e MQTT
fonte
Não há nenhum problema com quase qualquer tipo de intermediário MQTT para manipular essa carga, especialmente para mensagens qos = 0 (provavelmente no seu caso). Temos carga constante no nosso broker com 100.000 mensagens recebidas (0,5 KB) por segundo (+ SSL). O problema pode aparecer do lado do tráfego, não do pps.
Em relação à arquitetura do seu sistema, meu conselho pessoal - tente torná-lo o mais simples possível. E média simples - apenas alguns componentes / serviços intermediários. Se você pode conectar diretamente dois serviços - faça-o. Você sempre terá a possibilidade de torná-lo mais complexo quando começar a adicionar recursos.
fonte