众所周知,rabbitMQ依赖于Erlang,所以Erlang是前置。但是rabbitMQ和Erlang又有版本对应关系,版本对应自己查看。点击这里查看版本对应关系
centOS心态炸了,写好文章的全没了。写个简易版的再,再也不点CTRL+Z了。
下载Erlang:Releases · rabbitmq/erlang-rpm · GitHub
下载RabbitMQ:Releases · rabbitmq/rabbitmq-server · GitHub
rpm -ivh erlang-23.3.4.1-1.el7.x86_64.rpm
# 查看安装
erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.2.2.1
Windowsyum install -y rabbitmq-server-3.9.14-1.el7.noarch.rpm
# 开启web管理界面 默认账号密码都是guest。端口是15672
rabbitmq-plugins enable rabbitmq_management
# 启动
rabbitmq-server -detached
# 查看rabbitmq服务状态
rabbitmqctl status
# 添加用户
rabbitmqctl add_user 账号 密码
# 设置用户角色权限
rabbitmqctl set_user_tags 账号 administrator
# 查看所有用户
rabbitmqctl list_users
Erlang下个exe文件,另一个地址:Index of /download/
RabbitMQ下个zip文件
Erlang一路安装完之后。配置一个ERLANG_HOME就好。
RabbitMQ解压之后
配置一个RABBITMQ_BASE,自己创一个data文件夹
配置完之后,到解压的sbin目录下,对我来说是D:aboutJavarabbitmq_server-3.9.20sbin这个目录去开启web管理页面,在这个目录打开cmd,执行
rabbitmq-plugins enable rabbitmq_management
然后双击 rabbitmq-server.bat 启动RabbitMQ。就完成环境配置。如果想方便一点可以自己添加环境变量启动时快捷一点。
SpringBoot和rabbitMQ的入门使用依赖
org.springframework.boot spring-boot-starter-amqp
配置
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: 123456
@Configuration
public class RabbitConfig {
public static class DirectExchangeDemoConfiguration {
// 创建 Queue
@Bean
public Queue demo01Queue() {
return new Queue("QUEUE_DOWN_FILE", // Queue 名字
true, // durable: 是否持久化
false, // exclusive: 是否排它
false); // autoDelete: 是否自动删除
}
// 创建 Direct Exchange
@Bean
public DirectExchange demo01Exchange() {
return new DirectExchange("EXCHANGE_DOWN_FILE",
true, // durable: 是否持久化
false); // exclusive: 是否排它
}
// 创建 Binding
// Exchange:Demo01Message.EXCHANGE
// Routing key:Demo01Message.ROUTING_KEY
// Queue:Demo01Message.QUEUE
@Bean
public Binding demo01Binding() {
return BindingBuilder.bind(demo01Queue()).to(demo01Exchange()).with("ROUTING_KEY_01");
}
}
}
发送
// 注入RabbitTemplate
// object发送至queue
rabbitTemplate.convertAndSend("QUEUE_DOWN_FILE",object);
接收
@Component
@RabbitListener(queues = "QUEUE_DOWN_FILE") // 与前边queue name 对应
@Slf4j
public class RabbitConsumer {
@RabbitHandler
public void onMessage(Object message) {
// 业务处理
}
}



