Pessoal, no dia 15/Fev batemos um papo no Canal .NET com o título Message Broker & .Net Core – Introdução ao RabbitMQ. Nesse bate-papo apresentamos RabbitMQ como Message Broker, mas com foco no AMQP, que por sua vez desponta como principal standard, amplamente utilizado e implementado por diversos serviços, projetos e produtos, oferecendo maior flexibilidade na hora de escolher sua implementação de message broker.
Na narrativa abordei modelos de integração mais antigos, até uma implementação com AMQP, mostrando features, e algumas dicas valiosíssimas que ajudam no entendimento de alguns elementos, que a princípio parecem não fazer muito sentido, mas depois se mostram valiosíssimos dada a sua simplicidade e flexibilidade.
Hangout (Gravado)
Se você quer saber mais sobre RabbitMQ, AMQP, e conhecer algumas demonstrações de uso, fique de olho aqui no site pois tem muito conteúdo a respeito.
Apresentação
[slideshare id=88038393&doc=20-rabbitmq-180215092334]
Demos e Código Fonte
RabbitMQ – Exemplos de Setup
RabbitMQ no Docker (Este projeto consistem em um conjunto de dockerfiles que demonstram as diversas formas de configurar e habilitar plugins no RabbitMQ)
No github separei em um modelo gradativo do mais simples para o mais complexo, adicionando features a cada nova pasta: Gradualmente adicionei vhosts à configuração, depois volumes, plugins (management, mqtt, stomp, nativo e com suporte web), até termos uma instância full featured.
Apresentei também demos com AMQP + .NET Core além de MQTT e STOMP usando as páginas de exemplo que vão embarcadas no RabbitMQ.
O código está no meu github: https://github.com/luizcarlosfaria/CanalDotNet-MessageBroker
Youtube Downloader
As demos anteriores são muito boas, mas precisava mostrar algo mais “real”, então apresentei esse projeto. Esse foi um projeto que serviu de narrativa entre dezembro e fevereiro, me ajudando a apresentar cenários reais de uso de RabbitMQ entre outros diversos elementos. A segunda demonstração foi pautada sob esse projeto e seu código fonte está disponível no github.
https://github.com/luizcarlosfaria/youtube-downloader
Luiz Carlos,
Qual a melhor forma de trabalhar com um cluster docker em uma empresa, criando um cluster para cada stack que é criada e este seria específico para esta stack ou a empresa ter um cluster geral onde conteria todas as stacks da empresa?
Roberto, a estratégia corporativa não é uma bala de prata. Depende de como sua empresa funciona, qual o tamanho do cluster.
Eu prefiro clusters menores o que me dá flexibilidade para adicionar plugins, fazer upgrade, enfim, a gestão é melhor. Para um cluster corporativo, não faz sentido usar docker nesse cluster.
Cada cenário possui seus problemas, comece pequeno, cresça de acordo com a demanda. É uma boa abordagem. Já que você nunca fez, vai ser difícil tomar decisões certas de cara, portanto crescendo organicamente, com a demanda, você consegue amadurecer junto.
Obrigado Luiz Carlos, esclareceu meus pontos de dúvidas!!!
Luiz Carlos,
Estou com um docker-compose onde subo o rabbitmq mas o mesmo não criar meu usuário setado no environment, criando apenas o guest, vou colocar meu compose abaixo, pode dar uma olhada por favor para eu entender o que estou fazendo de errado para ele não ler as variáveis de ambientes setadas?
version: ‘3’
services:
spider:
build:
context: .
dockerfile: Dockerfile
networks:
– crawlernet
# restart: always
depends_on:
– rabbitmq
rabbitmq:
image: rabbitmq:3-management-alpine
hostname: “rabbitmq”
restart: always
ports:
– “15672:15672”
# – “5672:5672”
# – “25672:25672”
environment:
RABBITMQ_DEFAULT_USER: kurier
RABBITMQ_DEFAULT_PASS: 123@login
RABBITMQ_ERLANG_COOKIE: kuriertecnologia
RABBITMQ_DEFAULT_VHOST: vhost
networks:
– crawlernet
volumes:
– mq_data:/var/lib/rabbitmq/mnesia
volumes:
mq_data:
networks:
crawlernet:
Conseguiria me enviar via gist para que possa validar?
Pelo que vi, você está usando volumes, rode um “`docker-compose down -v“` para remover os volumes antes de rodar o “`docker-compose up“`, há a possibilidade de você está alocando volumes antigos nos containers novos.
Luiz parabéns pelo post. Procuro algo pra substituir o SNS da AWS, ele seria indicado? no caso quero colocar na fila e criar as assinaturas pra quem quiser ser avisado, seria isso.