Skip to content

Commit

Permalink
format
Browse files Browse the repository at this point in the history
  • Loading branch information
yanhuqing666 committed Dec 3, 2020
1 parent d6778b7 commit 05d4de9
Show file tree
Hide file tree
Showing 6 changed files with 376 additions and 90 deletions.
39 changes: 24 additions & 15 deletions 1.config_file/1.12_customized_global_table_check.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ public String[] getFetchCols() {
##### **3.SQL结果比较方法 boolean resultEquals(result1,result2)**
**功能:** 用于判断两个不同节点的返回结果是否一致
**输入:** 不同节点的两个节点result,result1,result2

```
SQLQueryResult<List<Map<String, String>>> result
Expand All @@ -79,9 +80,11 @@ result
------ row(List<1> checksum table suntest只有一行返回结果)
|
------Key-Value(checksum - 1290812451 getFetchCols只取了一列)
```
```

**输出:** 需要收集的列名list
**举例:**

```
public boolean resultEquals(SQLQueryResult<List<Map<String, String>>> or, SQLQueryResult<List<Map<String, String>>> cr) {
//因为checksum只有一行,并且即使表不存在也会有一行结果集
Expand All @@ -99,7 +102,8 @@ public boolean resultEquals(SQLQueryResult<List<Map<String, String>>> or, SQLQue
**功能:** 检查失败的通知/响应/其他自定义行为
**输入:** 检查结果列表
**输出:**
**举例:**
**举例:**

```
public void failResponse(List<SQLQueryResult<List<Map<String, String>>>> res) {
//简单的情况下直接在日志中打印出对应信息
Expand All @@ -111,11 +115,13 @@ public void failResponse(List<SQLQueryResult<List<Map<String, String>>>> res) {
}
}
```

##### **5.其他结果通知 void resultResponse(errorList)**
**功能:** 检查结果的通知/响应/其他自定义行为
**输入:** 检查(报错)结果列表
**输出:**
**举例:**
**举例:**

```
public void resultResponse(List<SQLQueryResult<List<Map<String, String>>>> elist) {
//输入参数是检查过程中SQL执行报错的list,因为SQL自定义
Expand All @@ -137,22 +143,24 @@ public void resultResponse(List<SQLQueryResult<List<Map<String, String>>>> elist
}
}
```
### 自定义全局表检查的开发及使用
#### 检查的自定义步骤
##### 1 创建一个java项目

### 自定义全局表检查的开发及使用
#### 检查的自定义步骤
##### 1 创建一个java项目
![java项目创建](pic/create_project_global.png)
##### 2 将需要的依赖包copy到项目中,并且添加到lib
##### 2 将需要的依赖包copy到项目中,并且添加到lib
![添加依赖](pic/add_library_global.png)
##### 3 按照上一节的介绍逐个实现5个自定义方法
##### 3 按照上一节的介绍逐个实现5个自定义方法
![方法实现](pic/function_code_global.png)
##### 4 打包成jar进行使用
![打包编译](pic/global_package.png)
##### 5 示例文件及jar包
[示例代码下载](https://github.com/actiontech/dble-docs-cn/raw/master/1.config_file/1.12_customized_global_table_check/CustomizeTest.java)
#### 自定义检查的配置
##### 4 打包成jar进行使用
![打包编译](pic/global_package.png)
##### 5 示例文件及jar包
[示例代码下载](https://github.com/actiontech/dble-docs-cn/raw/master/1.config_file/1.12_customized_global_table_check/CustomizeTest.java)
#### 自定义检查的配置
**当前**的全局表检查定义为schema.table级别,需要对于每个需要进行全局表一致性检查的表格进行配置,配置的下放带来一些繁琐的工作,但是却提供了一个重要的特性,用户可以根据不同全局表格的需要,或者是业务上面的特性,给与不同的全局表格不同的校验方式
***注意:检查方式的修改仅在reload或者重启之后生效***
**举例:**
**举例:**

```
<!--dble内置CHECKSUM检查方式-->
<globalTable name="tb_global1" shardingNode="dn1,dn2" cron = "0 * * * * ?" globalCheckClass="CHECKSUM"/>
Expand All @@ -162,6 +170,7 @@ public void resultResponse(List<SQLQueryResult<List<Map<String, String>>>> elist
<!--上文中我们自定义的CustomizeTest类的检查方式-->
<globalTable name="tb_global3" shardingNode="dn1,dn2" cron = "0 * * * * ?" globalCheckClass="CustomizeTest"/>
```
```

**自定义**的jar包和其他dble内的自定义功能一样,将jar包放置于algorithm或者lib目录下就会在启动的时候被dble加载到,但是由于java中的类加载方式,如果由更新jar包内容和新增jar包的情况下,请先重启dble进程
***注意:当修改自定义jar包的时候请重启dble,此时reload可能无法得到预期的结果***
13 changes: 10 additions & 3 deletions 2.Function/2.23_outerHa_linkage/2.23.4_mha_sample.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,10 @@ MySQL [(none)]> show @@dbinstance;
可见在初始状态下,节点的使用属性和配置文件一致,172.20.134.1节点作为写节点,并且所有节点的使用状态都是“可用”
### 最终效果
+ 通过ps命令在172.20.134.1容器中找到对应的mysqld进程
+ 通过kill -9 命令对于172.20.134.1容器中的mysqld进程进行关闭
+ 重新通过命令检查dble中此时的后端节点状态,发现如下的执行结果
+ 通过kill -9 命令对于172.20.134.1容器中的mysqld进程进行关闭
+ 重新通过命令检查dble中此时的后端节点状态,发现如下的执行结果


```
MySQL [(none)]> show @@dbinstance;
+-----------+--------------+--------------+------+------+--------+------+------+---------+-----------+------------+----------+
Expand All @@ -299,7 +301,10 @@ MySQL [(none)]> show @@dbinstance;
+-----------+--------------+--------------+------+------+--------+------+------+---------+-----------+------------+----------+
```

+ 检查当前dble的配置文件,发现配置文件中的后端节点位置发生扭转,172_20_134_2变成新的写节点


```
<dbGroup name="dbGroup1" delayThreshold="100">
<heartbeat>show slave status</heartbeat>
Expand All @@ -308,8 +313,10 @@ MySQL [(none)]> show @@dbinstance;
<dbInstance name="172_20_134_3" url="172.20.134.3:3306" password="123456" user="root" disabled="false" id="udp-2" primary="true" />
</dbGroup>
```
```

+ 检查存在于172.20.134.3上mysql从的状态,发现其复制指向已经发生切换,切换为新主172.20.134.2,与dble中最新的配置文件相符

```
MySQL [(none)]> show slave status\G
*************************** 1. row ***************************
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@

其逻辑图如下:

:![](pic/2.5.1.png)
:![一般分布式事务图](pic/2.5.1.png)

Loading

0 comments on commit 05d4de9

Please sign in to comment.