RabbitMQ

一、docker安装mq

docker run \
 -e RABBITMQ_DEFAULT_USER=islunatic\
 -e RABBITMQ_DEFAULT_PASS=islunatic \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 --network fitzone-net\
 -d \
 rabbitmq

进入服务器 打开15672和5672端口 如果无法访问 运行以下代码

#进入容器
docker exec -it myrabbitmq bash
#安装插件
rabbitmq-plugins enable rabbitmq_management

二、项目配置mq

spring:
  rabbitmq:
    host: islunatic.icu # 你的虚拟机IP
    port: 5672 # 端口
    virtual-host: / # 虚拟主机
    username: islunatic # 用户名
    password: islunatic # 密码

三、使用mq

1、首先在启动类上开启任务调度

2、生产者

java 复制代码
//注入rabbitmq
@Autowired
private RabbitTemplate rabbitTemplate;

//发送消息
rabbitTemplate.convertAndSend("amq.topic","pay.success",orders.getNumber);

3、消费者

java 复制代码
@Component
@RequiredArgsConstructor
public class PayListener {
    private final OrdersService ordersService;

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "order.pay.queue", durable = "true"),
            exchange = @Exchange(name = "amq.topic", type = ExchangeTypes.TOPIC),
            key = "pay.success"
    ))
        public void listenPaySuccess(Long orderId){
        ordersService.markOrderPaySuccess(orderId);
    }
}
相关推荐
月夜星辉雪1 小时前
【RabbitMQ 项目】服务端:数据管理模块之消息管理
分布式·rabbitmq
guitarCC4 小时前
spark Rdd的创建方式
大数据·分布式·spark
Yz98764 小时前
Hadoop里面MapReduce的序列化与Java序列化比较
java·大数据·jvm·hadoop·分布式·mapreduce·big data
不能再留遗憾了6 小时前
RabbitMQ 高级特性——发送方确认
分布式·rabbitmq·ruby
益达_z6 小时前
中间件知识点-消息中间件(Rabbitmq)一
分布式·中间件·rabbitmq
.生产的驴9 小时前
SpringBoot 消息队列RabbitMQ 消息确认机制确保消息发送成功和失败 生产者确认
java·javascript·spring boot·后端·rabbitmq·负载均衡·java-rabbitmq
.生产的驴9 小时前
SpringBoot 消息队列RabbitMQ在代码中声明 交换机 与 队列使用注解创建
java·spring boot·分布式·servlet·kafka·rabbitmq·java-rabbitmq
lipviolet10 小时前
Redis系列---Redission分布式锁
数据库·redis·分布式
spiker_18 小时前
RabbitMQ 常见使用模式详解
分布式·rabbitmq
不能再留遗憾了18 小时前
RabbitMQ 高级特性——持久化
分布式·rabbitmq·ruby