5 工作队列

作者: 笑Skr人啊 | 来源:发表于2019-12-26 18:01 被阅读0次

    1 图解

    工作模式

    2 代码

    url:
        https://github.com/3748/RabbitMq.git
    
    package:
        com.test.rabbitmq.work
    
    

    3 代码介绍

    3.1 引入必须依赖

    pom.xml
    

    3.2 获取MQ连接

    com.test.rabbitmq.util.ConnectionUtil
    

    3.3 消息消费者1

    com.test.rabbitmq.work.WorkConsumer1
    

    3.4 消息消费者2

    com.test.rabbitmq.work.WorkConsumer2
    

    3.5 消息生产者

    com.test.rabbitmq.work.WorkProducer
    

    3.6 启动生产者

     先将两个消费者启动
     生产50条消息,推送到队列中
     WorkConsumer2中每次获取到消息后都Thread.sleep(1000)休眠一秒
     WorkConsumer1消费的消息要多于WorkConsumer2
     符合能者多劳原则
     如果将消费者中channel.basicQos(1);注释.两个消费者将消费相同数量的消息
    

    4 应用场景

    1: 红包
    2: 大项目中的资源调度(任务分配系统不需知道哪一个任务执行系统在空闲,直接将任务扔到消息队列中,空闲的系统自动争抢)
    3: 可以用来进行负载均衡
    

    5 隐患

    高并发情况下,默认会产生某一个消息被多个消费者共同使用,可以设置一个开关(syncronize,与同步锁的性能不一样) 保证一条消息只能被一个消费者使用

    相关文章

      网友评论

        本文标题:5 工作队列

        本文链接:https://www.haomeiwen.com/subject/oteloctx.html