...大约 38 分钟
- JAVA89
- 项目67
- 碎片化62
- 框架35
- 数据库18
- Redis16
- 设计模式15
- PM13
- databse13
- HLW10
- 算法10
- tools8
- asyncflow8
- 消息队列8
- JavaWeb6
- 后端4
- Docker4
- 持久层框架4
- Vue4
- xtimer4
- 微服务3
- 前端2
- 组件2
- 架构2
- Git1
- MQ1
- Kafka1
- Linux1
- 商城系统1
构建环境
- 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');
...大约 4 分钟
学习核心
- SpringBoot的starter
- 如何自定义starter
- 实际业务场景项目启动异常排查
学习资料
SpringBoot的starter
starter的引入
使用spring+springmvc框架进行开发的时候如果需要引入mybatis框架,那么需要在xml中定义需要的bean对象,这个过程很明显是很麻烦的,如果需要引入额外的其他组件,那么也需要进行复杂的配置,因此在springboot中引入了starter
starter就是一个jar包,写一个@Configuralion的配置类,将这些bean定义在其中,然后再starter包的springboot程序在启动的时候就会按照约定来加载该配置类META-INF/spring.factories中写入配置类,那么springboot程序在启动的时候就会按照约定来加载该配置类
...大约 23 分钟
案例: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文件 |
...大约 13 分钟
分表不分库
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
...大约 11 分钟
...大约 18 分钟
学习核心
-
高可用架构概念核心
- 高可用实现的基础、高可用解决方案
- 高可用架构设计
- 高可用套件
- InnoDB Cluster
-
MySQL中常见的几种高可用架构部署方案
-
如何将数据库异常的损失降到最低
学习资料
...大约 37 分钟
学习核心
- 分布式事务概念核心
- 分布式事务解决方案
- MySQL如何实现分布式事务?
- 哪个方案比较容易落地?
学习资料
...大约 49 分钟
学习核心
- 分布式锁概念核心
- 分布式锁基础
- 如何实现分布式锁?(实现原理和案例场景拆解)
- 三种主流实现分布式锁的方式(实现思路、案例分析、衍生问题)
学习资料
...大约 31 分钟
学习核心
-
数据迁移核心
- 常见数据迁移场景
-
如何安全、有效实现数据迁移
学习资料
...大约 28 分钟
