druid适配华为云&Gaussdb
前一阵,适配了Mybatis(https://bbs.huaweicloud.com/blogs/437134)。在华为云开源共创平台,还有一些组件, 今天就来适配druid
任务的目的
因为华为云采用了自己的cpu指令集和操作系统,所以可能有些软件不适配。所以诞生了此次任务。我领取的任务就是新建一个使用mybatis的项目,在华为云上部署,看看适配能够正常运行。
报名流程
- 在喜欢的任务上进行报名,填写自己的申请,留下自己的邮箱,之后华为官方会发送任务计划书到邮箱内。
- 开通开发者空间,进行实名认证,加入沃土云创计划个人方向。
- 进入激励管理》开源共创,进入任务,此时在需求分析节点,提交之前发送到邮箱内的任务计划书。
- 提交任务计划书之后,审批后进入开发阶段,阅读任务计划书,了解需要开发的内容。
- 此时需要申领服务器,主要是Gaussdb,华为云CCE(类似k8s),CodeArts(ci/cd)。
- 开发完整之后,在CCE上进行验证,在CodeArts上进行部署。
- 测试完成后,可以申请任务验收。将自己的代码分支博文等信息打包成zip文件进行上传。
- 后面就是等发钱啦。
开发代码
- 华为云提供了官方demo(https://gitcode.com/HuaweiCloudDeveloper/servicecomb-fence/overview),首先在自己的账号下fork仓库,并在master上建立新分支。
- 现在这个项目是在Mybatis上改的,一些基础的类,例如student已经存在了。所以就不需要再写了
- 我的项目https://gitcode.com/wsm921225/opensource-demo-druid-241106/overview,分支dev_druid
添加依赖
本来是想集成Mybatis starter和druid的starter的,但是冲突太多了,所以去掉了Mybatis的starter进行测试,引入包,主要是druid的starer和OpenGauss的驱动
<dependency>
<groupId>org.opengauss</groupId>
<artifactId>opengauss-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.23</version>
</dependency>
applition.yml配置:
spring:
datasource:
druid:
url: jdbc:opengauss://ip:port/postgres?currentSchema=class # WARNING: please change ip and port
username: root
password: root
driver-class-name: org.opengauss.Driver
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
stat-view-servlet:
enabled: true
login-password: admin
login-username: admin
url-pattern: /druid/*
配置Datasource
public class DruidConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.druid")
public DataSource druidDataSource() {
return new DruidDataSource();
}
}
关键代码
public class StudentRepository {
@Autowired
private DataSource dataSource;
public Student getStudentById(int id) {
String sql = "SELECT AGE, NAME, CLASS_ID FROM student WHERE id = ?";
Student student = null;
try (Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
preparedStatement.setInt(1, id);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
student = new Student();
student.setAge(resultSet.getInt("AGE"));
student.setName(resultSet.getString("NAME"));
student.setClassId(resultSet.getLong("CLASS_ID"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}
}
上云第一步-购买Gaussdb
- 在华为云官网,点击产品,输入Gaussdb,选择Gaussdb,选择云数据库GaussDB,点击购买
- 选择以下选项,进行提交
计费模式:按需
区域:广州(选离自己最近的城市)
实例名称:guass-test (随便写,好记就行)
实例类型:集中式
虚拟私有云:默认(也可以自己新建,报名后面cce和guassdb使用一个虚拟私有云)
数据库端口:(随便填)
管理员密码:(随便填)
其他选项默认
上云第二步-购买CCE
在华为云官网,点击产品,输入cce,选择cce,点击购买。
- 执行以下步骤,进行提交
页面顶部控制栏,选择地区,也就是上云第一步购买Gaussdb的地区
集群类型:cce turbo
计费模式:按需付费
集群名称:(随便写)
集群版本:v1.29
集群规模:50
集群 master 实例数:单实例
虚拟私有云:默认(购买Gaussdb使用的虚拟私有云,必须保持一致,否则访问数据库不通)
容器子网(Pod CIDR):默认(购买Gaussdb使用的虚拟子网,必须保持一致,否则访问数据库不通)
其他默认,点击提交。进入插件选择页面。
保持默认插件,点击插件配置,点击确认配置,点击提交。
新建节点
在左侧找到节点池,新建节点。注意这里使用的cpu,内存等都需要更大一点,否则cce的集群会启动失败
配置CodeArts
根据华为云提供的文档(https://gitcode.com/HuaweiCloudDeveloper/OpenSourceForHuaweiWiki/blob/main/zh_CN/docs/cicd-pipeline.md),配置CodeArts。
注意点:
在选择通用git时,没有扩展点,需要新建扩展点(添加代码的git路径和分支)
成果访问
访问 http://cce网关公网ip/ui/admin/ 点击登录按钮后,页面显示如下
现在的demo已经集成了接口测试,直接测试就行
自此,成功完成druid对接华为云的任务。
- 点赞
- 收藏
- 关注作者
评论(0)