Link

Python + Nameko.

O Nameko é um framework de microsserviços Python baseado em fila RPC e http.

A ideia é apresentar um breve tutorial desse framework baseado em microsserviços em fila RPC.

Esse modelo de microsserviço baseado em fila RPC é interessante quando a comunicação é feita por eventos gerados por outras aplicações.

Se a ideia é utilizar microsserviços que seja acionado por pessoas, o ideal é utilizar o formato http que não será abordado nesse Post.

O Nameko é baseado em fila MQ, então é importante que seja instalado previamente o RabbitMQ.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/2021/nameko.html.

Link

Spring + JMS embarcado.

Nesse Post vamos demonstrar um pequeno exemplo utilizando Spring com fila JMS embarcado.

Com 3 classes podemos implementar um modelo de fila JMS e ActiveMQ embarcado de forma simples.

Utilizar a tecnologia JMS pode resolver vários problemas de acoplamento e ser agnóstico a diferentes tecnologias.

Esse modelo de fila embarcada pode ajudar em algumas soluções onde se precisa tratamento de chamadas assíncronas.

Outra vantagem deste modelo é que não existe a necessidade de configurar uma infraestrutura para tratamento de filas.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/springQueue.html.

Citação

Apache RocketMQ.

O RocketMQ é um framework Java para mensageria e plataforma de streaming de baixa latência.

Um framework de mensageria open source que é utilizado desde 2012 pela plataforma do Alibaba.

Com uma configuração simples, capacidades para auditorias e sua baixa latência, o RocketMQ é ideal para instituições financeiras.

O RocketMQ é uma ótima forma de desacoplar algumas funcionalidades da aplicação.

Como o framework já está consolidado desde 2012, existem várias implementações como Python e Nodejs.

Acesse o artigo completo em: https://nakatech.herokuapp.com/article/rocketMQ.html.

Citação

Multiprocessamento.

Nesta segunda parte sobre multiprocessamento vamos mostrar como compartilhar os dados entre os processos.

No Post anterior, mostramos como criar os processos e sua manipulação.

Lembrando que em um multiprocessamento, cada processo tem seu próprio espaço em memória e rodam independentes.

Para compartilhar os dados entre os processos, vamos utilizar 2 tipos de canais de comunicações:

  1. Queue: Uma forma simples de comunicação entre os processos, basicamente uma fila onde se recebe e envia as mensagens;
  2. Pipe: Nesse tipo de comunicação, é criado uma fila que existe somente 1 ponto de entrada e 1 ponto de saída.

Acesse o tutorial completo em: https://nakatech.herokuapp.com/article/pyProcessor2.html.

Mosquitto.

O Mosquitto é um message broker de código aberto que implementa o protocolo Mqtt.

O protocolo Mqtt tem a abordagem de ser leve e enviar mensagens de forma rápida e segura utilizando o padrão publish/subscribe.

Por ser leve e rápido, o Mosquitto é muito utilizado em soluções com IOT (Internet das coisas).

A utilização do Mosquitto é bem simples o que ajuda muito em desenvolvimento e testes de envio de mensagens em fila.

O Mosquitto é multi plataforma, então podemos utilizar em qualquer sistema operacional. Os exemplos que vamos mostrar serão na plataforma Linux Ubuntu.

Instalação do Mosquitto.

A instalação que vamos mostrar é feita no Ubuntu 18.10, repare como é simples tanto a instalação como a utilização.

Para instalar, digite no seu terminal como sudo:
$ sudo apt-get install mosquitto mosquitto-clients

Para testar os eventos de envio e recebimento de mensagens, vamos abrir 2 terminais:

Para criar um subscriber, ou a fila que vamos receber a mensagem, digite no terminal:
$ mosquitto_sub -t topic/test

Para enviar uma mensagem(Publisher), abra outro terminal e digite:
$ mosquitto_pub -t topic/test -m "Mosquitto test!"

Repare no terminal onde executamos o Subsriber o recebimento da mensagem enviado pelo Publisher:

Conclusão.

O Mosquitto é uma ótima opção para soluções rápidas de troca de mensagens utilizando o protocolo Mqtt. Por ser leve e rápido o Mosquitto é uma ótima opção para utilização em projetos com IOT.