Druid基本使用

1.相关地址

项目地址 : https://github.com/alibaba/druid

下载地址 : http://central.maven.org/maven2/com/alibaba/druid/

wiki : https://github.com/alibaba/druid/wiki

2.maven

http://www.mvnrepository.com/artifact/com.alibaba/druid

3.参考配置

<!-- 加载配置属性文件 -->
    <context:property-placeholder ignore-unresolvable="true" location="classpath:cfg.properties" />

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
        <!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass -->
        <property name="driverClassName" value="${jdbc.driver}" />

        <!-- 基本属性 url、user、password -->
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />

        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="${jdbc.pool.init}" />
        <property name="minIdle" value="${jdbc.pool.minIdle}" /> 
        <property name="maxActive" value="${jdbc.pool.maxActive}" />

        <!-- 配置获取连接等待超时的时间 -->
        <property name="maxWait" value="60000" />

        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000" />

        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000" />

        <property name="validationQuery" value="${jdbc.testSql}" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />

        <!-- 打开PSCache,并且指定每个连接上PSCache的大小(Oracle使用)
        <property name="poolPreparedStatements" value="true" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> -->

        <!-- 配置监控统计拦截的filters -->
        <property name="filters" value="stat" /> 
    </bean>
#cfg.properties

#mysql database setting
jdbc.type=mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

#pool settings
jdbc.pool.init=1
jdbc.pool.minIdle=3
jdbc.pool.maxActive=20

#jdbc.testSql=SELECT 'x'
jdbc.testSql=SELECT 'x'

4.StatViewServlet配置

Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。

这个StatViewServlet的用途包括:

  • 提供监控信息展示的html页面
  • 提供监控信息的JSON API

注意:使用StatViewServlet,建议使用druid 0.2.6以上版本。

(1) 配置web.xml

