1.windows安装rabbitmq
需准备两个软件 ,一定要注意二者之间的版本关系,否则安装一半还需要重新下载
otp_win64_20.2.exe(提取码:1234)
rabbitmq-server-3.7.4.exe(提取码:1234)
下图是版本对应关系:
文章图片
先管理员权限运行安装otp_win64_20.2.exe的这个,一直下一步,然后在安装rabbitmq,接着一直下一步,直到安装完成,cmd命令进入
D:\worksoft\rabbitmq\mq\rabbitmq_server-3.7.4\sbin目录
执行命令:rabbitmq-plugins enable rabbitmq_management
文章图片
【rabbitmq|初学rabbitmq总结】
重启rabbitmq,重启之前最好检查一下进程是否完全关闭,通过任务管理器查看erl开头进程,共两个,关掉,依然进入到rabbitmq下的sbin目录,双击启动rabbitmq-server.bat服务,出现如下形式即为启动成功,以后每次启动服务可直接双击该服务就可以了。
文章图片
2.rabbitmq访问地址
http://127.0.0.1:15672/#/
默认用户名密码都是guest
3.登录之后
文章图片
4.引入依赖
org.springframework.boot spring-boot-starter-amqp
5.配置文件
spring:
rabbitmq:
username: rabbitmq
password: 123456
host: 127.0.0.1
port: 5672
virtual-host: /test#设置的虚拟机
listener:
simple:
acknowledge-mode: manual#设置手动应答,不设置就是自动应答
6.创建配置类文件,在类上加@Configuration,目的是类启动的时候就加载,在这个类里面加三类东西
(1)exchage交换机
@Bean
public TopicExchange topicExchange001() {
return new TopicExchange("test_success_exchange", true, false);
}
//通过该段代码生成了一个test_success_exchange交换机
(2)队列
//通过该段代码生成一个名为queue1的队列,实体类为testQueue
@Bean
public Queue testQueue(){
return new Queue("queue1",true,false,false);
}
(3)队列和交换机绑定
//通过该段代码将交换机和队列进行绑定,关键路由为routekey
@Bean
public Binding bindQueueAndExchange(@Qualifier("testQueue") Queue queue, @Qualifier("topicExchange001") TopicExchange topicExchange){
return BindingBuilder.bind(queue).to(topicExchange).with("routekey");
}
7.发送消息
(1)引入模板
@Autowired(2)调用
private RabbitTemplate rabbitTemplate;
rabbitTemplate.convertAndSend("test_success_exchange","routekey","success is ok");8.接收消息
test_success_exchange:定义交换机
routekey:消费者和接收者之间的路由key
success is ok:发送的消息
(1)接受消息的类上需加注解,实例化 如:@Service、@Component等
(2)加监听消息的注解,在方法上
@RabbitListener(containerFactory = "rabbitListenerContainerFactory",queues = "queue1")public void getMessage(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG)long deliveryTag) throws IOException {System.out.println("msgmsgmsgmsgmsg--------------"+msg); channel.basicReject(deliveryTag,false); //手动应答}
推荐阅读
- java|java实现文件切片上传百度云+断点续传
- 面试|HashMap常问的11个面试题 你会几个
- SpringBoot|SpringBoot自定义分布式缓存starter 并用@Enablexx 控制缓存功能是否启用
- 多线程|【java】 如何自己写一把多线程锁 中 重写lock,trylock,unlok方法
- linux|Linux 安装项目软件 MySql Redis Nginx RabbitMQ Docker 轻松 详细
- 蓝桥杯|蓝桥杯AcWing学习笔记 4-3排序的学习(附相关蓝桥真题(小朋友排队)(Java))
- #|蓝桥杯31天冲刺打卡题解(Day10)
- #|蓝桥杯31天冲刺打卡题解(Day4)
- #|蓝桥杯31天冲刺打卡题解(Day11)