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

南通网站制作哪个好什么是网站优化

南通网站制作哪个好,什么是网站优化,网页制作与网站建设宝典(第2版),完美动力培训机构一、概述 1.1简介 Druid 是阿里巴巴开源平台上一个数据库连接池实现#xff0c;结合了 C3P0、DBCP 等 DB 池的优点#xff0c;同时加入了日志监控。 它本身还自带一个监控平台#xff0c;可以查看时时产生的sql、uri等监控数据#xff0c;可以排查慢sql、慢请求#xff0…一、概述 1.1简介 Druid 是阿里巴巴开源平台上一个数据库连接池实现结合了 C3P0、DBCP 等 DB 池的优点同时加入了日志监控。 它本身还自带一个监控平台可以查看时时产生的sql、uri等监控数据可以排查慢sql、慢请求方便对sql和项目代码进行调优。 com.alibaba.druid.pool.DruidDataSource 基本配置参数如下 配置 缺省值 说明 name 配置这个属性的意义在于如果存在多个数据源监控的时候可以通过名字来区分开来。  如果没有配置将会生成一个名字格式是DataSource- System.identityHashCode(this) jdbcUrl 连接数据库的url不同数据库不一样。例如  mysql : jdbc:mysql://10.20.153.104:3306/druid2  oracle : jdbc:oracle:thin:10.20.149.85:1521:ocnauto username 连接数据库的用户名 password 连接数据库的密码。如果你不希望密码直接写在配置文件中可以使用ConfigFilter。详细看这里https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter driverClassName 根据url自动识别 这一项可配可不配如果不配置druid会根据url自动识别dbType然后选择相应的driverClassName(建议配置下) initialSize 0 初始化时建立物理连接的个数。初始化发生在显示调用init方法或者第一次getConnection时 maxActive 8 最大连接池数量 maxIdle 8 已经不再使用配置了也没效果 minIdle 最小连接池数量 maxWait 获取连接时最大等待时间单位毫秒。配置了maxWait之后缺省启用公平锁并发效率会有所下降如果需要可以通过配置useUnfairLock属性为true使用非公平锁。 poolPreparedStatements false 是否缓存preparedStatement也就是PSCache。PSCache对支持游标的数据库性能提升巨大比如说oracle。在mysql下建议关闭。 maxOpenPreparedStatements -1 要启用PSCache必须配置大于0当大于0时poolPreparedStatements自动触发修改为true。在Druid中不会存在Oracle下PSCache占用内存过多的问题可以把这个数值配置大一些比如说100 validationQuery 用来检测连接是否有效的sql要求是一个查询语句。如果validationQuery为nulltestOnBorrow、testOnReturn、testWhileIdle都不会其作用。 testOnBorrow true 申请连接时执行validationQuery检测连接是否有效做了这个配置会降低性能。 testOnReturn false 归还连接时执行validationQuery检测连接是否有效做了这个配置会降低性能 testWhileIdle false 建议配置为true不影响性能并且保证安全性。申请连接的时候检测如果空闲时间大于timeBetweenEvictionRunsMillis执行validationQuery检测连接是否有效。 timeBetweenEvictionRunsMillis 有两个含义  1) Destroy线程会检测连接的间隔时间2) testWhileIdle的判断依据详细看testWhileIdle属性的说明 numTestsPerEvictionRun 不再使用一个DruidDataSource只支持一个EvictionRun minEvictableIdleTimeMillis connectionInitSqls 物理连接初始化的时候执行的sql exceptionSorter 根据dbType自动识别 当数据库抛出一些不可恢复的异常时抛弃连接 filters 属性类型是字符串通过别名的方式配置扩展插件常用的插件有  监控统计用的filter:stat日志用的filter:log4j防御sql注入的filter:wall proxyFilters 类型是Listcom.alibaba.druid.filter.Filter如果同时配置了filters和proxyFilters是组合关系并非替换关系 1.2数据库连接池 数据库连接池是一种用于管理和复用数据库连接的技术。在应用程序与数据库之间建立连接是一项开销较大的操作而连接池的目标是通过预先建立一组数据库连接然后在应用程序需要时分配和复用这些连接以减少连接建立和断开的开销提高数据库访问的效率和性能。 相关依赖 !--Druid--dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.20/version/dependency!--springboot整合druid--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.20/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependency 相关配置 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://122.9.47.93:3306/username:password: type: com.alibaba.druid.pool.DruidDataSource 配置类 package com.yanyu.config;import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; import com.alibaba.druid.support.jakarta.StatViewServlet; import com.alibaba.druid.support.jakarta.WebStatFilter; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary;import java.sql.SQLException; import java.util.Arrays; import java.util.HashMap; import java.util.Map;Configuration public class MyDataSourceConfig {ConfigurationProperties(prefix spring.datasource)BeanPrimarypublic DruidDataSource druid() throws SQLException {DruidDataSource dataSource new DruidDataSource();dataSource.setUrl(jdbc:mysql://122.9.47.93:3306/2021213067);dataSource.setName();dataSource.setPassword();dataSource.setInitialSize(7); // 初始化连接数dataSource.setMinIdle(5); // 最小空闲连接数dataSource.setMaxActive(22); // 最大活跃连接数dataSource.setMaxWait(60000); // 获取连接的最大等待时间毫秒dataSource.setTimeBetweenEvictionRunsMillis(60000); // 连接回收的时间间隔毫秒dataSource.setMinEvictableIdleTimeMillis(300000); // 连接在池中保持空闲的最小时间毫秒dataSource.setValidationQuery(SELECT 1 FROM DUAL); // 验证连接是否有效的 SQL 语句dataSource.setTestWhileIdle(true); // 当连接空闲时是否进行有效性检测dataSource.setTestOnBorrow(false); // 当从连接池借用连接时是否进行有效性检测dataSource.setTestOnReturn(false); // 当归还连接时是否进行有效性检测dataSource.setPoolPreparedStatements(true); // 是否使用预处理语句//dataSource.setFilters(stat,wall,log4j); // 配置监控统计拦截的 filtersdataSource.setMaxPoolPreparedStatementPerConnectionSize(20); // 每个连接最多可以创建的预处理语句数量dataSource.setUseGlobalDataSourceStat(true); // 是否使用全局数据源统计信息dataSource.setConnectionProperties(druid.stat.mergeSqltrue;druid.stat.slowSqlMillis500); // 连接属性配置return dataSource;}Beanpublic ServletRegistrationBean statViewServlet(){ServletRegistrationBean registrationBean new ServletRegistrationBean();registrationBean.setServlet(new StatViewServlet());registrationBean.setUrlMappings(Arrays.asList(/druid/*));//设置初始化参数MapString,String initMap new HashMap();initMap.put(loginUsername,admin);initMap.put(loginPassword,123456);initMap.put(allow,);initMap.put(deny,192.168.2.110);registrationBean.setInitParameters(initMap);return registrationBean;}Beanpublic FilterRegistrationBean webStatFilter(){FilterRegistrationBean registrationBean new FilterRegistrationBean();registrationBean.setFilter(new WebStatFilter());registrationBean.setUrlPatterns(Arrays.asList(/*));//设置初始化参数MapString,String initMap new HashMap();initMap.put(exclusions,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*);registrationBean.setInitParameters(initMap);return registrationBean;}}测试 package com.yanyu.config;import com.alibaba.druid.pool.DruidDataSource; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException;SpringBootTest class SpringbootDataJdbcApplicationTests { //DI注入数据源AutowiredDataSource dataSource;Testpublic void contextLoads() throws SQLException { //看一下默认数据源System.out.println(dataSource.getClass()); //获得连接Connection connection dataSource.getConnection();System.out.println(connection);DruidDataSource druidDataSource (DruidDataSource) dataSource;System.out.println(druidDataSource 数据源最大连接数 druidDataSource.getMaxActive());System.out.println(druidDataSource 数据源初始化连接数 druidDataSource.getInitialSize());//关闭连接connection.close();} }1.3Druid数据源监控 Druid 数据源具有监控的功能并提供了一个 web 界面方便用户查看类似安装 路由器 时人家也提供了一个默认的 web 页面。 1 设置 Druid 的后台管理页面 如 登录账号、密码 等 //配置 Druid 监控管理后台的Servlet //内置 Servlet 容器时没有web.xml文件所以使用 Spring Boot 的注册 Servlet 方式 Bean public ServletRegistrationBean statViewServlet() {ServletRegistrationBean bean new ServletRegistrationBean(new StatViewServlet(), /druid/*);// 这些参数可以在 com.alibaba.druid.support.http.StatViewServlet // 的父类 com.alibaba.druid.support.http.ResourceServlet 中找到MapString, String initParams new HashMap();//参数指定 loginUsername loginPassword 不可变initParams.put(loginUsername, admin); //后台管理界面的登录账号initParams.put(loginPassword, 123456); //后台管理界面的登录密码//后台允许谁可以访问//initParams.put(allow, localhost)表示只有本机可以访问//initParams.put(allow, )为空或者为null时表示允许所有访问initParams.put(allow, );//denyDruid 后台拒绝谁访问//initParams.put(kuangshen, 192.168.1.20);表示禁止此ip访问//设置初始化参数bean.setInitParameters(initParams);return bean; }2 访问管理后台 配置完毕后访问管理后台: http://localhost:8080/druid/login.html 配置 Druid web 监控 filter 过滤器 – 过滤不需要监控的数据 //配置 Druid 监控 之 web 监控的 filter //WebStatFilter用于配置Web和Druid数据源之间的管理关联监控统计 Bean public FilterRegistrationBean webStatFilter() {FilterRegistrationBean bean new FilterRegistrationBean();bean.setFilter(new WebStatFilter());//exclusions设置哪些请求进行过滤排除掉从而不进行统计MapString, String initParams new HashMap();initParams.put(exclusions, *.js,*.css,/druid/*,/jdbc/*);bean.setInitParameters(initParams);///* 表示过滤所有请求bean.setUrlPatterns(Arrays.asList(/*));return bean; }二、druid使用指南 2.1数据源 在数据源这里可以看到连接池的情况包括配置文件中配置的连接数等参数以及没有配置的一些默认参数。 数据源的下半部分可以看到一些时时产生的数据这些参数都附带了解释一些重要的数据有 等待线程数量 当前等待获取连接的线程数事务启动数 事务开始的个数事务时间分布 事务运行时间分布分布区间为[0-10 ms, 10-100 ms, 100-1 s, 1-10 s, 10-100 s, 100 s]池中连接数峰值 连接池中数目的峰值活跃连接数 当前连接池中活跃连接数执行数 所有连接执行的任务数事务回滚数 事务失败回滚的次数连接持有时间分布连接持有时间分布分布区间为[0-1 ms, 1-10 ms, 10-100 ms, 100ms-1s, 1-10 s, 10-100 s, 100-1000 s, 1000 s] 2.2SQL监控 我们在配置文件中配置了慢sql的执行时间为3秒钟这里会将超过3秒钟的sql标红方便我们一眼就看到。可以从下图看到有两个mansql并把sql显示了出来我们可以针对性的进行sql优化。 执行分布时间一共有8个档位在上述数据源里已经看到了这8个档位的含义。 可以看到最大并发数是40这是因为在配置文件中配置了最大连接数为40可以根据实际情况调整参数。 点击左侧蓝色的sql可以查看更详细的视图。 2.3SQL防火墙 记录配置文件中配置的黑、白名单的拦截信息我这里没有配也没有数据。 2.4 web应用 可以看到整个项目的运行数据主要记录的还是和数据库打交道的一些数据。 2.5 URI监控 有不少中间件都能实现对于URI的监控sentinel、skywalking、zipkin等德鲁伊侧重的是和数据库连接产生的数据可以结合多个监控的数据一起参考。
http://www.pierceye.com/news/372133/

