• Rabbitmq的五种模式和案例


    消息生产者p将消息放入队列

    消费者监听队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列删除

    (缺点:消息可能没有被消费者正确处理,已经消失了,无法恢复)

    应用场景:聊天室

    1.引入依赖

    <dependencies>
    <dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>3.4.1</version>
    </dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.3.2</version>
    </dependency>

    <dependency>
    <groupId>org.springframework.amqp</groupId>
    <artifactId>spring-rabbit</artifactId>
    <version>1.4.0.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
    </dependency>
    </dependencies>
    2.创建链接工具类

    3.生产者

    4.消费者

    生产者将消息放入队列
    多个消费者同时监听同一个队列,消息如何被消费?
    C1,C2共同争抢当前消息队列的内容,谁先拿到消息,谁来负责消费
    应用场景:红包;大型项目中的资源调度过程(直接由最空闲的系统争抢到资源处理任务) 
    1.生产

    2.消费1

    3.消费2

    生产者将消息交给交换机
    有交换机根据发布订阅的模式设定将消息同步到所有的绑定队列中;
    后端的消费者都能拿到消息

    应用场景:邮件群发,群聊天,广告

    1.生产者

    2.消费者1

    2.消费2

    
    

    生产者发送消息到交换机,同时绑定一个路由Key,交换机根据路由key对下游绑定的队列进行路
    由key的判断,满足路由key的队列才会接收到消息,消费者消费消息

    应用场景: 项目中的error报错

    1.生产者

    2.消费者1

    2.消费者2

    *号代表单个词语
    #代表多个词语

    其他的内容与routing路由模式一致

    1.生产者

    2.消费者1

    3.消费者2

  • 相关阅读:
    vagrant up报错 Warning: Authentication failure. Retrying...解决方案
    node读写Excel操作
    批量转换word为pdf
    分享7个shell脚本实例--shell脚本练习必备
    shell脚本实例,通向shell脚本大师的必经之路
    前端优化DNS预解析
    如何选择开源协议
    深入理解document.referrer的用法
    使用 WebRTC 构建简单的前端视频通讯
    深入理解WebRTC
  • 原文地址:https://www.cnblogs.com/xyj179/p/10346515.html
Copyright © 2020-2023  润新知