druid monitor配置 -- springBoot项目

起因:有一天同事的项目连接池突然爆了.

起初是以为有长时执行的SQL,但是排查了一下DB,发现根本没有这种sql.

然后在想会不会是调用第三方的接口,超时导致挂起,没有关闭? 调用了一下代码,发现几个第三方的接口也很正常.

眼看着同事的脑袋上头发越来越少,他终于想到了用监控的这种方法, 于是请教了一下公司的大佬.配置了一下,快速方便上手.效果立竿见影,问题也排查到了. 原来是有个BatchInsert的接口造成的. 

这种大批量的提交,同事用的是sqlSessionFactory的形式,按批次提交的.问题就出在同事在提交之后,没有把Session给close掉.相当于每次都占用并挂起了一条连接.

代码都上了1年多了,几乎每周业务都会操作那么3,4次.倒也相安无事.因为同事每周都发版本, 每次发版重启服务器的时候,就会把这个连接池重置了.所以一直没发现, 直到前几天业务一次性操作了十几次.连接池就爆掉了...

 

本文的重点还是怎么配置druid monitor的 

我们用的springBoot项目, 公司的框架, (应该大同小异)按配置步骤如下

 

1.先添加依赖

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.2</version>
</dependency>

2.在DB的配置类中,添加以下几个配置

public class Dbconfig {
    
    /**
    原先的配置
    */
    @Bean("dataSource")
    @Primary
    public DataSource dataSource() {
        //配置数据库账号密码连接之类的
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将一个druid-springboot-starter的springboot项目转换成使用shardingjdbc的springboot项目的步骤如下: 1. 在pom.xml文件中增加sharding-jdbc-spring-boot-starter和mysql-connector-java的依赖。 ```xml <dependency> <groupId>io.shardingjdbc</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>${shardingjdbc.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> ``` 2. 在application.yml或application.properties中配置sharding-jdbc的数据源和分库分表规则。 ```yaml spring: shardingsphere: datasource: names: ds0, ds1 # 数据源名称 ds0: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/db0?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root ds1: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root sharding: tables: t_order: actual-data-nodes: ds$->{0..1}.t_order_$->{0..1} table-strategy: inline: sharding-column: order_id algorithm-expression: t_order_$->{order_id % 2} key-generator: type: SNOWFLAKE column: order_id binding-tables: t_order default-database-strategy: inline: sharding-column: user_id algorithm-expression: ds$->{user_id % 2} default-table-strategy: none: ``` 3. 在代码中使用sharding-jdbc的数据源访问数据库。 ```java @Autowired private JdbcTemplate jdbcTemplate; public void query() { String sql = "select * from t_order where user_id = ?"; List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql, 10); System.out.println(resultList); } ``` 通过以上步骤,就可以将一个druid-springboot-starter的springboot项目转换成使用shardingjdbc的springboot项目了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值