构建环境
- Mybatis-plus
- Druid 数据库连接池
- dynamic-datasource
数据表构建
分别向两个数据库中创建相同的数据表user(或者根据不同的情况创建不同结构的数据表),并插入数据
# 分别向数据库db_test_01、db_test_02 创建数据表
-- ----------------------------
-- User 表结构
-- ----------------------------
CREATE TABLE `user` (
`user_id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`user_name` varchar(30) NOT NULL COMMENT '用户账号',
`nick_name` varchar(30) NOT NULL COMMENT '用户昵称',
`email` varchar(50) NULL DEFAULT '' COMMENT '用户邮箱',
`password` varchar(100) NULL DEFAULT '' COMMENT '密码',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '用户信息表' ROW_FORMAT = Dynamic;
# 插入数据
-- ----------------------------
-- 数据库 db_test_01 插入记录
-- ----------------------------
INSERT INTO `user` VALUES (100, 'wangwu', '王五', 'wangwu@qq.com', '123456');
INSERT INTO `user` VALUES (101, 'zhaoliu', '赵六', 'zhaoliu@qq.com', '123456');
-- ----------------------------
-- 数据库 db_test_02 插入记录
-- ----------------------------
INSERT INTO `user` VALUES (100, 'zhangsan', '张三', 'zhangsan@qq.com', '123456');
INSERT INTO `user` VALUES (101, 'lisi', '李四', 'lisi@qq.com', '123456');
学习核心
- 需求管理
- 需求开发
- 测试
- 部署
- 运维(测试(DEV\SIT\UAT)、生产(PROD))
- 安全
学习参考
开发规范
1.需求管理
基于PaaS平台结合线上线下进行Web开发的生命周期管理:
- 需求评审:构建需求Story进行评审,随后开发人员构建开发子任务(创建开发相关Story)进行相应的业务开发
- 开发联调:开发完成与前端组员进行项目联调(本地自测、DEV联调)
- 项目提测:基于CI/CD流水线部署,进行自测 ->冒烟测试(开发侧)-> SIT测试(提测)-> UAT测试(转测),随后交由产品验收
- 上线发布:上线准备(文档准备、环境准备、流程疏通)-> 项目发布
学习资料
前情提要
在MySQL原理学习中,经常需要用到一些大数据量的表来支撑理论学习,因此不免会陷入"造数据"的烦恼,虽然可以借助一些函数或者程序设计(例如hutool工具类)的方式来动态生成一些可用的数据,但还需要进一步满足对大数据量处理的需求,从一开始的1w、10w、100w的数据测试过程会发现可能批量插入几万条数据借助存储过程可能就几分钟忍忍就过去了,但是对于更大的数据量批量插入操作却直接断层拉开时间成本,可能需要更长的时间去完成批量操作
- MySQL服务环境:MySQL8.0.21(核心测试)、MySQL5.7.44(辅助对照)
- IDEA(JAVA程序构建,用于批量生成数据)
- 客户端环境:Navicat、Windows 10(16G)
学习核心
- SpringBoot的starter
- 如何自定义starter
- 实际业务场景项目启动异常排查
学习资料
SpringBoot的starter
starter的引入
使用spring+springmvc框架进行开发的时候如果需要引入mybatis框架,那么需要在xml中定义需要的bean对象,这个过程很明显是很麻烦的,如果需要引入额外的其他组件,那么也需要进行复杂的配置,因此在springboot中引入了starter
starter就是一个jar包,写一个@Configuralion的配置类,将这些bean定义在其中,然后再starter包的springboot程序在启动的时候就会按照约定来加载该配置类META-INF/spring.factories
中写入配置类,那么springboot程序在启动的时候就会按照约定来加载该配置类
案例:ThreadLocal使用不当,导致内存泄漏,进而触发OOM
1.场景分析
故障问题排查说明
针对CPU飙升问题,可按照相关步骤进行排查,如果确认是由于线程大量GC导致的CPU飙升问题,则可进一步进入GC问题排查
步骤 | 指令 | 说明 |
---|---|---|
1 | top |
查看占用cpu高的进程信息 |
2 | jstat -gcutil pid |
查看gc状况 |
3 | jmap -dump:format=b,file=name.dump pid |
导出dump文件 |
4 | visualVM 、MAT 工具分析 |
用visualVM分析dump文件 |
项目介绍
构建通用动态公告系统,后端管理员统一维护公告信息,对外提供接口根据域名或者其他参数配置构建通告联系(关联通知对象,例如根据域名区分子系统等)。前台通过引入通用公告SDK组件(请求调用后台接口获取通知,封装弹窗组件获取公告信息),不同子系统接入只需要一行代码的形式即可完成接入。
项目源码
- 动态公告前端SDK:项目源码、NPM发布
- 动态公告后端:参考itc-platform的itc-platform-backend工程的
Notification
模块
腾讯云存储
腾讯云对象存储(Tencent Cloud Object Storage,COS)是一种安全、可靠、低成本、高扩展的云端存储服务。COS能够存储各种非结构化数据,包括图片、视频、音频、文本等。COS支持标准的HTTP/HTTPS协议,可以通过API、SDK、控制台等方式进行数据的上传、下载和管理。COS还提供了数据保护、数据备份、数据恢复、数据传输加密等多项安全措施,确保用户数据的安全性和可靠性。COS还支持自动化、智能化的数据生命周期管理,帮助用户降低数据存储成本。COS是云计算领域中存储服务的重要组成部分,广泛应用于云存储、备份、归档、内容分发等场景