StatViewServlet是一个标准的javax.servlet.http.HttpServlet,需要配置在你web应用中的WEB-INF/web.xml中。

  <servlet>
      <servlet-name>DruidStatView</servlet-name>
      <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>DruidStatView</servlet-name>
      <url-pattern>/druid/*</url-pattern>
  </servlet-mapping>

根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html

例如:
http://localhost:8080/druid/index.html

(2) 配置监控页面访问密码

需要配置Servlet的 loginUsernameloginPassword 这两个初始参数。

示例如下:

<!-- 配置 Druid 监控信息显示页面 -->  
<servlet>  
    <servlet-name>DruidStatView</servlet-name>  
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>  
    <init-param>  
    <!-- 允许清空统计数据 -->  
    <param-name>resetEnable</param-name>  
    <param-value>true</param-value>  
    </init-param>  
    <init-param>  
    <!-- 用户名 -->  
    <param-name>loginUsername</param-name>  
    <param-value>druid</param-value>  
    </init-param>  
    <init-param>  
    <!-- 密码 -->  
    <param-name>loginPassword</param-name>  
    <param-value>druid</param-value>  
    </init-param>  
</servlet>  
<servlet-mapping>  
    <servlet-name>DruidStatView</servlet-name>  
    <url-pattern>/druid/*</url-pattern>  
</servlet-mapping>  

(3) 配置allow和deny

StatViewSerlvet展示出来的监控信息比较敏感,是系统运行的内部情况,如果你需要做访问控制,可以配置allowdeny这两个参数。比如:

 <servlet>
      <servlet-name>DruidStatView</servlet-name>
      <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    <init-param>
        <param-name>allow</param-name>
        <param-value>127.0.0.1</param-value>
    </init-param>
    <init-param>
        <param-name>deny</param-name>
        <param-value>128.242.127.4</param-value>
    </init-param>
  </servlet>

判断规则: deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。如果allow没有配置或者为空,则允许所有访问。

注意: 由于匹配规则不支持IPV6,配置了allow或者deny之后,会导致IPV6无法访问。

(4) 配置resetEnable

在StatViewSerlvet输出的html页面中,有一个功能是Reset All,执行这个操作之后,会导致所有计数器清零,重新计数。你可以通过配置参数关闭它。

  <servlet>
      <servlet-name>DruidStatView</servlet-name>
      <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    <init-param>
        <param-name>resetEnable</param-name>
        <param-value>false</param-value>
    </init-param>
  </servlet>

5.根据URL自动识别DriverClass

前缀DriverCLass描述信息
jdbc:odpscom.aliyun.odps.jdbc.OdpsDriver
jdbc:derbyorg.apache.derby.jdbc.EmbeddedDriver
jdbc:mysqlcom.mysql.jdbc.Driver
jdbc:oracleoracle.jdbc.driver.OracleDriver
jdbc:microsoftcom.microsoft.jdbc.sqlserver.SQLServerDriver
jdbc:sybase:Tdscom.sybase.jdbc2.jdbc.SybDriver
jdbc:jtdsnet.sourceforge.jtds.jdbc.Driver
jdbc:postgresqlorg.postgresql.Driver
jdbc:fakecom.alibaba.druid.mock.MockDriver
jdbc:mockcom.alibaba.druid.mock.MockDriver
jdbc:hsqldborg.hsqldb.jdbcDriver
jdbc:db2COM.ibm.db2.jdbc.app.DB2DriverDB2的JDBC Driver十分混乱,这个匹配不一定对
jdbc:sqliteorg.sqlite.JDBC
jdbc:ingrescom.ingres.jdbc.IngresDriver
jdbc:h2org.h2.Driver
jdbc:mckoicom.mckoi.JDBCDriver
jdbc:cloudscapecom.cloudscape.core.JDBCDriver
jdbc:informix-sqlicom.informix.jdbc.IfxDriver
jdbc:timestencom.timesten.jdbc.TimesTenDriver
jdbc:as400com.ibm.as400.access.AS400JDBCDriver
jdbc:sapdbcom.sap.dbtech.jdbc.DriverSapDB
jdbc:JSQLConnectcom.jnetdirect.jsql.JSQLDriver
jdbc:JTurbocom.newatlanta.jturbo.driver.Driver
jdbc:firebirdsqlorg.firebirdsql.jdbc.FBDriver
jdbc:interbaseinterbase.interclient.Driver
jdbc:pointbasecom.pointbase.jdbc.jdbcUniversalDriver
jdbc:edbcca.edbc.jdbc.EdbcDriver
jdbc:mimer:multi1com.mimer.jdbc.Driver
Druid是一个高性能、分布式的列存储数据库,它支持快速查询和聚合操作,并且能够处理PB级别的数据。 以下是Druid基本配置和使用步骤: 1. 下载Druid 首先需要下载和安装Druid,可以从官方网站(http://druid.apache.org/)下载最新版本。 2. 配置Zookeeper Druid使用Zookeeper来协调集群节点之间的状态,因此需要先配置Zookeeper。可以从Zookeeper的官方网站(https://zookeeper.apache.org/)下载最新版本,并按照官方文档进行配置。 3. 配置Druid服务 需要创建一个Druid服务,以便在其中运行Druid进程。可以使用默认的配置文件,也可以根据需要进行自定义。配置文件通常位于`conf/druid/single-server/middlemanager/runtime.properties`。 4. 启动Druid服务 启动Druid服务需要在命令行中输入以下命令: ``` java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath "config/_common:config/realtime:lib/*" io.druid.cli.Main server middleManager ``` 其中`middleManager`是Druid服务的名称,可以根据需要进行更改。 5. 使用DruidDruid服务启动后,可以使用Druid的API或者控制台来进行查询和管理操作。可以使用以下命令启动控制台: ``` java -classpath "config/_common:config/middlemanager:lib/*" io.druid.cli.Main server middleManager ``` 然后在浏览器中打开`http://localhost:8081`即可访问Druid的控制台。 以上是Druid基本配置和使用步骤,具体操作可以参考官方文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值