tomcatjdbc适配华为云&Gaussdb
Tomcat JDBC 是 Apache Tomcat 提供的一种 JDBC 连接池实现,专门用于高效地管理数据库连接。它是 Tomcat 服务器的内建连接池,可以独立使用,也可以作为 Tomcat 内部的数据库连接池进行集成。Tomcat JDBC 的目标是提供一个稳定、性能良好的连接池实现,特别是在 Web 应用中,能够支持高并发的数据库操作。
主要特点:
1. 高性能:
Tomcat JDBC 连接池基于 Tomcat 服务器的内部优化,能够处理大量的并发数据库请求。它在设计时注重性能,尤其是在连接的获取和释放上做了许多优化。
2. 内存管理:
通过精细的连接池管理,Tomcat JDBC 连接池能有效地减少内存占用,提升系统的稳定性和性能。
3. 灵活配置:
Tomcat JDBC 提供了丰富的配置选项,允许开发者根据实际需求对连接池进行高度定制化配置。可以设置最大连接数、最大等待时间、连接泄漏检测等。
4. 简单易用:
由于其简单的配置方式,Tomcat JDBC 非常适合快速集成到基于 Tomcat 的应用中。它的配置文件非常直观,且与 Tomcat 本身的配置文件结构保持一致。
5. 连接泄漏检测:
Tomcat JDBC 提供了连接泄漏检测功能,能够在连接长时间未关闭时报告警告,有助于避免连接泄漏问题。
6. 回收机制:
Tomcat JDBC 会定期回收过期的连接,并且支持通过配置项控制连接的生命周期和最大空闲时间,避免过期连接占用资源。
主要配置项:
Tomcat JDBC 连接池的配置项可以在 context.xml 或 server.xml 中进行设置,常见的配置项有:
• driverClassName:设置 JDBC 驱动的类名。
• url:设置数据库连接的 URL。
• username 和 password:设置数据库的用户名和密码。
• maxTotal:设置连接池中最大的连接数。
• maxIdle:设置连接池中最大的空闲连接数。
• minIdle:设置连接池中最小的空闲连接数。
• maxWaitMillis:设置获取连接的最大等待时间(毫秒)。
• validationQuery:设置用于测试连接是否有效的 SQL 查询语句。
• validationInterval:设置验证连接有效性的时间间隔(毫秒)。
• testOnBorrow 和 testOnReturn:设置在借用或归还连接时是否进行有效性检查。
• timeBetweenEvictionRunsMillis:设置进行空闲连接清理的周期(毫秒)。
• removeAbandonedTimeout:设置多久未关闭的连接被视为泄漏连接。
• leakDetectionThreshold:设置连接泄漏的阈值,超过该时间未关闭的连接会被检测为泄漏。
优势:
• 高效的连接池管理:与传统的数据库连接池相比,Tomcat JDBC 提供了更多的性能优化选项,特别是在并发场景下。
• 集成简单:作为 Tomcat 的一部分,它的集成非常容易。对于使用 Tomcat 的 Web 应用,Tomcat JDBC 是默认且推荐的选择。
• 稳定性强:经过 Tomcat 官方团队的维护和优化,具有较强的稳定性,适合长时间运行的 Web 应用。
• 灵活性:通过丰富的配置项,可以根据需求进行个性化配置,如设置连接池大小、连接有效性检查、回收机制等。
使用场景:
Tomcat JDBC 适合于高并发的 Web 应用、企业级系统以及需要处理大量数据库连接的应用场景。由于其与 Tomcat 的高度集成,对于 Tomcat 用户来说,它是一个理想的连接池选择。
总结来说,Tomcat JDBC 是一个高效、灵活且稳定的 JDBC 连接池,适用于基于 Tomcat 的应用程序。它能够为应用提供可靠的数据库连接管理,帮助减少数据库连接的开销,提高数据库操作的性能。
任务的目的
因为华为云采用了自己的cpu指令集和操作系统,所以可能有些软件不适配。所以诞生了此次任务。我领取的任务就是适配tomcatjdbc,在华为云上部署,看看适配能够正常运行。
报名流程
- 在喜欢的任务上进行报名,填写自己的申请,留下自己的邮箱,之后华为官方会发送任务计划书到邮箱内。
- 开通开发者空间,进行实名认证,加入沃土云创计划个人方向。
- 进入激励管理》开源共创,进入任务,此时在需求分析节点,提交之前发送到邮箱内的任务计划书。
- 提交任务计划书之后,审批后进入开发阶段,阅读任务计划书,了解需要开发的内容。
- 此时需要申领服务器,主要是Gaussdb,华为云ECS。
- 开发完整之后,在ECS上进行验证。
- 测试完成后,可以申请任务验收。将自己的代码分支博文等信息打包成zip文件进行上传。
开发代码
- 华为云提供了官方demo(https://gitcode.com/HuaweiCloudDeveloper/servicecomb-fence/overview),首先在自己的账号下导入仓库。
- 现在这个项目是在Mybatis上改的,一些基础的类,例如student已经存在了。所以就不需要再写了
- 我的项目https://gitcode.com/wsm921225/opensource-demo-tomcat-jdbc-241107/overview,分支dev_tomcat_jdbc
开发思路
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>11.0.0</version>
</dependency>
<dependency>
<groupId>org.opengauss</groupId>
<artifactId>opengauss-jdbc</artifactId>
</dependency>
进行properties配置
spring:
datasource:
url: jdbc:opengauss://ip:port/postgres?currentSchema=class # WARNING: please change ip and port
username: root
password: pwd
driver-class-name: org.opengauss.Driver
tomcat:
initial-size: 5
max-active: 50
max-idle: 30
min-idle: 5
max-wait: 10000
test-on-borrow: true
validation-query: SELECT 1
值得注意的是构造Datasource的方法, 需要指定类型
@Bean
@ConfigurationProperties("spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().type(org.apache.tomcat.jdbc.pool.DataSource.class).build();
}
至此,项目启动完成测试。
上云第一步-购买Gaussdb
第二步-购买ECS
成果访问
访问 http://公网ip/ui/admin/ 点击登录按钮后,页面显示如下
自此,成功完成tomcatjdbc对接华为云的任务。
- 点赞
- 收藏
- 关注作者
评论(0)