配置说明

gaea配置由两部分组成,本地配置为gaea_proxy直接使用的配置内容,一般不需要在运行时改变。gaea为多租户模式,每个租户称为一个namespace,namespace 的配置在运行时都可变,一般保存在etcd中。

本地配置说明

  1. ; 配置类型,目前支持file/etcd两种方式,file方式不支持热加载,但是可以快速体验功能
  2. config_type=etcd
  3. ;file config path, 具体配置放到file_config_pathnamespace目录下,该下级目录为固定目录
  4. file_config_path=./etc/file
  5. ;配置中心地址,目前只支持etcd
  6. coordinator_addr=http://127.0.0.1:2379
  7. ;远程配置(当前为etcd)根目录
  8. coordinator_root=/gaea
  9. ;配置中心用户名和密码
  10. username=test
  11. password=test
  12. ;环境划分、testonline
  13. environ=test
  14. ;组和服务名称,为服务化做准备
  15. group_name=systech
  16. ;service name
  17. service_name=gaea_proxy
  18. ;日志配置
  19. log_path=./logs
  20. log_level=Notice
  21. log_filename=gaea
  22. log_output=file
  23. ;管理地址
  24. admin_addr=0.0.0.0:13307
  25. ;basic auth
  26. admin_user=admin
  27. admin_password=admin
  28. ;代理服务监听地址
  29. proto_type=tcp4
  30. proxy_addr=0.0.0.0:13306
  31. ; 默认编码
  32. proxy_charset=utf8
  33. ;慢sql阈值,单位: 毫秒
  34. slow_sql_time=100
  35. ;空闲会话超时时间,单位:
  36. session_timeout=3600
  37. ;打点统计配置
  38. stats_enabled=true
  39. stats_backend_type=prometheus

namespace配置说明

namespace的配置格式为json,包含分表、非分表、实例等配置信息,都可在运行时改变。namespace的配置可以直接通过web平台进行操作,使用方不需要关心json里的内容,如果有兴趣参与到gaea的开发中,可以关注下字段含义,具体解释如下,格式为字段名称、类型、内容含义。

字段名称 字段类型 字段含义
name string namespace名称
online bool 是否在线,逻辑上下线使用
read_only bool 是否只读,namespace级别
allowed_dbs map 数据库列表
slow_sql_time string 慢sql时间,单位ms
black_sql string数组 黑名单sql
allowed_ip string数组 白名单IP
slices map数组 一主多从的物理实例,slice里map的具体字段可参照slice配置
shard_rules map数组 分库、分表、特殊表的配置内容,具体字段可参照shard配置
users map数组 应用端连接gaea所需要的用户配置,具体字段可参照users配置

slice配置

字段名称 字段类型 字段含义
name string 分片名称,自动、有序生成
user_name string 连接后端mysql所需要的用户名称
password string 连接后端mysql所需要的用户密码
master string 主实例地址
slaves string数组 从实例地址列表
statistic_slaves string数组 统计型从实例地址列表
capacity int gaea_proxy与每个实例的连接池大小
max_capacity int gaea_proxy与每个实例的连接池最大大小
idle_timeout int gaea_proxy与后端mysql空闲连接存活时间,单位:秒

shard配置

字段名称 字段类型 字段含义

users配置

字段名称 字段类型 字段含义
user_name string 用户名
password string 用户密码
namespace string 对应的命名空间
rw_flag int 读写标识
rw_split int 是否读写分离
other_property int 其他属性,目前用来标识是否走统计从实例