跳至主要內容
SpringBoot-应用篇-多数据源操作数据库

构建环境

  • 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');

holic-x...大约 4 分钟JAVA框架
SpringBoot-自定义starter

学习核心

  • SpringBoot的starter
  • 如何自定义starter
  • 实际业务场景项目启动异常排查

学习资料

SpringBoot的starter

starter的引入

​ 使用spring+springmvc框架进行开发的时候如果需要引入mybatis框架,那么需要在xml中定义需要的bean对象,这个过程很明显是很麻烦的,如果需要引入额外的其他组件,那么也需要进行复杂的配置,因此在springboot中引入了starter ​ starter就是一个jar包,写一个@Configuralion的配置类,将这些bean定义在其中,然后再starter包的springboot程序在启动的时候就会按照约定来加载该配置类META-INF/spring.factories中写入配置类,那么springboot程序在启动的时候就会按照约定来加载该配置类


holic-x...大约 23 分钟JAVA框架
JVM故障实践之GC篇

案例: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 visualVMMAT工具分析 用visualVM分析dump文件

holic-x...大约 13 分钟JAVA基础
MySQL-高可用篇-②分库分表实践

分表不分库

1.环境准备

项目环境

  • JAVA环境:JAVA 8、JDK1.8
  • Springboot:2.x
  • 分表组件:shardingsphere-jdbc
  • MySQL:V8.0.21

数据准备

​ 建立用于测试的数据:

  • 库名:db_camps
  • 数据库:t_user、t_student_1、t_student_2

holic-x...大约 11 分钟JAVAMySQL
MySQL-高可用篇-④分布式锁

学习核心

  • 分布式锁概念核心
    • 分布式锁基础
    • 如何实现分布式锁?(实现原理和案例场景拆解)
      • 三种主流实现分布式锁的方式(实现思路、案例分析、衍生问题)

学习资料


holic-x...大约 31 分钟JAVAMySQL