公司搭建云平台需要实现多租户。搜索互联网,主要两个方案。
- 租户 id 区分,所有租户共用一个数据库;
- 按租户分库,每个租户一个数据库。
方案一最简单直接,缺点就是数据隔离性和安全性差一些,但中小应用还好。 方案二架构就会比较复杂,但是数据隔离性和安全性好。
现在的问题是考虑方案二的话,如何将各租户的数据聚合,因为租户数据都是存在不同的库里面。管理员应该能看到并管理所有租户数据,如果实时从每个库查询效率太低,应该也不是通用做法吧(这方面经验少)。想到的一个架构是,采用阿里开源的实时同步工具 canal, 将每个租户的数据同步到一个全量数据库。管理员在全量数据库去查询数据。
请教 V 友,多租户分库方案,数据如何聚合进行查询的问题,谢谢大家。