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

个人做外贸商城网站网站推广推广

个人做外贸商城网站,网站推广推广,大连网站建设开发,番禺人才网站1、异常描述 近期做了一个功能模块的限流熔断处理#xff0c;使用的是hystrix来做熔断处理。具体的配置如下#xff1a; DefaultProperties(defaultFallback customFallBackMethod,commandProperties {HystrixProperty(name circuitBreaker.enabled使用的是hystrix来做熔断处理。具体的配置如下 DefaultProperties(defaultFallback customFallBackMethod,commandProperties {HystrixProperty(name circuitBreaker.enabled,value true),  //是否开启断路器默认trueHystrixProperty(name circuitBreaker.requestVolumeThreshold,value 100),   //时间窗口时间内最大并发请求次数默认20次HystrixProperty(name metrics.rollingStats.timeInMilliseconds,value 2000),   //时间窗口时长,默认10sHystrixProperty(name circuitBreaker.sleepWindowInMilliseconds,value 5000),  //熔断后恢复间隔时间范围默认5sHystrixProperty(name circuitBreaker.errorThresholdPercentage,value 0),//失败率达到多少后跳闸默认50}) 在需要熔断的接口上加了HystrixCommand注解在启动类上也加上了EnableHystrix注解如此一来熔断配置就会生效啦。 配置信息就是这样啦主要想实现的效果就是在指定时间周期内并发请求达到多少就熔断处理。例如我这里写的2秒内如果并发请求超过100次就进入熔断降级的方法customFallBackMethod中5秒后恢复。失败率是0即只要并发数据量超过配置就熔断。坑就坑在其中有一个被调用的接口没有抛出异常也没有返回空值也没有执行很耗时间但是基本上调用都会被熔断从而进入降级的方法中导致功能无法正常使用简直莫名其妙还刚好在上线发版时出现了一头雾水~~~没有办法只好先撤掉Hystrix的熔断配置恢复功能使用。 2、分析这个坑 后来在本地启动服务想验证一下接口的具体情况果然复现了同样的配置这个接口依然基本都是熔断降级响应。通过打断点我发现在如下这个方法执行时 会进入到一个异常抛出的程序 具体报错信息如下 ### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: interrupt ### The error may exist in ***/mapper/xxxMapper.java (best guess) ### The error may involve ***.mapper.xxxMapper.selectOne ### The error occurred while executing a query ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: interrupt 这里会发现有一个数据库的连接异常所以导致了hystrix的熔断处理进入到了降级方法中。 但是为什么会出现这个异常呢通过了解hystrix的执行原理其执行流程大概如下 所以其实是hystrix创建的新线程在执行sql前通过mybatis-plus去获取JDBC的连接超时失败了导致了这个异常的产生从而进入了熔断。         那这里再去具体分析一下为啥获取JDBC的连接时会失败呢主要原因其实就是执行超时了。超过了hystrix的执行响应时长。 3、解决这个坑 目前有2种解决方式第一种将hystrix的线程执行响应时长延长。由于我本身没有设置这个配置项 HystrixProperty(name execution.isolation.thread.timeoutInMilliseconds, value 1000 所以默认响应超时时间为1秒因此我们把时长增加到一个适当的时间即可以解决。例如我们设置为3000毫秒。 第二种在接口的执行方法上加上Transactional注解使mybatis-plus在获取jdbc连接时可以直接使用spring的事务上下文快速获取到JDBC连接从而不至于导致超时产生异常。但是保险起见还是需要在第一种方式下增加一下合理的超时时限这样才能更好的保障程序的正常运行。
http://www.zqtcl.cn/news/829887/

相关文章:

  • 南庄网站开发厦门建设局网站城市建设
  • 常州网站建设效果重庆招聘网
  • 做视频网站需要多大的带宽公众号怎么开通直播功能
  • 信息化网站建设引言南宁 网站建设
  • 怎么做外贸网站的邮箱签名做网站页面怎么做
  • 做文库网站怎么赚钱吗百度网盘下载官网
  • 带后台的网站模板下载wordpress文章置顶插件
  • 云阳营销型网站建设北京梵客装饰公司地址电话
  • 北京有哪些网站建设公司好网站做配置文件的作用
  • 网站制作定制做网站顾客提现金额后台
  • 歙县建设银行网站人员优化是什么意思
  • 网站建设需解决问题wp商城
  • 简单房地产网站在哪老版建设银行网站
  • 外贸网站如何做推广苏州小程序需要写网站建设方案书
  • 哪些企业会考虑做网站婚庆策划公司简介
  • php网站开发个人个人学做网站
  • php网站开发最新需求网站建设实习心得
  • 深圳公司的网站设计网页制作视频教程下载
  • 动漫网站开发优势网站做电话线用
  • 河南移动商城网站建设广州营销型企业网站建设
  • 佛山做网站公司个人账号密码网站建设
  • 做零售网站智慧建筑信息平台
  • 山西住房建设厅官方网站建设部建造师网站
  • 加大门户网站安全制度建设wordpress切换数据库
  • 百度代理服务器株洲seo优化
  • 即刻搜索网站提交入口网站中的打赏怎么做的
  • 电子商务网站建设课后作业开发公司管理制度
  • mysql同一数据库放多少个网站表优化大师windows
  • 微信小程序插件开发seo的网站建设
  • 婚纱摄影网站建设方案WordPress 同步网易博客