
# 读写分离部署文档
### 一、概述
读写分离指的是将某些“只读”的业务功能请求路由到单独配置的读库中,通过读写分离机制,提高系统的整体性能及稳定性。
### 二、前置条件
将需要读写分离的分库搭建好主从环境。
### 三、MC配置
登录MC按照以下步骤进入配置:
> 以下教程的数据库连接信息仅为演示使用,实际配置时请根据实际情况进行调整
#### 3.1 数据库连接配置
功能路径:`组件维护 -> 数据库连接 -> 新增`
需要先将数据库的连接信息添加到数据库连接列表,在后续配置从库时需要用到。
> 读库的host及port必须有一项与主库不同,否则使用时会产生不允许两个写库的错误

填入实际的从库信息后,点击测试连接,无误后保存即可。
#### 3.2 读库配置
功能路径:`苍穹集群列表 -> 租户列表 -> 租户 -> 数据中心`
> 数据中心的更改必须先将该启用按钮置灰,保存后方能进行更改

双击数据中心打开配置卡片,进入后激活`读写分离`按钮

增加读库

> 只读负载因子:该参数请暂时不要修改,未来预留使用
填入实例名,并在所属数据库中选择从库

配置完毕后点击数据中心卡片的左上角保存按钮保存,回到数据中心列表后重新将该数据中心启用后保存。

读库的配置部分到此结束,如需配置多个分库的读库,重复上述步骤即可。
##### 3.3 读写分离功能点配置
功能路径:`基础数据维护 -> 环境公共配置项`
在`prop`的下属节点`db.properties`(没有则增加)中增加配置项:`db.splittingread.whitelist=key1[,key2][,key3][,...]`
例如:`db.splittingread.whitelist=qing`,如果需要配置多个功能点启用读写分离,则使用英文逗号分隔。

为了兼顾不同客户的需求,读写分离的功能点可以按功能点进行配置。目前支持的功能点列表:
| key | 功能描述 |
| -------- | ---------------------------------------------------------- |
| report | 用平台报表框架开发的报表(**不推荐启用**)例如:科目余额表 |
| billlist | F7、单据列表查询 (**不推荐启用**