本发明涉及saas服务,尤其涉及一种多租户模式saas服务分布式配置同步共享的系统及方法。
背景技术:
1、在saas的多租户体系结构中,每个租户的需求是个性多样化的。例如:某某品牌的实体商品在下单时,需要根据商品的重量增加运费到订单中。而有些虚拟商品品牌客户是不需要运费的。对于saas开发者来说,需要在下单接口内,使用到诸如此类的配置:是否需要计算运费,运费计算的规则是什么...这就导致在同一个下单业务中,业务代码是同一套的情况下,会因为租户的需求或者体验要求不同,产生各种各样的个性化配置,有些配置项是通用的,而有些配置项是个性化的。
2、在传统的toc场景中,软件开发商们往往只需要考虑自身在各个业务场景的配置项。自定义的配置数量假设为n,而对于saas开发者来说,配置数量会与租户的数量m产生乘积,极端情况下数量可能是n*m。
3、saas服务体量会随着租户数量,及租户业务的规模的不断变大。单体业务架构显然是无法满足服务需求的。saas也不例外,大多使用软件业界推崇的分布式微服务架构。它能有效,快速地提高服务的承载能力,快速扩容,高可用。但也带来了,多进程服务配置管理的难题。
4、在业务快速扩张的初期,我们引入了国内流行的配置中心apollo。使用该项技术在我们业务的初期阶段,配置量较少时,满足来我们分布式业务节点,配置分发和共享的需求。但经过一段时间发展,apollo在应对单namespace配置超过几千甚至上万后,配置同步会出现高延迟,在namespace中更新单个配置项会引起全量namespace的所有配置项进行同步,导致自身cpu资源耗尽等问题时尽显疲态。
5、另外,在微服务的实践过程中,我们发现单机混合部署应用多版本节点是常态。而由于saas本身的业务多租户配置项多的缘故,每个进程都需要从配置中心,读取大量的多租户的配置保存在内存中。因为同一个服务节点会同时服务不用的租户。这些配置经过分析,占进程的申请内存不小的一部分,而这些配置在同应用不同版本中的key的差异是微小的,大多是可以复用的。
6、因此,亟需设计一种高性能,高可用,内存复用的分布式配置同步和配置共享的方法,来应对saas多租户的业务场景和微服务架构场景。
技术实现思路
1、鉴于目前存在的多租户模式saas服务中分布式配置管理困难,本发明提供一种多租户模式saas服务分布式配置同步共享的系统及方法,通过配置中心集群模块以及应用实例部署模块,将配置管理细化到键值维度,通过配置中心集群实现数据同步;使用边车进程建立维护轻型数据库,通过轻型数据库管理、共享、复用多进程之间的业务配置。
2、为达到上述目的,本发明的实施例采用如下技术方案:
3、一种多租户模式saas服务分布式配置同步共享的系统,包括配置中心集群模块和应用实例部署模块;
4、配置中心集群模块,用于通过分布式算法构建数据同步的配置中心集群,向开发者、租户提供对外http服务,实现配置键值数据的存储、查询、持久化以及多节点灾备转移;
5、应用实例部署模块,用于在多租户模式saas服务环境的多个应用实例中部署单独的边车进程,并通过边车进程建立并维护的轻型数据库实现配置数据共享。
6、依照本发明的一个方面,所述配置中心集群包括投票节点与非投票节点,所述投票节点中包含唯一主节点与若干从节点,所述主节点配置为向开发者、租户提供http服务,将开发者或租户的配置写入请求散发到从节点、非投票节点,并返回写入成功信息,所述主节点还包括快照备份。
7、依照本发明的一个方面,所述镜像节点配置为与所述主节点数据同步的非投票节点,并与所述边车进程实现数据同步交互,还包括快照备份、快照恢复以及日志追赶。
8、依照本发明的一个方面,所述从节点配置为将键值数据写入本地存储中,并向主节点返回写入成功信息。
9、依照本发明的一个方面,所述边车进程配置为与所述镜像节点保持http长轮询通信,建立并维护轻型数据库,还包括快照恢复与日志追赶。
10、依照本发明的一个方面,所述轻型数据库配置为实现多进程配置共享,并将轻型数据库中的内容通过mmap文件映射到内存,提供数据查询与访问。
11、依照本发明的一个方面,所述配置中心集群模块还包括监视器,所述监视器配置为监视所述从节点、所述镜像节点以及所述边车进程。
12、一种多租户模式saas服务分布式配置同步共享的方法,包括以下步骤:
13、获取键值数据写入请求;
14、将键值数据写入本地存储中;
15、执行镜像节点与边车进程的数据同步交互;
16、维护轻型数据库。
17、依照本发明的一个方面,多租户模式saas服务分布式配置同步共享的方法还包括:
18、若本地存储中不存在轻型数据库,初始化本地存储;
19、与镜像节点进行通信,请求进行轻型数据库的快照恢复;
20、快照恢复后进行日志追赶。
21、依照本发明的一个方面,所述日志追赶包括以下步骤:
22、将本地数据库中的日志索引发送给镜像节点;
23、将日志索引的值与本地的日志窗口中最小值比较;
24、若日志索引的值小于最小日志窗口值,执行快照恢复;
25、若日志索引的值大于最小日志窗口值,返回数据库中大于最小日志窗口值的记录。
26、本发明实施的优点:本发明所述的一种多租户模式saas服务分布式配置同步共享的系统,包括配置中心集群模块和应用实例部署模块,通过构建配置中心集群实现数据同步,并向开发者、租户提供对外http服务,实现配置键值数据的存储、查询、持久化以及多节点灾备转移,将配置管理细化到键值维度;使用边车进程建立并维护轻型数据库,通过轻型数据库管理、共享、复用多进程之间的业务配置;并使用快照备份、快照恢复以及日志追赶完成轻型数据库的配置数据同步,提高了saas服务的稳定性,配置生效实时性,有效利用了服务器内存资源,显著减少服务器资源成本。
1.一种多租户模式saas服务分布式配置同步共享的系统,其特征在于,包括配置中心集群模块和应用实例部署模块;
2.根据权利要求1所述的多租户模式saas服务分布式配置同步共享的系统,其特征在于,所述配置中心集群包括投票节点与非投票节点,所述投票节点中包含唯一主节点与若干从节点,所述主节点配置为向开发者、租户提供http服务,将开发者或租户的配置写入请求散发到从节点、非投票节点,并返回写入成功信息,所述主节点还包括快照备份。
3.根据权利要求2所述的多租户模式saas服务分布式配置同步共享的系统,其特征在于,所述镜像节点配置为与所述主节点数据同步的非投票节点,并与所述边车进程实现数据同步交互,还包括快照备份、快照恢复以及日志追赶。
4.根据权利要求2所述的多租户模式saas服务分布式配置同步共享的系统,其特征在于,所述从节点配置为将键值数据写入本地存储中,并向主节点返回写入成功信息。
5.根据权利要求3所述的多租户模式saas服务分布式配置同步共享的系统,其特征在于,所述边车进程配置为与所述镜像节点保持http长轮询通信,建立并维护轻型数据库,还包括快照恢复与日志追赶。
6.根据权利要求5所述的多租户模式saas服务分布式配置同步共享的系统,其特征在于,所述轻型数据库配置为实现多进程配置共享,并将轻型数据库中的内容通过mmap文件映射到内存,提供数据查询与访问。
7.根据权利要求5或6所述的多租户模式saas服务分布式配置同步共享的系统,其特征在于,所述配置中心集群模块还包括监视器,所述监视器配置为监视所述从节点、所述镜像节点以及所述边车进程。
8.一种多租户模式saas服务分布式配置同步共享的方法,其特征在于,包括以下步骤:
9.根据权利要求8所述的多租户模式saas服务分布式配置同步共享的方法,其特征在于,还包括:
10.根据权利要求9所述的多租户模式saas服务分布式配置同步共享的方法,其特征在于,所述日志追赶包括以下步骤: