RabbitMQ基础知识

发布时间:2024年01月18日

1.RabbitMQ介绍

RabbitMQ是基于Erlang语言开发的开源消息通信中间件,是一个高性能的异步通讯组件
官网地址:RabbitMQ官网

2.MQ技术对比

RabbitMQActiveMQRocketMQKafka
公司RabbitApache阿里Apache
开发语言ErlangJavaJavaScala&Java
协议支持AMQP、XMPP、SMTP、STOMPOpenWire、STOMP、REST、XMPP、AMQP自定义协议自定义协议
可用性一般
单机吞吐量一般非常高
消息延迟微妙级毫秒级毫秒级毫秒以内
消息可靠性一般一般

3.RabbitMQ的整体架构及核心概念

(1)消息发送者(publisher)
(2)消息消费者(consumer)
(3)队列(queue):存储消息
(4)交换机(exchange):负责路由和转发消息
(5)虚拟主机(Virtual host):实现数据隔离
RabbitMQ整体架构

4.work Queues(任务模型)

(1)模型作用
就是让多个消费者绑定到一个队列,共同消费队列中的消息,可以加快消息处理速度
(2)模型规则
同一条消息只会被一个消费者处理
(3)模型设置
默认情况下,RabbitMQ会将消息一次轮询投递给绑定在队列上的每一个消费者。但这并没有考虑到消费者是否已经处理完消息,可能出现消息堆积。因此我们需要修改配置文件,设置preFetch值为1,确保同一时刻最多投递给消费者1条消息

spring:
    # RabbitMQ相关配置
  rabbitmq:
    # 配置虚拟主机名称
    virtual-host: system1
    # RabbitMQ管理端口号:15672;服务端口号:5672
    port: 5672
    # 配置使用者的名称和密码
    username: guest
    password: guest
    # 配置消费者信息
    listener:
      simple:
        # 设置每个监听者只能获取一条消息,处理完成才能获取下一条消息;作用:能者多劳
        prefetch: 1
        
文章来源:https://blog.csdn.net/Lyhdreamer/article/details/135664925
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。