五大消息模型介绍(RabbitMQ 详细注释版)

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

名词介绍:
1.生产者:消息发布者,将消息发送到队列 queue
2.队列:消息队列,负责接受并缓存消息
3.消费者:订阅队列,处理队列中的消息
一:模型介绍

1.simple消息模型
    一个生产者  一个队列  一个消费者
        在此种消费模型下,若消费者对消息的处理速度较慢。那么当生产者不断向队列发送消息时,便会造成堵塞。



2.work消息模型
    一个生产者  一个队列  多个消费者
    由此模型衍生的  -> 能者多劳:消费者性能高的可以多消费消息


3. fanout消息模型
一个生产者  一个交换机  多个队列  多个消费者
    这种模型下,生产着会将消息发送至交换机。再由交换机以广播的情势发送给所有消费者,由消费者在自己相应的队列获取消息。
    这种模型存在一个缺点,就是无法对消息进行过滤。于是引出direct消息模型


4. direct消息模型
一个生产者  一个交换机  多个队列  多个消费者(队列绑定交换机时需要指定RoutingKey)
    缺点:RoutingKey是需要提前固定写好的。那么当大量的消息到来时,RoutingKey的指定会影响到性能


5. topic消息模型: 开发中常用此种模型
一个生产者  一个交换机  多个队列  多个消费者(队列绑定交换机时利用的RoutingKey可以利用通配符)
    通配符:* 匹配 一级 任意多个字符,# 匹配 多级 任意多个字符
    例如:routingKey为"user.#",表示可以匹配"user.add"和"user.add.log"。
               routingKey为"user.*",表示可以匹配"user.add",对于"user.add.log"则无法匹配。

二:案例代码

工具类:

1.简答模型

        生产者代码:


消费者代码:


2.工作模型
        生产者代码:

        消费者代码:


3.广播模型
        生产者代码:


        消费者代码:


4.定向模型
        生产者代码:

        消费者代码:




5.通配符模型
        生产者代码:

        消费者代码:



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表