cetus/doc/cetus-rw-profile.md

192 lines
6.9 KiB
Markdown
Raw Normal View History

# 读写分离版配置文件说明
2018-03-06 15:34:44 +08:00
读写分离版配置文件包括用户配置文件users.json、变量处理配置文件variables.json和启动配置文件proxy.conf具体说明如下
2018-03-06 15:34:44 +08:00
## 1.users.json
```
{
"users": [{
2018-03-16 15:10:47 +08:00
"user": "XXXX",
"client_pwd": "XXXXXX",
"server_pwd": "XXXXXX"
2018-03-06 15:34:44 +08:00
}, {
2018-03-16 15:10:47 +08:00
"user": "XXXX",
"client_pwd": "XXXXXX",
"server_pwd": "XXXXXX"
2018-03-06 15:34:44 +08:00
}]
}
```
2018-03-16 15:10:47 +08:00
users.json用来配置用户登陆信息采用键值对的结构其中键是固定的值是用户在MySQL创建的登陆用户名和密码。
其中user的值是用户名client_pwd的值是前端登录Cetus的密码server_pwd的值是Cetus登录后端的密码。
例如:
2018-03-19 10:14:50 +08:00
```
{
"users": [{
"user": "root",
"client_pwd": "123",
"server_pwd": "123456"
}, {
"user": "test",
"client_pwd": "456",
"server_pwd": "123456"
}]
}
```
2018-03-16 15:10:47 +08:00
我们配置了2个用户名root和test。其中root用户前端登录Cetus的密码是123Cetus登录后端的密码是123456test用户前端登录Cetus的密码是456Cetus登录后端的密码是123456。
2018-03-06 15:34:44 +08:00
## 2.variables.json
2018-03-16 15:10:47 +08:00
Cetus支持部分会话级系统变量的设置可以通过在variables.json配置允许发送的值和静默处理的值如下
2018-03-06 15:34:44 +08:00
```
{
"variables": [
{
2018-03-16 15:10:47 +08:00
"name": "XXXXX",
"type": "XXXX",
"allowed_values": ["XXX"]
2018-03-06 15:34:44 +08:00
},
{
2018-03-16 15:10:47 +08:00
"name": "XXXXX",
"type": "XXXX",
"allowed_values": ["XXX"],
"silent_values": ["XX"]
2018-03-06 15:34:44 +08:00
}
]
}
```
2018-03-16 15:10:47 +08:00
variables.json同样采用键值对的结构其中键是固定的值是用用户自定义的。
2018-11-21 11:47:15 +08:00
其中name的值是需要设置的会话级系统变量的名称type的值是变量的类型可以为int,string或string-csv逗号分隔的字符串值allowed_values的值是指定允许设定的变量值可以使用通配符\*表示此变量设任意值都允许silent_values的值是指定静默处理的值可以使用通配符\*,表示此变量设任意值都静默处理。特别提醒,配置文件中配置的所有项,都要用双引号包裹起来,否则不生效。
2018-03-16 15:10:47 +08:00
**注意配置过allowed_values才能走到静默处理流程**
例如:
2018-03-19 10:14:50 +08:00
```
{
"variables": [
{
"name": "sql_mode",
"type": "string-csv",
"allowed_values":
["STRICT_TRANS_TABLES",
"NO_AUTO_CREATE_USER",
"NO_ENGINE_SUBSTITUTION"
]
},
{
2018-11-21 11:47:15 +08:00
"name": "profiling",
"type": "int",
"allowed_values": ["0", "1"],
"silent_values": ["*"]
2018-03-19 10:14:50 +08:00
}
]
}
```
2018-03-16 15:10:47 +08:00
2018-11-21 11:47:15 +08:00
我们配置了sql_mode变量和profiling变量。其中sql_mode变量的类型是string-csv逗号分隔的字符串值指定了允许设定的变量有STRICT_TRANS_TABLES、NO_AUTO_CREATE_USER和NO_ENGINE_SUBSTITUTIONprofiling变量的类型是int整型此变量允许的值是0和1指定静默处理的值为所有即0和1。
2018-03-06 15:34:44 +08:00
## 3.proxy.conf
2018-03-06 15:34:44 +08:00
```
[cetus]
# Loaded Plugins
2018-03-16 15:10:47 +08:00
plugins=XXX,XXX
2018-03-06 15:34:44 +08:00
2018-09-14 11:23:07 +08:00
# Defines the number of worker processes.
worker-processes=XXX
2018-03-06 15:34:44 +08:00
# Proxy Configuration
2018-03-16 15:10:47 +08:00
proxy-address=XXX.XXX.XXX.XXX:XXXX
proxy-backend-addresses=XXX.XXX.XXX.XXX:XXXX
proxy-read-only-backend-addresses=XXX.XXX.XXX.XXX:XXXX
2018-03-06 15:34:44 +08:00
# Admin Configuration
2018-03-16 15:10:47 +08:00
admin-address=XXX.XXX.XXX.XXX:XXXX
admin-username=XXXX
admin-password=XXXXXX
2018-03-06 15:34:44 +08:00
# Backend Configuration
2018-03-16 15:10:47 +08:00
default-db=XXXX
default-username=XXXXX
2018-03-06 15:34:44 +08:00
# File and Log Configuration
2018-03-16 15:10:47 +08:00
log-file=XXXX
log-level=XXXX
2018-03-06 15:34:44 +08:00
```
2019-03-08 12:12:47 +08:00
proxy.conf是读写分离版本的启动配置文件在启动Cetus时需要加载配置文件采用key=value的形式其中key是固定的可参考[Cetus 启动配置选项说明](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-configuration.md)value是用户自定义的。
2018-03-16 15:10:47 +08:00
例如:
2018-03-19 10:14:50 +08:00
```
[cetus]
# Loaded Plugins
plugins=proxy,admin
2018-09-14 11:23:07 +08:00
# Defines the number of worker processes.
worker-processes=4
2018-03-19 10:14:50 +08:00
# Proxy Configuration
proxy-address=127.0.0.1:1234
proxy-backend-addresses=127.0.0.1:3306
proxy-read-only-backend-addresses=127.0.0.1:3307
# Admin Configuration
admin-address=127.0.0.1:5678
admin-username=admin
admin-password=admin
# Backend Configuration
default-db=test
2019-02-28 10:45:30 +08:00
default-username=test
2018-03-19 10:14:50 +08:00
# File and Log Configuration
log-file=cetus.log
log-level=debug
```
2018-03-16 15:10:47 +08:00
我们配置了读写分离版本的启动选项其中plugins的值是加载插件的名称读写分离版本需加载的插件为proxy和admin
2018-09-14 11:23:07 +08:00
worker-processes为4代表工作进程数量为4建议设置数量小于等于cpu数目
2019-05-28 17:09:10 +08:00
proxy-address的值是Proxy监听的IP和端口我们设置为127.0.0.1:1234proxy-backend-addresses的值是读写后端(主库)的IP和端口我们设置为127.0.0.1:3306只允许一个主库proxy-read-only-backend-addresses的值是只读后端(从库)的IP和端口我们设置为127.0.0.1:3307可多项
2018-03-16 15:10:47 +08:00
admin-address的值是管理模块的IP和端口我们设置为127.0.0.1:5678admin-username的值是管理模块的用户名我们设置为adminadmin-password的值是管理模块的密码明文我们设置为admin
2019-02-28 10:45:30 +08:00
default-db的值是默认数据库当连接未指定db时使用的默认数据库名称我们设置为testdefault-username的值是默认登陆用户名在Proxy启动时自动创建连接使用的用户名我们设置为test
2018-03-16 15:10:47 +08:00
log-file的值是日志文件路径我们设置为当前安装路径下的cetus.loglog-level的值是日志记录级别可选 info | message | warning | error | critical(default)我们设置为debug这些是必备启动选项其他可选的性能配置详见[Cetus 启动配置选项说明](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-configuration.md)。
2018-03-06 15:34:44 +08:00
2018-03-09 11:47:36 +08:00
**注:**
**以上配置文件中.json文件名称不可变.conf文件可自定义名称并利用命令行加载**
**启动配置文件proxy.conf 常用参数:**
2018-03-09 11:47:36 +08:00
2018-10-16 18:03:42 +08:00
**1default-pool-size=\<num\>设置刚启动的连接数量by a worker process最小只能设置为10如果设置小于10则实际该值为10**
2018-03-16 15:10:47 +08:00
2018-09-14 11:23:07 +08:00
**2max-pool-size=\<num\>设置最大连接数量by a worker process**
2018-03-16 15:10:47 +08:00
2018-03-09 11:47:36 +08:00
**3max-resp-size=\<num\>,设置最大响应大小,一旦超过此大小,则会报错给客户端**
2018-03-16 15:10:47 +08:00
2018-03-09 11:47:36 +08:00
**4enable-client-compress=\[true\|false\],支持客户端压缩**
**5enable-tcp-stream=\[true\|false\]启动tcp stream无需等响应收完就发送给客户端**
**6master-preferred=\[true\|false\],除非注释强制访问从库,否则一律访问主库**
**7reduce-connections=\[true\|false\],自动减少过多的后端连接数量**
2018-05-31 14:23:23 +08:00
**8max-alive-time=\<num\>,设置后端连接最大存活时间**
2019-01-03 09:51:59 +08:00
2019-03-25 11:40:16 +08:00
**9enable-fast-stream=\[true\|false\]启动fast stream快速处理只读响应release版本默认为false开发版本默认为true**