1. Baixe e instale o Erlang
Como o servidor RabbitMQ é escrito com base em Erlang, Erlang precisa ser instalado primeiro.
1) Baixar
O endereço de download é o seguinte:
https://www.erlang.org/downloads
O download aqui é relativamente lento, você pode consultar o seguinte disco de rede Baidu:
Link: https://pan.baidu.com/s/1oXq5QX3IlzRq5L-mk1gC4Q
Código de extração: luna
2) instalar
Selecione o diretório de instalação correspondente até o próximo.
3) Configurar variáveis de ambiente
Crie uma nova variável na variável do sistema
nome da variável (N): ERLANG_HOME
valor da variável (V): H:\SW_install\erl-24.1
Nota: O valor da variável precisa ser modificado de acordo com sua situação real
Adicione ;%ERLANG_HOME%\bin ao final do valor da variável Path .
4) Verifique a exatidão da configuração da variável de ambiente
echo %ERLANG_HOME%
2. Baixe e instale o RabbitMQ
1) Baixar
O endereço de download é o seguinte:
https://www.rabbitmq.com/install-windows.html#installer
2) instalar
Selecione o diretório de instalação correspondente até o próximo.
3) Configurar variáveis de ambiente
Crie uma nova variável na variável do sistema
nome da variável (N): RABBITMQ_SERVER
valor da variável (V): H:\SW_install\RabbitMQ Server\rabbitmq_server-3.9.7
Nota: O valor da variável precisa ser modificado de acordo com sua situação real
Adicione ;%RABBITMQ_SERVER%\sbin ao final do valor da variável Path .
4) Verifique a exatidão da configuração da variável de ambiente
echo %RABBITMQ_SERVER%
5) Instale os plugins rabbitmq
O comando cmd abre a janela da linha de comando e entra no diretório bin de instalação do rabbitmq (o meu é: H:\SW_install\RabbitMQ Server\rabbitmq_server-3.9.7\sbin)
Execute o seguinte comando para instalar o plugin:
rabbitmq-plugins.bat enable rabbitmq_management
Se o seguinte erro for relatado aqui:
ERLANG_HOME não está definido corretamente
Após confirmar que as variáveis de ambiente configuradas estão corretas, vá do diretório C: para o diretório bin de instalação do RabbitMQ camada por camada e execute a instalação do plug-in novamente para resolver o problema .
6) Inicie o serviço RabbitMQ
net start RabbitMQ
Ou
no diretório sbin do rabbitmq, clique duas vezes para executar o arquivo rabbitmq-server.bat .
7) Pare o serviço RabbitMQ
net stop RabbitMQ
8) Veja o status do serviço
rabbitmqctl status
9) Página de acesso ao RabbitMQ
http://localhost:15672
conta/senha: convidado / convidado
Após o login, a página é a seguinte:
3. Uso simples do RabbitMQ
1) Referência pom do RabbitMQ
<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.13.1</version>
</dependency>
2) Remetente da mensagem
package com.miracle.luna.rabbitmq;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.nio.charset.StandardCharsets;
/**
* @author Miracle Luna
* @date 2021/10/19
*/
public class SendMQ {
private final static String QUEUE_NAME = "hello";
public static void main(String[] args) throws Exception{
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setPort(5672);
factory.setUsername("guest");
factory.setPassword("guest");
final Connection connection = factory.newConnection();
final Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello, RabbitMQ!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes(StandardCharsets.UTF_8));
System.out.println("Send '" + message + "'");
channel.close();
connection.close();
}
}
O resultado da operação é o seguinte:
Send 'Hello, RabbitMQ!'
3) Receptor de mensagens
package com.miracle.luna.rabbitmq;
import com.rabbitmq.client.*;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
/**
* @author Miracle Luna
* @date 2021/10/19
*/
public class RecvMQ {
private final static String QUEUE_NAME = "hello";
public static void main(String[] args) throws Exception{
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setPort(5672);
factory.setUsername("guest");
factory.setPassword("guest");
final Connection connection = factory.newConnection();
final Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println("Waiting for messages...");
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
String message = new String(body, StandardCharsets.UTF_8);
System.out.println("Received '" + message + "'");
}
};
channel.basicConsume(QUEUE_NAME, true, consumer);
}
}
O resultado da operação é o seguinte:
Waiting for messages...
Received 'Hello, RabbitMQ!'
Você pode ver o número de mensagens em todas as filas na guia Filas
4. Comandos comuns
1) Exibir lista de usuários: rabbitmqctl list_users
2) Adicionar um novo usuário: rabbitmqctl add_user root password
3) Excluir um usuário: rabbitmqctl delete_user test
4) Modificar a senha do usuário: rabbitmqctl change_password root 123456
5) Conceder função de administrador: rabbitmqctl set_user_tags administrador raiz
6 ) Conceder permissões de usuário: rabbitmqctl set_permissions -p / root "." "." ".*"
7) Exibir lista de filas: rabbitmqctl list_queues
8) Excluir uma fila: rabbitmqctl delete_queue test
9) Redefinir (se você esquecer a senha, poderá aplique Reset, mas os dados serão perdidos, use com cuidado!!!):
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app