前言
这一套公共服务的最大特点是高集成度的配置化方案,基于此我们有鉴权的配置、转发的配置、权限的配置等等。
服务配置缓存
初衷
数据库中读取配置太慢了,况且有可能还要关联表查询,那就更慢了,但配置是更新频繁的常用项,所以这部分是一个重点优化的对象。
举个例子,总不能当前site及对接的server有关配置项,我都要重新关联表去查询吧。sql查得可能不止一张表,但缓存可以是一套整合后的数据。
当然,比如说SSO登陆状况等,也适合做一下缓存,避免重复远程验签
缓存哪些内容?
- 站点缓存
- 下游服务缓存
- 应用配置项缓存
- 权限缓存
- 用户登陆信息缓存
export enum Redis_Key {
Sites = 'sites',
Servers = 'servers',
User_Prefix = 'userinfo_',
CmParams = 'common_params',
Sites_config = 'sites_config',
Upm_Zone = 'upm_zone',
}
如何缓存?
写操作
类似登录用户信息这部分,需要配置缓存时间
清除缓存
如何读取缓存?
什么时机缓存?
- 通常在上述所有配置项的sql写数据时,都会进行同步写redis(更新缓存)
- 部分缓存,保证数据库和缓存之间的一致性,加了服务定时更新
- 启动服务时,主动更新一次缓存
- 设置缓存有效期