Skip to content

Commit

Permalink
部分: 第7周作业-第8周作业
Browse files Browse the repository at this point in the history
  • Loading branch information
renfufei committed Sep 19, 2021
1 parent dccd797 commit 6943786
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 0 deletions.
72 changes: 72 additions & 0 deletions 07rpc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# 第7周作业


## 作业内容

> Week07 作业题目:
###Week07 作业题目

1. (选做)用今天课上学习的知识,分析自己系统的 SQL 和表结构
2. (必做)按自己设计的表结构,插入 100 万订单模拟数据,测试不同方式的插入效率
3. (选做)按自己设计的表结构,插入 1000 万订单模拟数据,测试不同方式的插入效率
4. (选做)使用不同的索引或组合,测试不同方式查询效率
5. (选做)调整测试数据,使得数据尽量均匀,模拟 1 年时间内的交易,计算一年的销售报表:销售总额,订单数,客单价,每月销售量,前十的商品等等(可以自己设计更多指标)
6. (选做)尝试自己做一个 ID 生成器(可以模拟 Seq 或 Snowflake)
7. (选做)尝试实现或改造一个非精确分页的程序
8. (选做)配置一遍异步复制,半同步复制、组复制
9. (必做)读写分离 - 动态切换数据源版本 1.0
10. (必做)读写分离 - 数据库框架版本 2.0
11. (选做)读写分离 - 数据库中间件版本 3.0
12. (选做)配置 MHA,模拟 master 宕机
13. (选做)配置 MGR,模拟 master 宕机
14. (选做)配置 Orchestrator,模拟 master 宕机,演练 UI 调整拓扑结构

### 作业提交规范:

1. 作业不要打包 ;
2. 同学们写在 md 文件里,而不要发 Word, Excel , PDF 等 ;
3. 代码类作业需提交完整 Java 代码,不能是片段;
4. 作业按课时分目录,仅上传作业相关,笔记分开记录;
5. 画图类作业提交可直接打开的图片或 md,手画的图手机拍照上传后太大,难以查看,推荐画图(推荐 PPT、Keynote);
6. 提交记录最好要标明明确的含义(比如第几题作业)。



## 操作步骤


### 第七周-作业1. (选做)

> 本题目需要同学们自己完成.
1. 找一个业务系统。
2. 分析SQL表结构
3. 范式
4. 考虑: 开发效率、查询效率、拓展性、索引、有哪些优化空间。
5. 其他


### 第七周-作业2. (必做)

0. 作业题目: 按自己设计的表结构,插入 100 万订单模拟数据,测试不同方式的插入效率
1. 打开 Spring 官网: https://spring.io/
2. 找到 Projects --> Spring Initializr: https://start.spring.io/
3. 填写项目信息:
* Project: Maven Project
* Language: Java
* Spring Boot版本: 2.5.4
* Group: 自己的包名, 以做标识;
* Artifact: mysql-demo
* JDK版本: 8
* Dependencies: 添加依赖, 比如 MyBatis, Spring Web, MySQL, JDBC
* 生成 maven 项目; 下载并解压。 参考: [mysql-demo项目Share信息](https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.5.4&packaging=jar&jvmVersion=1.8&groupId=com.cncounter&artifactId=mysql-demo&name=mysql-demo&description=MySQL%20Demo&packageName=com.cncounter.mysql-demo&dependencies=mybatis,web,mysql,data-jdbc)

4. Idea或者Eclipse从已有的Source导入Maven项目。
5. 搜索依赖, 推荐 mvnrepository: https://mvnrepository.com/
6. 搜索 fastjson , 然后在 pom.xml 之中增加对应的依赖。
7. 准备MySQL环境, 创建订单表
- 7.1
8. 生成项目;
- 8.1 创建Controller
9. 执行与测试.
35 changes: 35 additions & 0 deletions 08cache/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# 第8周作业


## 作业内容

> Week08 作业题目:
###Week08 作业题目

1. (选做)分析前面作业设计的表,是否可以做垂直拆分。
2. (必做)设计对前面的订单表数据进行水平分库分表,拆分 2 个库,每个库 16 张表。并在新结构在演示常见的增删改查操作。代码、sql 和配置文件,上传到 Github。
3. (选做)模拟 1000 万的订单单表数据,迁移到上面作业 2 的分库分表中。
4. (选做)重新搭建一套 4 个库各 64 个表的分库分表,将作业 2 中的数据迁移到新分库。
5. (选做)列举常见的分布式事务,简单分析其使用场景和优缺点。
6. (必做)基于 hmily TCC 或 ShardingSphere 的 Atomikos XA 实现一个简单的分布式事务应用 demo(二选一),提交到 Github。
7. (选做)基于 ShardingSphere narayana XA 实现一个简单的分布式事务 demo。
8. (选做)基于 seata 框架实现 TCC 或 AT 模式的分布式事务 demo。
9. (选做☆)设计实现一个简单的 XA 分布式事务框架 demo,只需要能管理和调用 2 个 MySQL 的本地事务即可,不需要考虑全局事务的持久化和恢复、高可用等。
10. (选做☆)设计实现一个 TCC 分布式事务框架的简单 Demo,需要实现事务管理器,不需要实现全局事务的持久化和恢复、高可用等。
11. (选做☆)设计实现一个 AT 分布式事务框架的简单 Demo,仅需要支持根据主键 id 进行的单个删改操作的 SQL 或插入操作的事务。

### 作业提交规范:

1. 作业不要打包 ;
2. 同学们写在 md 文件里,而不要发 Word, Excel , PDF 等 ;
3. 代码类作业需提交完整 Java 代码,不能是片段;
4. 作业按课时分目录,仅上传作业相关,笔记分开记录;
5. 画图类作业提交可直接打开的图片或 md,手画的图手机拍照上传后太大,难以查看,推荐画图(推荐 PPT、Keynote);
6. 提交记录最好要标明明确的含义(比如第几题作业)。


## 操作步骤


### 第八周-作业1. (选做)

0 comments on commit 6943786

Please sign in to comment.