第三篇 功能共用:一套代码服务所有租户
第二篇把地基打好了:请求进得来、数据分得开、开关存得下、新户开得通。第三篇面对的是另一个命题——同一套代码,怎么让一百个租户用出一百种感觉。
权限是最先被挑战的:定制时代每个客户一套代码,权限随便写;现在一套代码服务所有租户,权限必须同时回答能做什么和能看谁家两个问题。模板是第二个挑战:客户都想要自己的皮肤,但我们绝不可能为每户 fork 一套视图。文件和缓存是第三第四个:上传的图片不能串户,Redis 里的热数据更不能串户,后者的故障比前者隐蔽十倍。
本篇四节,对应功能共用的四条主线:
- 3.1 权限体系:角色与租户双维度,把校验收敛进一个中间件
- 3.2 模板引擎:租户自定义皮肤,一套视图画出百种门面
- 3.3 文件存储:每户一个 COS 前缀,上传下载都带身份证
- 3.4 缓存隔离:Redis 键前缀与防串号,最隐蔽的故障来源
这四节的共同手法是:差异收敛进数据,规则收敛进中间件,代码始终只有一套。腾讯云实践 里有 COS 与 Redis 的产品视角说明,配合本篇实操部分阅读更顺。
