1.一种动态数据存取方法,其特征在于,包括以下步骤:
S1:读取数据库配置信息以初始化一致性哈希环,该一致性哈希环包括多个实际节点,每个实际节点对应于一数据库;
S2:获取待存取数据的存取条件的哈希值;
S3:获得该一致性哈希环上大于等于该哈希值的最近节点;
S4:将待存取数据对应于该最近节点相应的数据库。
2.如权利要求1所述的动态数据存取方法,其特征在于,步骤S1还包括:为每个实际节点分配多个虚拟节点;
步骤S3中的最近节点为大于等于该哈希值的最近的虚拟节点。
3.如权利要求1所述的动态数据存取方法,其特征在于,该数据库配置信息包含:数据库名称、数据表、上一版数据库名称和是否正在迁移数据标识。
4.如权利要求3所述的动态数据存取方法,其特征在于,步骤S1中通过数据库名称来初始化该一致性哈希环。
5.如权利要求1-4中任意一项所述的动态数据存取方法,其特征在于,步骤S2中通过将数据库名称和存取条件求取MD5的值后再根据Java自带的求取哈希值的方法生成哈希值。
6.如权利要求2所述的动态数据存取方法,其特征在于,通过在实际节点名称加上不同的数据数字组成字符串、然后求哈希值来获得虚拟节点。
7.一种动态数据存取系统,其特征在于,其包括多个数据库、多个数据库的配置信息以及一致性哈希环,以及
读取装置,用于读取数据库配置信息以初始化一致性哈希环,该一致性哈希环包括多个实际节点,每个实际节点对应于一数据库;
计算装置,用于获取待存取数据的存取条件的哈希值;
遍历装置,用于获得该一致性哈希环上大于等于该哈希值的最近节点;
映射装置,用于将待存取数据对应于该最近节点相应的数据库。
8.如权利要求7所述的动态数据存取系统,其特征在于,该动态数据存取系统还包括分配装置,用于为每个实际节点分配多个虚拟节点;
其中,最近节点为大于等于该哈希值的最近的虚拟节点。
9.如权利要求7所述的动态数据存取系统,其特征在于,该数据库配置信息包含:数据库名称、数据表、上一版数据库名称和是否正在迁移数据标识。
10.如权利要求7-9中任意一项所述的动态数据存取系统,其特征在于,数据库为关系型数据库。