相关文章:

  • 网站文案框架兰州网页制作公司网站
  • 专业网站有哪些平台wordpress那个版本
  • 网站建设按钮详情页设计图
  • 杭州公司注册代理中介深圳关键词优化软件
  • 乐清网站制作公司电话免费做初中试卷的网站
  • 注册一个网站的流程反向代理服务器做wordpress外网
  • 沁阳网站建设tomcat建网站
  • 品牌网站建设公司推荐网站建设公司3lue
  • 装修公司网站模版徐州品牌网站建设
  • 医疗网站建设计划书一级消防工程师考试科目
  • 信誉好的网站建设公司网站关停公告怎么做
  • 画图在什么网站上做兼职广告词
  • 昆明购物网站建设企业网络设计方案预算
  • 浙江省建设工程质监站网站什么是营销型网站建设
  • 做网站需要云数据库吗企业做网页还是网站
  • wordpress手机网站插件wordpress编辑器添加按钮弹出窗口
  • 网站建设验收单格式建筑工具网站
  • 比较简洁大方的网站伊春住房和城乡建设网站
  • 电商网站开发prd免费个人网页模板
  • 西安 网站开发 招聘响应式网站代理
  • 浙江建设干部学校网站免费wordpress搭建
  • 海尔网站建设内容策划wordpress 登录密码
  • 金融公司网站规划方案四川省住建厅特种作业证报名
  • 做网站员培训网站小视频怎么做
  • 做网站是学什么专业的电子商务网络营销方式
  • 东莞电商网站公司goz建站
  • 深圳石岩建网站权威发布李建
  • 大连哪家公司做网站比较好网页搜索的快捷键
  • 怎样建个小公司的网站濮阳网络电视直播
  • 台州低价网站建设阆中做网站