配置
配置有两种方式,一种是在配置文件中填写配置,另外一种是在管理台填写配置。同时,配置是分为两种类别,一种是定时任务中的配置,另外一种是无需进入定时任务的规则配置。
定时任务配置
在定时任务中的配置,是在ngx.timer启动时传入,并启动相应的timer,其作用域是在timer的作用域中,如果发生配置变动ngx.timer是主动无法感知的。所以是需要主动判断timer内的conf是否需要同步为最新
如 “健康检查配置”,“熔断限流配置”,“服务节点配置” 这些需要依赖定时任务的都属于定时任务配置。
规则配置
而像负载多策略配置,如 “API负载规则” ,“WAF-CC规则”,... 这类配置是在请求阶段实时获取的,是实时保持最新,无需主动同步的
文件中配置
在文件中配置的数据,只有服务配置,健康检查配置,熔断配置等依赖定时器的情况下,才会从文件配置中取值,其他情况下在文件中配置不生效。
因为配置的读取都在cache中进行,如果需要将文件中新增或者修改的数据生效,可以开启同步数据插件,在启动时同步合并至cache中。
内置模块文件中配置
在内置的模块中,如服务,自检,负载等模块中的文件配置是统一在 constant 包下的文件
插件模块文件中配置
在插件模块中,配置统一放置在各个插件包下的tl_ops_plugin_constant.lua中
管理台配置
在管理后台设置的数据,会直接进入cache中
全局项目配置
除了基础数据配置外,tl-ops-manage还提供了全局配置,对应的配置文件在,tl-ops-manage/tl_ops_manage_env.lua
中,全局配置支持了对各种功能模块的的细化控制
local ROOT_PATH = "/path/to/tl-open-source/tl-ops-manage/"
return {
path = {
tlopsmanage = ROOT_PATH .. "web/",
website = ROOT_PATH .. "website/",
log = ROOT_PATH,
store = ROOT_PATH .. "store/",
},
log = {
level = 1,
format_json = true,
},
cache = {
cus = "none"
},
balance = {
counting = true,
limiter = true,
},
waf = {
open = true,
counting = true,
}
}