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

邹平网站建设公司wordpress最近更新文章插件

邹平网站建设公司,wordpress最近更新文章插件,创网站 设计方案,网站建设推广平台在实际的开发中#xff0c;我们会使用数据库连接池#xff0c;但是如果不能很好的理解其中的含义#xff0c;那么就可以出现生产事故。 HikariPool-1 - Connection is not available, request timed out after 30001ms.当系统的调用量上去#xff0c;就出现大量这样的连接…在实际的开发中我们会使用数据库连接池但是如果不能很好的理解其中的含义那么就可以出现生产事故。 HikariPool-1 - Connection is not available, request timed out after 30001ms.当系统的调用量上去就出现大量这样的连接失败分析发现其实就是连接池使用的默认的。 案例 CREATE TABLE user (id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,login_name varchar(50) NOT NULL COMMENT 登陆名,name varchar(50) DEFAULT NULL COMMENT 昵称,password char(32) NOT NULL COMMENT 密码,pass_word varchar(255) DEFAULT NULL,UNIQUE KEY login_name_unique (login_name) ) ENGINEInnoDB DEFAULT CHARSETutf8 COMMENT用户;RequestMapping(path /hiii,method RequestMethod.GET)public String hi() {userService.saveUserDb();return hi UserService;}Entity Data Table(name user) public class User {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;private String name;private String loginName;private String password;}public void saveUserDb() {User user new User();user.setLoginName(Math.random()System.currentTimeMillis());user.setPassword(Math.random()System.currentTimeMillis());user.setName(qxlxSystem.currentTimeMillis());try {userRepository.save(user);TimeUnit.MILLISECONDS.sleep(30000);} catch (InterruptedException e) {e.printStackTrace();}}Repository public interface UserRepository extends JpaRepositoryUser, Long { }使用wrk进行压测。 ./wrk -t100 -c100 -d60s --latency http://localhost:8088/hiii之后就出现大量的故障 error。发现复现这个问题。 java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30001ms.at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695) ~[HikariCP-3.4.5.jar:na]at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:197) ~[HikariCP-3.4.5.jar:na]at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:162) ~[HikariCP-3.4.5.jar:na]at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) ~[HikariCP-3.4.5.jar:na]at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:38) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:104) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:134) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:259) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:267) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:246) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:83) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:184) ~[spring-orm-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:402) ~[spring-orm-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400) ~[spring-tx-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) ~[spring-tx-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:573) ~[spring-tx-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:361) ~[spring-tx-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) ~[spring-tx-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:178) ~[spring-data-jpa-2.3.1.RELEASE.jar:2.3.1.RELEASE]at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95) ~[spring-aop-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.2.7.RELEASE.jar:5.2.7.RELEASE]at com.sun.proxy.$Proxy86.save(Unknown Source) ~[na:na]at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source) ~[na:na]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_202]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_202]at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205) ~[spring-aop-5.2.7.RELEASE.jar:5.2.7.RELEASE]at com.sun.proxy.$Proxy63.save(Unknown Source) ~[na:na]at com.qxlx.spingboot.service.UserService.saveUserDb(UserService.java:27) ~[classes/:na]at com.qxlx.spingboot.controller.HelloWorldController.hi(HelloWorldController.java:21) ~[classes/:na]at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source) ~[na:na]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_202]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_202]at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.36.jar:9.0.36]at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.36.jar:9.0.36]默认是使用10个线程池但是每个任务处理时间是30S左右100个线程任务肯定执行不完所以就导致有90个线程等待连接接着超过固定的时间30S就跑出异常。 这里就是如何查看数据库连接池是设置的可以通过jconslone,进行查看。 hikari:register-mbeans: truemaximum-pool-size: 150minimum-idle: 25进行配置调整连接池大小。一定要进行查看是否生效。 调整之后用同样的压测参数发现没有问题。 原理 连接池的整体流程 1.首次检查又没有空闲连接如果有直接使用。 2.如果没有查看目前连接池又没有达到所允许的最大连接数没有就新建一个数据库连接否则就等待一定时间的timeout等待别的连接释放。 3.如果超过一定时间的timeout都没有释放数据库连接建立失败。 Spring boot 2.0 默认使用HikariCp 连接池。 具体可以看如下两篇文章。 https://mp.weixin.qq.com/s/4ty3MrsymRsdz0BSB_lfyw https://mp.weixin.qq.com/s/xM4r8fHQAwmgpX02F51N2A 小结 小结一下对于连接池参数问题建议做到以下几点: 做好配置确保可以实时监控确保自己的配置是生效的。 进行压测确保配置参数符合预期效果。 配置连接参数要确保留有一半的余量并保证我们的监控工具能够在剩余不到一半的情况下发出预警。 所以配置还是有一定的讲究需要结合业务流量、底层资源的使用情况进行合理分配过小可能导致吞吐量上不去过大可能在流量高峰期压垮数据库。
http://www.zqtcl.cn/news/48317/

相关文章:

  • 昆明定制化网站建设企业网站建设合同(一)
  • 哪里有培训网站开发订阅号上链接的网站怎么做的
  • 网页设计网站维护松江网站建设培训费用
  • 新乡彩票网站建设网站开发工作时间
  • 广东网站建设方案报价比一网站建设
  • 建设好网站的在线沟通功能全网项目资源整合平台
  • 0建设营销型网站步骤wordpress前台插件
  • 现在什么网站做推广比较好东营市东营网站设计
  • 聊城大型门户网站建设免费图片素材高清
  • 手机怎么开网站吕梁网络推广
  • 手机能建设网站吗东莞企业网站建设
  • 揭阳专业做网站网站建设怎么做账
  • 做美工需要知道的设计网站wordpress导航怎么添加连接
  • 制作网站企业微信建网站平台的
  • 网站推广和优化的原因网址创建
  • 建材 网站 模板直播软件怎么开发
  • 衡阳市城市建设投资有限公司网站网店推广发展趋势有哪些
  • 只做同城交易的网站wordpress极验证登录
  • 专业做域名的网站4网站免费建站
  • aspnet网站开发实例网站加速器下载
  • 涪陵网站建设 优帮云网页设计尺寸早起可视区域
  • 海口网络平台网站开发最赚钱的小型加工厂
  • 手机端企业网站源码河南省建设工程招投标协会网站
  • 网站建设实训个人百度最新财报
  • 个人备案网站 论坛如何编写网站开发文档
  • 深圳商城网站设计多少钱门户网站app开发
  • 网站开发项目任务域名状态查询工具
  • php专业网站网站建设需要准备什么软件
  • 建设部建造师强制注销网站湖南专业seo公司
  • 让网站做的有吸引力wordpress exploit scanner