RabbitMQ学习笔记

1消息队列基础

1.1同步异步

同步调用

  • 时效性强

  • 拓展性差

  • 性能下降

  • 级联失败

异步调用

  • 业务解耦,拓展性强

  • 无需等待,性能好

  • 故障隔离

  • 缓存信息,流量削峰填谷

  • 时效性差

  • 不确定执行是否成功

1.2MQ技术选型

在这里插入图片描述

2安装

2.1安装步骤

linux环境,用docker安装

  1. 下载rabbitmq镜像

    docker pull rabbitmq:3.7.15
    
  2. 创建容器

    docker run -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -v mq-plugins:/plugins --name rabbitmq --hostname myrabbitmq -p 15672:15672 -p 5672:5672 -d rabbitmq:3.7.15
    
  3. 查看容器

    docker ps
    

    在这里插入图片描述

  4. 配置管理页面插件

    docker exec -it rabbitmq /bin/bash
    rabbitmq-plugins enable rabbitmq_management
    
  5. 访问管理页面ip:15672,账号密码为创建容器的RABBITMQ_DEFAULT信息

在这里插入图片描述

2.2架构和概念

  • publisher:消息发送者

  • consumer:消息消费者

  • queue:队列,负责存储消息

  • exchange:交换机,负责路由转发消息

  • virtual-host:虚拟主机,负责数据隔离

在这里插入图片描述

3Java客户端

3.1AMQP

高级消息队列协议

Spring AMQP:基于AMQP协议定义的一套API规范

3.2简单发送接收消息

rabbitmq管理页面创建队列testQueue

微服务项目,引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

配置rabbitmq信息

spring:
  rabbitmq:
    host: ip
    port: 5672
    virtual-host: /
    username: username
    password: password

发送,用单元测试

@SpringBootTest(classes = UserApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SpringAmqpTest {
   
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    void test() {
   
        String queue = "testQueue";
        String message = "hello";
        rabbitTemplate.convertAndSend(queue, message);
    }
}

接收

@Component
public class MqListener {
   

    @RabbitListener(queues = "testQueue")
    public void listen(String message) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值