• 消息队列原理笔记


    1.消息生产者、消费消费者、队列

    • 消息生产者producer 发送消息到队列
    • 消费消费者consumer 从队列接受消息
    • broker MQ服务端,把消息从发送端传送到接收端
    • 队列queue 消息存储区域。消息按照顺序发送接收,一旦消息被消费处理,该消息将从队列删除。
    graph LR producer -- send --> broker broker -- receive --> consumer

    2.点对点消息队列模型

    点对点模型用于 消息生产者和消息消费者点对点之间点对点的通信

    graph LR Sender --> Broker Broker --> Receiver

    点对点包含三个角色

    • 消息队列(Queue)
    • 发送者 (Sender)
    • 接受者 (Receiver)

    每个消息都被发送到一个特定的队列,接受者从队列获取消息。队列保留着消息,可以放在内存中持久化,直到被消费或超市

    特点

    • 每个消息只有一个消费者(Consumer)(一旦被消费,消息就不在消息队列中)
    • 发送者和接受者之间在时间上没有依赖性
    • 接受者在成功接收消息之后需向消息队列应答成功

    发布订阅消息模型

    graph LR; 发布者1 --> Topic; 发布者2 --> Topic; 发布者3 --> Topic; Topic --> 订阅者1; Topic --> 订阅者2; Topic --> 订阅者3;

    发布订阅模型包含三个角色

    • 主题(Topic)
    • 发布者(Publisher)
    • 订阅者 (Subscribe)

    多个发布者将消息发送到Topic,系统将这些消息传送给多个订阅者

    特点

    • 每个消息可以有多个消费者
    • 发布者和订阅者之间有时间上的依赖性
    • 针对某个Topic的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息
    • 为了消费消息,订阅者必须保持运行状态

    点对点和发布订阅的区别
    生产者发送一条消息到队列 queue,只有一个消费者能收到

    发布者发送到 Topic 的消息,只有订阅了 Topic 的订阅者才能收到消息。

  • 相关阅读:
    R-时空可视化
    zz温故知新:Tomcat调优&JVM内存性能调优
    《CarbonData》
    《RocketMQ》
    《LinuxTools》
    《为什么说 Prometheus 是足以取代 Zabbix 的监控神器?》
    《Zabbix》
    zz《百度地图商业选址》
    《Dapper》
    BZOJ 1601: [Usaco2008 Oct]灌水 最小生成树_超级源点
  • 原文地址:https://www.cnblogs.com/fsckzy/p/10767787.html
Copyright © 2020-2023  润新知