当前位置: 首页 > news >正文

网站改版 降权所有北京网站建设公司

网站改版 降权,所有北京网站建设公司,做网站要以单位,南昌市住房和城乡建设网站文章目录 1. 场景模拟2. 消息发送3. 消息接收4. 测试5. 能者多劳6. 总结 当你在处理消息时#xff0c;可能会遇到这样的问题#xff1a;消息的生产速度远远大于消费速度#xff0c;导致消息堆积。这时候#xff0c;Work Queues#xff08;工作队列#xff09;模型就能派上… 文章目录 1. 场景模拟2. 消息发送3. 消息接收4. 测试5. 能者多劳6. 总结 当你在处理消息时可能会遇到这样的问题消息的生产速度远远大于消费速度导致消息堆积。这时候Work Queues工作队列模型就能派上用场。简单来说Work Queues 让多个消费者绑定到一个队列共同消费队列中的消息从而加快消息处理速度。 1. 场景模拟 我们来模拟一个这样的场景。首先在控制台创建一个名为 work.queue 的队列。 2. 消息发送 我们通过循环发送大量消息来模拟消息堆积的现象。在 publisher 服务中的 SpringAmqpTest 类中添加一个测试方法 Test public void testWorkQueue() throws InterruptedException {// 队列名称String queueName simple.queue;// 消息String message hello, message_;for (int i 0; i 50; i) {// 发送消息每20毫秒发送一次相当于每秒发送50条消息rabbitTemplate.convertAndSend(queueName, message i);Thread.sleep(20);} }3. 消息接收 为了模拟多个消费者绑定同一个队列我们在 consumer 服务的 SpringRabbitListener 中添加两个新的方法 RabbitListener(queues work.queue) public void listenWorkQueue1(String msg) throws InterruptedException {System.out.println(消费者1接收到消息【 msg 】 LocalTime.now());Thread.sleep(20); }RabbitListener(queues work.queue) public void listenWorkQueue2(String msg) throws InterruptedException {System.err.println(消费者2........接收到消息【 msg 】 LocalTime.now());Thread.sleep(200); }注意到这两个消费者都设置了 Thread.sleep 来模拟任务耗时 消费者1Thread.sleep(20)相当于每秒处理50个消息。消费者2Thread.sleep(200)相当于每秒处理5个消息。 4. 测试 启动 ConsumerApplication 后执行 publisher 服务中编写的发送测试方法 testWorkQueue。结果如下 消费者1接收到消息【hello, message_0】21:06:00.869555300 消费者2........接收到消息【hello, message_1】21:06:00.884518 ... 消费者1接收到消息【hello, message_48】21:06:01.920702500 消费者2........接收到消息【hello, message_49】21:06:05.723106700可以看到消费者1和消费者2各自消费了25条消息 消费者1快速完成了任务。消费者2则缓慢处理任务。 消息是平均分配给每个消费者的并没有考虑到各个消费者的处理能力导致一个消费者空闲另一个忙碌。这显然是低效的。 5. 能者多劳 在 spring 中可以通过简单配置解决这个问题。修改 consumer 服务的 application.yml 文件添加如下配置 spring:rabbitmq:listener:simple:prefetch: 1 # 每次只能获取一条消息处理完成才能获取下一个消息再次测试结果如下 消费者1接收到消息【hello, message_0】21:12:51.659664200 消费者2........接收到消息【hello, message_1】21:12:51.680610 ... 消费者2........接收到消息【hello, message_49】21:12:52.746299900这次消费者1处理了更多的消息消费者2则处理了较少的消息总耗时在1秒左右大大提升了效率。这充分利用了每一个消费者的处理能力有效避免了消息积压问题。 6. 总结 Work Queues 模型的使用要点 多个消费者绑定到一个队列同一条消息只会被一个消费者处理。通过设置 prefetch 来控制消费者预取的消息数量。 这样可以更高效地利用资源提高消息处理速度。
http://www.hkea.cn/news/14262774/

相关文章:

  • h5网站建设方案.docseo外包优化网站
  • 做淘宝链接模板网站南平市建设集团网站
  • 网站建设代理怎么做做坑网站需要
  • 学校网站建设的重要性app引流推广软件
  • 快速做网站软件toom舆情监测软件
  • 专业网站建设哪家效果好作品集展示的网站源码
  • 代做毕设自己专门网站上海共富新村网站建设
  • 网站傻瓜式建设河南网站推广多少钱
  • 做设计在哪个网站找图片大全为违法网站做推广进去要几年
  • 购物商城外贸网站湖北省建设厅网站资质
  • 深圳专业网站建设公司中国建盏品牌形象设计大赛
  • 怎么用iapp做网站软件世界500强企业最新排名表
  • 如何网站切换wordpress组成
  • 手机怎么自创网站阿里云 万网 网站
  • 网站设计的主要内容工业企业网络推广方案
  • 美术馆网站建设要求免费行情软件网站下载大全安全吗
  • 无锡建站电话胶州房产网
  • 百度公司可以做网站么单页网站模板
  • 怎么找到做网站的客户c 网站开发的好处
  • 自己做网站类型网络公司主要经营哪些业务
  • 国外视觉设计门户网站百度网站改版工具
  • 著名的个人网站网站流量 收益
  • 北京市建设工程造价管理处 网站百度站长平台网站改版工具
  • 茶叶网站模板免费下载济南seo优化公司助力排名
  • 网站内容栏由什么构成和女的做那个视频网站
  • 二手房交易网站排名做移动网站快速
  • 贵阳公司网页网站建设做网站安全的公司有哪些
  • 自己怎样学做网站重庆妇科医院在线咨询
  • 做服饰网站深圳建网站哪个济南兴田德润有活动吗
  • 如何把网站上传到网上网站建设在开封找谁做