高并发架构实战(二) Spring Boot 集成 druid

释放双眼,带上耳机,听听看~!

转载请标注原文地址:https://blog.csdn.net/lilyssh/article/details/82753582

Spring Boot 2.0.4 集成 druid 1.1.10 。项目源码地址

1. 初始化工程

工程 user-provider的结构为:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1$ tree -I target
2.
3├── pom.xml
4└── src
5    └── main
6        ├── java
7        │   └── cn
8        │       └── lilyssh
9        │           └── user
10        │               └── provider
11        │                   └── UserProviderApplication.java
12        └── resources
13            └── application.yml
14
15

2. 添加依赖

打开 pom.xml 引入druid-spring-boot-starter、mysql-connector-java、spring-boot-starter-jdbc、lombok 依赖:(引入lombok是为了方便实体类中get、set方法的自动生成,并不是连接池需要)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1<dependency>
2   <groupId>com.alibaba</groupId>
3   <artifactId>druid-spring-boot-starter</artifactId>
4   <version>1.1.10</version>
5</dependency>
6<dependency>
7   <groupId>mysql</groupId>
8   <artifactId>mysql-connector-java</artifactId>
9   <version>8.0.12</version>
10</dependency>
11<dependency>
12  <groupId>org.springframework.boot</groupId>
13  <artifactId>spring-boot-starter-jdbc</artifactId>
14  <version>2.0.4.RELEASE</version>
15</dependency>
16<dependency>
17  <groupId>org.projectlombok</groupId>
18  <artifactId>lombok</artifactId>
19  <version>1.16.20</version>
20  <scope>provided</scope>
21</dependency>
22
23

3. 配置

(1) 在 application.yml配置文件中添加数据库的相关配置:


1
2
3
4
5
6
7
8
9
10
1spring:
2  datasource:
3    druid:
4      url: jdbc:mysql://db.qianxunclub.com:3306/demo
5      username: zhangbin
6      password: ghdxZSuz+strVRCKInFX8Vp1vjMksZgb5tELqcc7Gkv7c2pQEFSFGDCy8qfbCZdRdG4VVVwS7rIKCFGWZh0OgQ==
7      filters: config
8      connection-properties: "config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALCr8UOmkUhwi+xhbpYaSPOMPxw/Rh3KCzIS9VPTo6fleRLXAP9zCC+9s9f88l/GuN4PI4yDPqg4qT6iQpsREA0CAwEAAQ=="
9
10

(2) 上一步的数据库密码 加密步骤:
(2.1) 执行命令加密数据库密码


1
2
3
4
5
1$ cd ~/.m2/repository/com/alibaba/druid/1.1.10
2
3$ java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools you_password
4
5

会看到


1
2
3
4
5
1privateKey: xxx
2publicKey: ***
3password: &&&
4
5

输入你的数据库密码,输出的是加密后的结果。
(2.2) 配置数据源,提示Druid数据源需要对数据库密码进行解密。


1
2
3
4
5
6
7
8
9
1datasource:
2    druid:
3      url: jdbc:mysql://db.qianxunclub.com:3306/demo
4      username: zhangbin
5      password: ${password}
6      filters: config
7      connection-properties: config.decrypt=true;config.decrypt.key=${publickey}
8
9

4. 测试

mvn clean package,报错:


1
2
3
4
5
6
7
8
9
10
1[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project user-api: Fatal error compiling: java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags -> [Help 1]
2[ERROR]
3[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
4[ERROR] Re-run Maven using the -X switch to enable full debug logging.
5[ERROR]
6[ERROR] For more information about the errors and possible solutions, please read the following articles:
7[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
8
9
10

解决办法:
这是java10下编译lombok 1.16.20版本的问题,通过升级到1.16.22即可搞定。


1
2
3
4
5
6
7
8
1<dependency>
2   <groupId>org.projectlombok</groupId>
3   <artifactId>lombok</artifactId>
4   <version>1.16.22</version>
5   <scope>provided</scope>
6</dependency>
7
8

用jmeter进行高并发压测,会出现错误:线程池耗尽。具体解决办法参考文章:threadpool is exhausted

大功告成!

给TA打赏
共{{data.count}}人
人已打赏
安全经验

Google Adsense老手经验

2021-10-11 16:36:11

安全经验

安全咨询服务

2022-1-12 14:11:49

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索