fbpx
Message Broker & .Net Core – Introdução ao RabbitMQ
Publicado em: quarta-feira, 11 de abr de 2018
Tags: AMQP | RabbitMQ

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

 

 

7 Comentários

  1. Roberto Lopes Ramos

    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?

    Responder
    • Luiz Carlos Faria

      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.

      Responder
      • Roberto Lopes Ramos

        Obrigado Luiz Carlos, esclareceu meus pontos de dúvidas!!!

        Responder
  2. Roberto Lopes Ramos

    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:

    Responder
    • Luiz Carlos Faria

      Conseguiria me enviar via gist para que possa validar?

      Responder
    • Luiz Carlos Faria

      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.

      Responder
  3. Alexandre Andrade

    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.

    Responder

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[docker de a a z]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.