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);
    }
}
相关推荐
程序员小凯30 分钟前
Spring MVC 分布式事务与数据一致性教程
分布式·spring·mvc
Yeats_Liao38 分钟前
Go语言技术与应用(二):分布式架构设计解析
开发语言·分布式·golang
2301_768350234 小时前
RabbitMq快速入门程序
分布式·rabbitmq·ruby
DoveLx4 小时前
RabbitMQ:构建高可用异步通信系统的基石
消息队列·rabbitmq
数智顾问7 小时前
破解 Shuffle 阻塞:Spark RDD 宽窄依赖在实时特征工程中的实战与未来
大数据·分布式·spark
JAVA学习通8 小时前
Kafka在美团数据平台的实践
分布式·kafka
JAVA学习通9 小时前
Replication(下):事务,一致性与共识
大数据·分布式·算法
失散1312 小时前
分布式专题——45 ElasticSearch基础数据管理详解
java·分布式·elasticsearch·架构
没有bug.的程序员12 小时前
分布式监控体系:从指标采集到智能告警的完整之道
java·分布式·告警·监控体系·指标采集
没有bug.的程序员18 小时前
服务网格 Service Mesh:微服务通信的终极进化
java·分布式·微服务·云原生·service_mesh