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

医院预约挂号系统网站开发方案互联网官网入口

医院预约挂号系统网站开发方案,互联网官网入口,宁夏网站建设费用地址,南宁网站建设方案详细方案前言#xff1a;在使用RabbitListener注解来指定消费方法的时候#xff0c;默认情况是单线程去监听队列#xff0c;但是这个如果在高并发的场景中会出现很多个任务#xff0c;但是每次只消费一个消息#xff0c;就会很缓慢。单线程处理消息容易引起消息处理缓慢#xff0… 前言在使用RabbitListener注解来指定消费方法的时候默认情况是单线程去监听队列但是这个如果在高并发的场景中会出现很多个任务但是每次只消费一个消息就会很缓慢。单线程处理消息容易引起消息处理缓慢消息堆积不能最大利用硬件资源这个就很伤。 处理办法可以添加配置类设置RabbitMQ的容器工厂参数增加并发处理数量即可实现多线程处理监听队列实现多线程处理消息。 一、编写配置类 package com.quick.config;import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.amqp.rabbit.connection.ConnectionFactory;/*** RabbitMQ配置类*/ Configuration /*ConditionalOnClass(RabbitTemplate.class) //有RabbitTemplate依赖才会生效否则不生效*/ public class MqConfig {// 定义线程数、最大线程数常量private static final int INITIAL_CONCURRENT_CONSUMERS 10;private static final int MAX_CONCURRENT_CONSUMERS 10;/*** 将多线程配置配置注入容器工厂*/Bean(customContainerFactory)public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer,ConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory new SimpleRabbitListenerContainerFactory();factory.setConcurrentConsumers(INITIAL_CONCURRENT_CONSUMERS); //设置线程数factory.setMaxConcurrentConsumers(MAX_CONCURRENT_CONSUMERS); //最大线程数configurer.configure(factory, connectionFactory);return factory;}} setConcurrentConsumers(int concurrentConsumers): 这个方法设置了容器应该同时启动的监听器消费者线程的数量。这些线程会并发地从RabbitMQ队列中拉取并处理消息。这个值决定了系统初始时能够并行处理消息的能力。 setMaxConcurrentConsumers(int maxConcurrentConsumers): 这个方法设置了容器在需要时可以增加到的最大并发消费者数量。这通常用于处理负载高峰当队列中的消息积压时可以动态地增加并发消费者数量以提高处理速度。然而请注意这并不意味着系统会立即创建所有最大数量的线程而是会根据需要逐渐增加到这个上限。 这个容器负责监听 RabbitMQ 的队列并将接收到的消息分发给相应的处理器即 RabbitListener 注解标记的方法 二、修改监听者 在接收消息方里面的RabbitListener注解中添加配置 RabbitListener(queues {监听队列名},containerFactory customContainerFactory) /*** 接收消息*/ Component public class StoreListener {Resourceprivate IStoreService storeService;Resourceprivate StoreMapper storeMapper;/*** 更新店铺收藏人数实现收藏人数1* param storeId 店铺id*/RabbitListener(bindings QueueBinding(value Queue(name store.addFavorite.success.queue, durable true), // 队列 起名规则服务名业务名成功队列durable持久化exchange Exchange(name addFavorite.direct), // 交换机名称交换机默认类型就行direct所以不用配置directkey addFavorite.success // 绑定的key),// 在RabbitListener注解中指定容器工厂containerFactory customContainerFactory)public void listenAddFavoriteCountsSuccess(Long storeId){storeService.updateStoreFavoriteUsersCountAdd1(storeId);}/*** 根据传过来的店铺实体类修改店铺信息* param store 店铺实体类*/RabbitListener(bindings QueueBinding(value Queue(name store.updateStore.success.queue, durable true),exchange Exchange(name updateStore.direct),key updateStore.success),// 在RabbitListener注解中指定容器工厂containerFactory customContainerFactory)public void updateStoreByEntity(Store store){storeMapper.updateById(store);}} 多线程的好处 1、提高吞吐量通过并行处理消息系统可以更快地处理大量消息从而提高整体吞吐量。 2、更好的资源利用率在多核处理器上多线程可以更好地利用硬件资源减少处理延迟。
http://www.hkea.cn/news/14500673/

相关文章:

  • 福田网站建设龙岗网站建设东莞松山湖网站建设
  • 西安网站建设企业wordpress 清空修订版本
  • 烟台网站制作策划做牙工作网站
  • 西宁做网站多少钱肥猫网站建设
  • 下载资料免费网站搜狗网站收录提交入口
  • 沈阳做网站哪个好网站qq临时会话不需要添加好友
  • 网站建设公司有哪些重要职务域名购买备案
  • 湖畔魔豆基金会公益网站开发移动互联网开发招人
  • 辽宁省建设工程信息网如何传业绩北京网站seo排名优化
  • 自己做网站怎么选架构wordpress音乐墙
  • 网站建设新闻++常识做购物网站安全吗
  • 网站设置访问密码云盘网站如何做
  • 网站权重有什么用做防伪查询网站
  • 人才招聘网站建设电子菜单制作app
  • 家具网站建设便宜广州网站建设 粤icp
  • 常州网站推广软件合肥建设公司网站
  • 用reset插件 复位WordPress佛山网站优化效果
  • 千博企业网站创办一个网站能够做那些事
  • 网站线框图怎样做东莞阳光网投诉查看
  • 招工网站58同城企业所得税交多少
  • 东莞市建设公共交易中心网站南宁大型网站建设
  • 具有价值的网站建设平台wordpress热门插件
  • 百度排名 网站标题wordpress cms模板制作
  • 怎样做的英文网站金融保险网站模板
  • 东莞销售网站公司哪家好怎样推广自己的网站
  • 如何做适合网站大小的图片福州专业的seo软件
  • 平原网站建设公司网络营销的策划流程
  • 自己做有趣的网站wordpress怎么删除目录
  • 二级a做爰片免费视网站网站建设部分费用会计科目
  • 精品课程网站设计报告化工类网站建设推广