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

哪个网站做加盟虚拟主机的作用

哪个网站做加盟,虚拟主机的作用,wordpress安全博客,中山网站建设哪家好原理 open-in-view 是 Spring Boot ⾃动加载 Spring Data JPA 提供的⼀个配置#xff0c;全称为 spring.jpa.open-in-viewtrue#xff0c;它只有 true 和 false 两个值#xff0c;默认是 true。 这个配置为true时#xff0c;会导致Web MVC请求处理的一开始全称为 spring.jpa.open-in-viewtrue它只有 true 和 false 两个值默认是 true。         这个配置为true时会导致Web MVC请求处理的一开始就从连接池取一个数据库连接放到本地线程变量Web MVC请求处理结束后才会归还给连接池。 open-in-view 机制是为了解决在 mvc 的 controller 中使用了 hibernate 的 lazy load 的属性时 no session 抛出的LazyInitializationException 异常 这个处理逻辑位于OpenEntityManagerInViewInterceptor.preHandle在Sentinel处理代码SentinelResourceAspectExt之前所以Sentinel限流无法阻止JPA取数据库连接。   隐患一 如果业务代码中有耗时操作就导致数据库连接还回连接池变慢进而引起雪崩效应导致tomcat处理线程大量增加而处理性能却无法提高所有Web MVC请求都无法响应应用提供的服务中断。 ResponseBody RequestMapping(value /xxx/send, method RequestMethod.POST) SentinelResource(value xxxdcc#send, entryType EntryType.IN) public SendXXXResp sendSms(RequestBody SendXXXVo sendXXXVo) {//同步调用第三方系统耗时超过一定时间如3sSendXXXResp sendXXXResp new SendXXXResp();return sendXXXResp; } 如果数据库连接池最大连接数为200同步调用第三方系统耗时3s。那么这个接口的QPS达到70时会导致应用雪崩整个应用无法提供服务。 隐患二 当jpa与mybatis等框架混合使用时存在死锁的问题。一个Web MVC请求处理时JPA框架会从连接池中取一个数据库连接放入本地线程变量业务处理代码使用mybatis访问数据库也需要取一个数据库连接在极端情况下取不到就会等待导致JPA取的连接也没有还给连接池导致死锁。也会导致tomcat处理线程大量增加而处理性能却无法提高所有Web MVC请求都无法响应应用提供的服务中断。 示例代码 ResponseBody RequestMapping(value /xxx/send, method RequestMethod.POST) SentinelResource(value xxx#send, entryType EntryType.IN) public SendXXXResp sendSms(RequestBody SendSmsVo sendSmsVo) {//使用mybatis框架访问数据库CallingConfig callingConfigcallingConfigMapper.selectById(sendXXXVo.getXXXAccount());SendXXResp sendXXXResp new SendXXXResp();return sendXXXResp; } 如果数据库连接池最大连接数为200这个接口QPS达到200。即使方法体中没有耗时操作也会导致应用雪崩整个应用无法提供服务。 修改建议 将spring.jpa.open-in-view配置为false注意不要设置成了“spring.shardingsphere.jpa.open-in-view”不要使用JPA 的关联查询如不要使用OneToMany等关联查询的注解。以免open-in-view为false时出现LazyInitializationException 异常。 annel_account_config账号表与calling_config主叫号码表是一对多的关系 JPA中设置的关联查询 OneToMany(cascade CascadeType.ALL) JoinColumn(name channelAccountId) private ListCallingConfigInfo callingConfigList new ArrayList(); 在Controller中进行了查询使用 ChannelAccountConfigInfo channelAccountConfigInfo channelAccountConfigRepository.findOne(1L); ListCallingConfigInfo callingConfigList ObjectUtil.getOptional(()-channelAccountConfigInfo.getCallingConfigList()).orElse(new ArrayList()); for(CallingConfigInfo callingConfigInfo:callingConfigList){log.info(Calling:callingConfigInfo.getCalling()); }
http://www.w-s-a.com/news/106874/

相关文章:

  • 公司网站开发制作备案中的网站
  • 怎么看网站的收录网站开发先前台和后台
  • 合肥市做网站多少钱wordpress网站布置视频
  • 中国建设人才网信息网站软件外包公司好不好
  • 网站建设与管理 市场分析上海网站建设公司排名
  • 怎么将公司网站设成首页网址关键词查询网站
  • 怎么用ps做网站ui邱县专业做网站
  • 国开行网站毕业申请怎么做大连旅顺口旅游攻略
  • 鲜花店网站源码成都专做婚介网站的公司
  • 合肥企业网站建设工哈尔滨公告
  • 华强北 做网站互联网服务平台入口
  • vi设计案例网站微信导航网站 dedecms
  • 青浦区做网站设计图片手绘图片
  • 做网站的基本功制作网站公司推荐
  • 阿里云快速建站教程个人网站 费用
  • 广东购物网站建设微信公众号制作模板免费
  • 阿里国际站韩语网站怎么做让移动网站
  • 北京外包做网站如何报价中国几大网络推广公司
  • 中国建设部网站关于资质wordpress 建app
  • 程序员找工作的网站哈尔滨建设信息网站
  • 公司 网站 方案高考写作网站
  • 网站后台如何登陆网站开发需求逻辑图
  • 市级档案网站建设情况分析server2008做DNS与网站
  • 公积金门户网站建设方案网站建设代理平台怎么做
  • 网站建设知识论文抖音开放平台是干什么的
  • 网站建设期末试卷大气简洁网站
  • 电子商务网站建设报告范文单位做网站怎么做
  • 优质的外国网站qq小程序在哪里打开
  • 商务网站建设与推广实训报告免费素材网站无水印
  • 外贸站seoapp开发公司历程概述