RabbitMQ快速上手

首先他的需求实在什么地方。我美哟明显的感受到。

它给我的最大感受就是脱裤子放屁------多此一举,的感觉。

他将信息发送给服务端中间件。在由MQ服务器发送消息。

服务器会监听消息。

但是它不仅仅局限于削峰填谷和稳定发送信息的功能,它还有其他重要的作用。

  1. 异步通信:MQ 允许发送者将消息发送到队列中,然后接收者可以异步地从队列中获取消息并进行处理。这种异步通信方式可以提高系统的响应性能和并发处理能力。

  2. 解耦:通过使用 MQ,发送者和接收者之间的耦合度可以降低。发送者只需要将消息发送到队列中,而不需要直接与接收者进行通信。这样,发送者和接收者可以独立演化和扩展,而不会相互影响。

  3. 可靠性:MQ 通常提供持久化机制,即使在发送者发送消息后,如果接收者当前不可用,消息也不会丢失。接收者在可用时可以从队列中获取消息并进行处理,确保消息的可靠传递。

  4. 扩展性:通过使用 MQ,可以实现系统的解耦和水平扩展。可以增加多个消费者来处理队列中的消息,从而提高系统的处理能力。

  5. 缓冲能力:MQ 具有缓冲能力,可以处理瞬时的高峰流量。当发送者发送消息的速度超过接收者的处理速度时,消息可以在队列中暂存,避免系统过载。

那如何部署上手呢

1.首先是导包(这里使用的springboot整合了MQ)

XML 复制代码
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-amqp</artifactId>
    </dependency>

2.因为使用了虚拟机的端口,这里需要配置端口信息等

XML 复制代码
#该测试模块的端口号
server:
  port: 8080

#连接MQ的配置信息
spring:
  rabbitmq:
    password: guest
    username: guest
    port: 5672
    host: 192.168.79.133
#    设置每次只处理一条信息。不浪费时间
    listener:
      simple:
        prefetch: 1

3.配置Bean实例。这里可以定义队列名称

XML 复制代码
@Configuration
public class RabbitMQConfig {
    //声明推送的队列名
    private String simplename = "spring.lz.queue";

    /**
     * 创建一个队列对象,
     *
     * @return
     */
    @Bean
    public Queue simpleQueue() {
        return new Queue(simplename);
    }
}

下面是一对一的消息发送

4.使用整合的模板向MQ发送消息

使用整合的工具类明确发送的对象。

java 复制代码
@RestController
public class SendController {
    //使用定义的模板类来完成操作
    @Resource
    private RabbitTemplate rabbitTemplate;

    @RequestMapping("/sead")
    public String send() {
        //使用完成发送消息向消息队列
        rabbitTemplate.convertAndSend("spring.lz.queue","new Message()");
        return "success";
    }
}

5,设置监听器

java 复制代码
@Component
public class SimpleListener {

    @RabbitListener(queues={"spring.lz.queue"})
    public void demo(){
        System.out.println("您好");
    }
}

前端发送请求后,将消息发送至MQ队列中。监听器在接收消息。

MQ有多种方式分别为:

一对一:一个对应一个监听器

一对多:一个对应两个监听器。两个监听器处理总量相等。(就像等于多了个处理器,分流分走了一半的任务)。一对多相对一对一只多了几个监听器处理消息。一对多默认是轮询的。但是慢的话,就让他慢着不太合适。可以设置配置文件

交换机模式:

广播:添加了交换机的理念,可以将一份消息多个监听器来重复消费。

定向:可以将消息通过校验密钥,传给"匹配的"密钥的用户(一个)。

通配符:算是定向的加强版,通过交换机的密钥,可以传输信息给指定用户(多个)

相关推荐
我想我不够好。7 小时前
监控学习 7.23 1.5hour
学习
泰勒朗斯9 小时前
Helicopter FBI-405尾电机版本设置
学习
minglie110 小时前
香橙派zero3配个iic屏显示ip
linux·学习
微露清风11 小时前
模拟算法学习记录
学习·算法
不爱记笔记11 小时前
上下班路上怎么消化技术视频?我把B站内容转成播客,通勤时间也能系统学习
学习·ai·音视频·知识库·知识管理
筱谙11 小时前
BES BLE CTKD 完整学习笔记
笔记·学习
过期动态12 小时前
【LeetCode 热题 100】找到字符串中所有字母异位词
java·数据结构·算法·leetcode·职场和发展·rabbitmq
minglie112 小时前
zynq开发板的xvcServer作为烧录器
学习
微露清风13 小时前
快速排序算法学习记录
学习·算法·排序算法
AAA@峥14 小时前
系统化学习 MySQL:数据类型、库表管理、增删改查全解析
数据库·学习·mysql