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 工作队列

    1 图解 2 代码 3 代码介绍 3.1 引入必须依赖 3.2 获取MQ连接 3.3 消息消费者1 3.4 消息消...

  • 每天一点Swift(七)GCD

    1.在其他队列里面执行函数 2.主队列更新UI,其他队列做耗时工作 3. 创建并行队列 4.创建串行队列 5.延迟

  • GCD

    1、同步串行队列 2、同步并行队列 3、异步串行队列 4、异步并行队列 5、死锁 主线程中创建同步串行队列 主线程...

  • 无标题文章

    GCD 队列:1、系统提供了5种队列:主队列:一个主队列:dispatch_get_main_queue();四个...

  • 数据结构之队列

    一.循环队列 1.构建结构 2.初始化队列 3.清空队列 4.判断是否为空队列 5.获取队列的长度 6.便利队列 ...

  • Java数据结构和算法系列———队列

    目录 1、队列的基本概念 2、Java模拟单向队列实现 3、双端队列 4、优先级队列 5、总结 1、队列的基本概念...

  • iOS - 多线程(二) GCD讲解

    目录: 1.GCD简介2.串行队列 + 同步执行3.串行队列 + 异步执行4.并发队列 + 同步执行5.并发队列 ...

  • iOS GCD随记(一)任务/队列组合

    1.同步执行+串行队列2.同步执行+并行队列3.异步执行+串行队列4.异步执行+并行队列5.同步执行+主队列6.异...

  • RabbitMQ-工作队列

    work queues 工作队列 轮询分发 为什么会出现工作队列simple队列 是一一对应的,实际开发中,...

  • 工作队列

网友评论

    本文标题:5 工作队列

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