Esse projeto foi feito com gradle. Poderá executá-lo usando o gradle por meio de linha de comando ou dentro de uma IDE, como o IntelliJ ou VSCode.
Nesse projeto estão exemplos do tutorial oficial do RabbitMQ
É necessário ter um servidor RabbitMQ em execução na máquina local e com usuário e senha padrão (guest/guest). No arquivo conexao.properties estão contidas as informações sobre o host
, username
e password
do servidor RabbitMQ. Veja a documentação oficial para instalar um servidor e colocá-lo em execução. Ou execute o servidor RabbitMQ dentro de um contêiner Docker usando as instruções apresentadas abaixo:
docker run --name servidor-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management-alpine
Cada exemplo é composto por dois programas, geralmente, um produtor e um consumidor. Abaixo é apresentado como executar cada um dos programas. A explicação do funcionamento de cada exemplo pode ser obtida na documentação oficial do RabbitMQ
No arquivo build.gradle foram criadas tarefas gradle para facilitar a execução de cada exemplo. Para cada exemplo foram criadas 2 tarefas e todas estestão dentro do grupo execution
do gradle.
Também é possível gerar um JAR contendo todos os exemplos, bem como as dependências. Para isso execute os passos abaixo:
- Entre no diretório do projeto
- Digite:
./gradlew shadowJar
- Será criado o pacote
std-1.0-all.jar
dentro do subdiretóriobuild/libs
Para executar cada exemplo com o JAR é necessário fazer algo como:
java -cp build/libs/std-1.0-all.jar ex01.hello.Consumidor
Abaixo são apresentados os exemplos, bem como as instruções de execução por meio das tarefas gradle.
Um simples hello world.
Execute cada uma das linhas abaixo em um terminal diferente e siga essa sequência de execução.
./gradlew -q ex01Produtor
./gradlew -q ex01Consumidor
Distribuindo tarefas por todos os processos trabalhadores (de forma igualitária - round robin).
Execute cada uma das linhas abaixo em um terminal diferente e siga essa sequência de execução.
./gradlew -q ex02Trabalhador
./gradlew -q ex02Tarefa
Enviando mensagens para diversos consumidores.
Execute cada uma das linhas abaixo em um terminal diferente e siga essa sequência de execução.
./gradlew -q ex03Receptor
./gradlew -q ex03Produtor
Recebendo mensagens de forma seletiva, escolhendo de qual fila receberá mensagens.
Execute cada uma das linhas abaixo em um terminal diferente e siga essa sequência de execução.
./gradlew -q ex04Receptor --args "info"
./gradlew -q ex04Emissor
Recebendo mensagens com base em padrões de texto (tópicos).
Execute cada uma das linhas abaixo em um terminal diferente e siga essa sequência de execução.
./gradlew -q ex05Receptor --args "saudacao"
./gradlew -q ex05Emissor --args "saudacao"
Estilo pedido/resposta de uma chamada de procedimento remota.
Execute cada uma das linhas abaixo em um terminal diferente e siga essa sequência de execução.
./gradlew -q ex06Servidor
./gradlew -q ex06Cliente