JAVA后台开发_从入门到精通

5 工作队列

2019-12-26  本文已影响0人  笑Skr人啊

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,与同步锁的性能不一样) 保证一条消息只能被一个消费者使用
上一篇 下一篇

猜你喜欢

热点阅读