用户信息同步方法、装置、计算机装置及存储介质与流程

文档序号:15466265发布日期:2018-09-18 19:23阅读:162来源:国知局

本发明涉及通信技术领域,尤其涉及一种用户信息同步方法、装置、计算机装置及存储介质。



背景技术:

随着技术的发展,应用系统(如社交平台、购物平台等)上的用户量越来越大,在部署服务器等硬件环境时,通过多活体系架构进行部署可以提高部署的成本、兼顾容灾等优点。然而对于异地多活体系架构,通常有多套同时运行的运行环境。在登陆多活系统时,通常通过负载均衡器进行登陆。负载均衡器可以将网络请求分散到服务器集群中的可用服务器中,分配最适当的服务器响应网络请求。因此,用户在首次注册时,多活系统随机指定一套最适合的运行环境供用户在客户端进行登陆,客户端并没有任何不同,而实际用户登陆的为多活系统中某一运行环境,用户注册时的信息仅保留在某一运行环境中,在其他运行环境中用户并没有用户注册的信息,这样就会导致用户基础数据不一致的问题,进而影响到用户其他数据的同步(例如用户报表的同步等)。



技术实现要素:

鉴于以上内容,有必要提供一种用户信息同步方法、装置、计算机装置及存储介质,能在异地多活系统中保持用户基础信息的一致性。

本发明提供一种用户信息同步方法,所述方法包括:

获取多活系统中每个运行环境的用户信息;

将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境;

模拟所述待同步用户在所述待同步运行环境中注册。

在本发明优选实施中,所述方法还包括:

获取所述多活系统的日志信息;

若所述日志信息包含用户登陆失败的信息,执行所述获取多活系统中每个运行环境的用户信息的步骤。

在本发明优选实施中,所述方法还包括:

获取所述多活系统的运行中进程;

当所述运行中进程的数量低于预设进程数量和/或所述运行中进程不包含指定进程时,执行所述获取多活系统中每个运行环境的用户信息的步骤;或者

当所述运行中进程的数量低于预设进程数量和/或所述运行中进程不包含指定进程时,执行所述模拟所述待同步用户在所述待同步运行环境中注册的步骤。

在本发明优选实施中,所述预设进程数量和/或所述指定进程根据所述多活系统的硬件资源确定。

在本发明优选实施中,所述将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境包括:

将所述多活系统的第一运行环境中的用户信息与所述第一运行环境以外的其他运行环境中的用户信息进行对比;

当第一运行环境中的第一用户的信息没有在所述其他运行环境中都存在时,确定所述第一用户为待同步用户,确定不存在所述第一用户的信息的运行环境为待同步运行环境。

在本发明优选实施例中,所述将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境包括:

将所述多活系统的第一运行环境中的用户信息与所述第一运行环境以外的其他运行环境中的用户信息进行对比;

获取在每个运行环境中存在且不一致的用户信息;

确定在每个运行环境中存在且不一致的用户信息对应的用户为待同步用户,根据待同步用户的指定信息确定待同步运行环境。

在本发明优选实施例中,所述方法还包括:

获取所述多活系统的系统时间;

根据所述系统时间确定是否执行所述获取多活系统中每个运行环境的用户信息的步骤。

本发明还提供一种用户信息同步装置,所述装置包括:

获取模块,用于获取多活系统中每个运行环境的用户信息;

匹配模块,用于将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境;

同步模块,用于模拟所述待同步用户在所述待同步运行环境中注册。

在本发明优选实施例中,所述装置还包括:

日志获取模块,用于获取所述多活系统的日志信息;

第一触发模块,用于若所述日志信息包含用户登陆失败的信息,触发所述获取模块获取多活系统中每个运行环境的用户信息。

在本发明优选实施例中,所述装置还包括:

进程获取模块,用于获取所述多活系统的运行中进程;

第二触发模块,用于当所述运行中进程的数量低于预设进程数量和/或所述运行中进程不包含指定进程时,触发所述获取模块获取多活系统中每个运行环境的用户信息;或者触发所述同步模块模拟所述待同步用户在所述待同步运行环境中注册。

在本发明优选实施例中,所述预设进程数量和/或所述指定进程根据所述多活系统的硬件资源确定。

在本发明优选实施例中,所述匹配模块具体用于:

将所述多活系统的第一运行环境中的用户信息与所述第一运行环境以外的其他运行环境中的用户信息进行对比;

当第一运行环境中的第一用户的信息没有在所述其他运行环境中都存在时,确定所述第一用户为待同步用户,确定不存在所述第一用户的信息的运行环境为待同步运行环境。

在本发明优选实施例中,所述匹配模块具体用于:

将所述多活系统的第一运行环境中的用户信息与所述第一运行环境以外的其他运行环境中的用户信息进行对比;

获取在每个运行环境中存在且不一致的用户信息;

确定在每个运行环境中存在且不一致的用户信息对应的用户为待同步用户,根据待同步用户的指定信息确定待同步运行环境。

在本发明优选实施例中,所述识别模块具体用于:

时间获取模块,用于获取所述多活系统的系统时间;

第三触发模块,用于根据所述系统时间确定是否触发所述获取模块获取多活系统中每个运行环境的用户信息。

本发明还提供一种计算机装置,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中所述的用户信息同步方法。

本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现任意实施例中所述的用户信息同步方法。

由以上技术方案看出,本发明通过获取多活系统中每个运行环境的用户信息;将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境;模拟所述待同步用户在所述待同步运行环境中注册。由于获取了待同步用户与对应的待同步用户环境,并且模拟了待同步用户在对应的待同步运行环境中注册,因此在待同步运行环境中也有了待同步用户的注册信息,可以在异地多活系统中保持用户基础信息的一致性。同时,也有利于用户基础信息以外的其他信息进行同步,使得在异地多活系统中用户数据可以保持一致。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例提供的一种用户信息同步方法的流程图;

图2是本发明实施例提供的用户信息同步装置的功能模块图;

图3是本发明实现用户信息同步方法的较佳实施例的计算机装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示,图1为本发明实施例提供的一种用户信息同步方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

S10,获取多活系统中每个运行环境的用户信息。

本发明所述的多活系统是指系统的体系架构为多活体系架构。具体的,可以是异地多活体系架构。异地多活是指数据中心在地理空间上是分布部署的,每个数据中心保持一定的独立性。同时,多个中心协同工作,并行的为业务访问提供服务,在一个数据中心发生故障的情况下,其他数据中心可以正常运行,保持业务的正常的运行。

例如,多活体系架构的Cognos(康格诺)系统,所述Cognos是一种BI(Business Intelligence,商业智能)报表系统。BI报表系统可以为企业中现有数据进行整合并提供出报表,帮助企业的经营者快速了解企业的信息,进而进行决策。

在实际应用中,多活系统可以包含至少两套运行环境。比如,某一多活系统包含两套运行环境,此时,可称为异地双活。又比如,某一多活系统包含三套运行环境。

上述用户信息可以是用户的名称或者用户的编号,同时,也可以为包括用户的名称、用户的编号、用户的注册时间、用户身份等在内的多项用户注册时所填写的一项或者是多项基础信息。

比如,多活系统中包含A运行环境和B运行环境,获取A运行环境中包含的用户的名称和用户的编号,同时,获取B运行环境中包含的用户的名称和用户的编号。

又比如,多活系统中包含A运行环境、B运行环境和C运行环境,获取A运行环境中获取A运行环境中包含的用户的名称和用户的编号,B运行环境中包含的用户的名称和用户的编号,以及C运行环境中包含的用户的名称和用户的编号。

可选的,在本发明另一实施例中,上述步骤S10之前可包括:

获取所述多活系统的日志信息;若所述日志信息包含用户登陆失败的信息,执行所述步骤S10获取多活系统中每个运行环境的用户信息。

上述多活系统的日志信息可以包含多活系统在运行过程中的异常信息或报错信息。

具体的,可以获取在指定时间之内的日志信息。指定时间的值可以根据需要设定,例如获取3小时之内的日志信息。

在判断日志信息是否包含用户登陆失败的信息时,可以通过判断信息的类型进行判断,进而通过信息的名称进行判断,以便从日志信息中快速的定位所需信息。

在本实施例中,若日志信息包含用户登陆失败的信息,则说明有用户登陆不上,此时可以执行步骤S10,对用户信息进行同步,使得用户基础信息在各运行环境之间保持一致,提高用户登陆的成功率。

进一步地,在本发明其他实施例中,若日志信息包含用户登陆失败的信息,获取用户登陆失败的原因,根据用户登陆失败的原因执行所述步骤S10获取多活系统中每个运行环境的用户信息的步骤。

由于用户登陆失败的原因不限于用户数据不同步这一种,也可能是用户密码输入错误等。因此若用户登陆失败的原因为用户不存在系统中,可执行步骤S10,使得用户基础信息在各运行环境之间保持一致,避免用户因为运行环境数据不一致而使得用户无法登陆,提高系统的可靠性。

可选的,在本发明另一实施例中,上述步骤S10之前可包括:

获取所述多活系统的运行中进程;

当所述运行中进程的数量低于预设进程数量和/或所述运行中进程不包含指定进程时,执行所述步骤S10获取多活系统中每个运行环境的用户信息。

其中,上述预设进程数量可以根据需要设定。同样的,上述指定进程也可以根据需要设定。

在本实施例中,可以仅当系统当前运行的进程数量较少,或者没有指定进程时,才执行步骤S10,使得本发明所述的用户信息同步方法可以快速进行,同时并不影响系统当前的其他各项任务运行。

进一步地,所述预设进程数量和/或所述指定进程根据所述多活系统的硬件资源确定。

由于不同的硬件资源下,使得当前系统保持流畅运行的条件也不相同。例如,不同的硬件资源可以为进程分配不同的硬件资源,进而支持不同的进程数量或者是不同的进程任务。因此,根据不同的硬件资源进行设定进程数量,可以保证多活系统运行的流畅性和稳定性。

可选的,在本发明另一实施例中,上述步骤S10之前可包括:

获取所述多活系统的系统时间;

根据所述系统时间确定是否执行所述步骤S10获取多活系统中每个运行环境的用户信息。

其中,所述多活系统的系统时间是指多活系统当前的系统时间,同时,可以是获取多活系统中任意一个运行环境的系统时间。由于多活系统中各运行环境是协同工作的,因此任意运行环境的系统时间与其他系统的系统时间是一致的。

具体的,可以判断当前的系统时间是否为指定时间,例如判断当前的系统时间是否为晚上8点,若是,则执行步骤S10。

或者,可以判断当前的系统时间是否为整点时间,例如判断当前系统时间是否为14点或者为15点,若是,则执行步骤S10,则此时,每个整点时间,即每间隔1个小时,执行步骤S10。

进一步地,若当前的系统时间为整点时间,则执行所述多活系统中所有运行环境中每个运行环境的用户信息的步骤。并且,在获取每个运行环境的用户信息时,可以仅获取多活系统的各个运行环境中一小时内增量的用户信息。此时,不再对之前已匹配过的用户信息进行重复匹配,仅对新增的用户信息进行匹配,可以减少操作冗余,提高系统的运行效率。

S20,将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境。

具体的,可以将获取到的每个运行环境的用户信息分别进行匹配,从而得到待同步用户以及待同步用户对应的待同步运行环境。

进一步地,所述步骤S20将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境,可包括:

将所述多活系统的第一运行环境中的用户信息与所述第一运行环境以外的其他运行环境中的用户信息进行对比;

当第一运行环境中的第一用户的信息没有在所述其他运行环境中都存在时,确定所述第一用户为待同步用户,确定不存在所述第一用户的信息的运行环境为待同步运行环境。

在本实施例中,选取信息没有覆盖到每个运行环境的用户为待同步用户。

其中,上述第一运行环境可以是多活系统中的任意一个运行环境。上述第一用户可以为第一运行环境之中的任意一个用户。

具体的,若多活系统中包含三个运行环境,可以对将第一个运行环境之中的每一个用户分别与其他运行环境之中的每一个用户进行匹配。

然后,再将多活系统中的第二个运行环境中的每一个用户分别与其他运行环境之中的每一个用户进行匹配,以及第三个运行环境之中的每一个用户分别与其他运行环境之中的每一个用户进行匹配,从而获取不完全存在于每个运行环境之中的用户的信息。

比如,获取到A运行环境中包含的用户名称为x用户,y用户,和z用户,B运行环境中包含的用户名称为x用户和z用户,则匹配结果为B运行环境中不包含y用户,则待同步用户是y用户,y用户对应的待同步运行环境为B运行环境,即,在A运行环境和B运行环境中,y用户的信息不一致,需要将y用户的信息同步至B运行环境中。

又比如,获取到A运行环境中包含的用户名称为x用户,y用户,和z用户,B运行环境中包含的用户名称为x用户和z用户,C运行环境中包含的用户名称为x用户。则将A运行环境与B运行环境和C运行环境中的用户名称分别进行匹配。得到待同步用户为y用户以及z用户,y用户对应的待同步运行环境为B运行环境和C运行环境,z用户对应的待同步运行环境为C运行环境,即,在A运行环境、B运行环境以及C运行环境中,y用户以及z用户的信息不一致,需要将y用户的信息同步至C运行环境与C运行环境,以及将z用户的信息同步至C运行环境。

其他实施例中,所述步骤S20将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境,还可包括:

将所述多活系统的第一运行环境中的用户信息与所述第一运行环境以外的其他运行环境中的用户信息进行对比;

获取在每个运行环境中存在且不一致的用户信息;

确定在每个运行环境中存在且不一致的用户信息对应的用户为待同步用户,根据待同步用户的指定信息确定待同步运行环境。

在本实施例中,确定信息存在于每个运行环境中的,但信息不完全一致的用户为待同步用户。

具体的,在实际应用中,获取到的不同运行环境中的存在的同一用户的信息可能一致,也可能不完全一致。例如,x用户的注册信息在A运行环境中与B运行环境中都存在,且x用户的注册信息在A运行环境中与在B运行环境中不尽相同。则此时,该x用户的信息在不同的运行环境中不一致,确定x用户为待同步用户。

上述指定信息用于作为确定待同步运行环境的基准。具体的,待同步用户的指定信息可以为待同步用户的数据录入方,或者未待同步数据的数据大小,或者待同步数据的注册时间的先后等信息。待同步用户的指定信息还可以为上述信息的结合或者是其他上述未提及的信息。

例如,在A运行环境中,x用户的注册时间为6月,且6月产生了与用户相关的其他操作性数据,而在B运行环境中,x用户的注册时间3月,同时在B运行环境中,在3-6月并与该用户相关的其他操作性数据,则确定待同步用户x的待同步运行环境为B环境,即A运行环境中x用户的信息与B运行环境中x用户的信息不完全一致,需将x用户的信息同步至B运行环境中。

S30,模拟所述待同步用户在所述待同步运行环境中注册。

具体的,可通过预先开发好的SDK(Software Development Kit,软件开发工具包)接口程序完成模拟注册。

在具体实现时,可以通过SDK接口程序访问多活系统中每一个待同步运行环境,并在该待同步运行环境下注册对应的待同步用户。

例如,该SDK接口程序可以包括Cognos(康格诺)接口应用等。通过Cognos接口应用访问异地多活体系架构的Cognos系统中每一个待同步运行环境,并在该待同步运行环境下模拟待同步用户进行注册。此时,在异地多活体系架构的Cognos系统的每套运行环境中,都有了同样的用户的相关信息。

模拟用户注册时,用户的注册信息是用户在系统中的基本信息,此时,在多活系统的各个环境中都有了用户的基本信息。

可选的,在本发明另一实施例中,上述步骤S30之前可包括:

获取所述多活系统的运行中进程;

当所述运行中进程的数量低于预设进程数量和/或所述运行中进程不包含指定进程时,执行所述步骤S30模拟所述待同步用户在所述待同步运行环境中注册。

在本实施例中,可以仅当系统当前运行的进程数量较少,或者没有指定进程时,才执行步骤S30,使得模拟用户注册的操作可以快速进行,同时并不影响系统当前的其他各项任务运行。

在本发明的其他实施例中,在对多活系统每个运行环境的用户基础数据进行同步以后,使得用户再次通过负载均衡器登录任意运行环境时,该运行环境中都存在该用户的信息,即只要用户注册过,在此通过负载均衡器登录任意运行环境时,都可以登陆成功,并且可以执行操作。

例如,在对多活体系架构的Cognos系统的用户进行模拟注册之后,可以在任意运行环境中创建每个用户的概要(profile)文件,该profile文件可以作为各用户的报表数据同步的基础(例如,通过profile文件将该用户的报表数据进行同步),从而实现为用户的其他数据在不同运行环境之间同步时提供依据的目的。

本发明提供的用户信息同步方法获取多活系统中每个运行环境的用户信息;将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境;模拟所述待同步用户在所述待同步运行环境中注册。由于获取了待同步用户与对应的待同步用户环境,并且模拟了待同步用户在对应的待同步运行环境中注册,因此在待同步运行环境中也有了待同步用户的注册信息,可以在异地多活系统中保持用户基础信息的一致性。同时,也有利于用户基础信息以外的其他信息进行同步,使得在异地多活系统中用户数据可以保持一致。

如图2所示,图2为本发明实施例提供的用户信息同步装置的功能模块图。所述用户信息同步装置包括获取模块210、匹配模块220和同步模块230。本发明所称的模块是指一种能够被计算机装置的处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在计算机装置的存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

获取模块210,用于获取多活系统中每个运行环境的用户信息。

本发明所述的多活系统是指系统的体系架构为多活体系架构。具体的,可以是异地多活体系架构。异地多活是指数据中心在地理空间上是分布部署的,每个数据中心保持一定的独立性。同时,多个中心协同工作,并行的为业务访问提供服务,在一个数据中心发生故障的情况下,其他数据中心可以正常运行,保持业务的正常的运行。

例如,多活体系架构的Cognos(康格诺)系统,所述Cognos是一种BI(Business Intelligence,商业智能)报表系统。BI报表系统可以为企业中现有数据进行整合并提供出报表,帮助企业的经营者快速了解企业的信息,进而进行决策。

在实际应用中,多活系统可以包含至少两套运行环境。比如,某一多活系统包含两套运行环境,此时,可称为异地双活。又比如,某一多活系统包含三套运行环境。

上述用户信息可以是用户的名称或者用户的编号,同时,也可以为包括用户的名称、用户的编号、用户的注册时间、用户身份等在内的多项用户注册时所填写的一项或者是多项基础信息。

比如,多活系统中包含A运行环境和B运行环境,获取A运行环境中包含的用户的名称和用户的编号,同时,获取B运行环境中包含的用户的名称和用户的编号。

又比如,多活系统中包含A运行环境、B运行环境和C运行环境,获取A运行环境中获取A运行环境中包含的用户的名称和用户的编号,B运行环境中包含的用户的名称和用户的编号,以及C运行环境中包含的用户的名称和用户的编号。

可选的,在本发明另一实施例中,本发明所述的装置还包括日志获取模块和第一触发模块。具体的:

日志获取模块,用于获取所述多活系统的日志信息。

第一触发模块,用于若所述日志信息包含用户登陆失败的信息,触发所述获取模块获取多活系统中每个运行环境的用户信息。

上述多活系统的日志信息可以包含多活系统在运行过程中的异常信息或报错信息。

具体的,可以获取在指定时间之内的日志信息。指定时间的值可以根据需要设定,例如获取3小时之内的日志信息。

在判断日志信息是否包含用户登陆失败的信息时,可以通过判断信息的类型进行判断,进而通过信息的名称进行判断,以便从日志信息中快速的定位所需信息。

在本实施例中,若日志信息包含用户登陆失败的信息,则说明有用户登陆不上,此时可以触发获取模块210获取多活系统中每个运行环境的用户信息,对用户信息进行同步,使得用户基础信息在各运行环境之间保持一致,提高用户登陆的成功率。

进一步地,在本发明其他实施例中,若日志信息包含用户登陆失败的信息,获取用户登陆失败的原因,根据用户登陆失败的原因触发获取模块210获取多活系统中每个运行环境的用户信息。

由于用户登陆失败的原因不限于用户数据不同步这一种,也可能是用户密码输入错误等。因此若用户登陆失败的原因为用户不存在系统中,可执行触发获取模块210执行操作,使得用户基础信息在各运行环境之间保持一致,避免用户因为运行环境数据不一致而使得用户无法登陆,提高系统的可靠性。

可选的,在本发明另一实施例中,本发明所述的装置可包括进行模块和第二触发模块。具体的:

进程获取模块,用于获取所述多活系统的运行中进程;

第二触发模块,用于当所述运行中进程的数量低于预设进程数量和/或所述运行中进程不包含指定进程时,触发所述获取模块获取多活系统中每个运行环境的用户信息。

其中,上述预设进程数量可以根据需要设定。同样的,上述指定进程也可以根据需要设定。

在本实施例中,可以仅当系统当前运行的进程数量较少,或者没有指定进程时,才执行触发获取模块210执行操作,使得本发明所述的用户信息同步方法可以快速进行,同时并不影响系统当前的其他各项任务运行。

进一步地,所述预设进程数量和/或所述指定进程根据所述多活系统的硬件资源确定。

由于不同的硬件资源下,使得当前系统保持流畅运行的条件也不相同。例如,不同的硬件资源可以为进程分配不同的硬件资源,进而支持不同的进程数量或者是不同的进程任务。因此,根据不同的硬件资源进行设定进程数量,可以保证多活系统运行的流畅性和稳定性。

可选的,在本发明另一实施例中,本发明所述的装置还可包括时间获取模块和第三触发模块。具体的:

时间获取模块,用于获取所述多活系统的系统时。

第三触发模块,用于根据所述系统时间确定是否触发所述获取模块获取多活系统中每个运行环境的用户信息。

其中,所述多活系统的系统时间是指多活系统当前的系统时间,同时,可以是获取多活系统中任意一个运行环境的系统时间。由于多活系统中各运行环境是协同工作的,因此任意一个运行环境的系统时间与其他系统的系统时间是一致的。

具体的,可以判断当前的系统时间是否为指定时间,例如判断当前的系统时间是否为晚上8点,若是,则触发获取模块210执行操作。

或者,可以判断当前的系统时间是否为整点时间,例如判断当前系统时间是否为14点或者为15点,若是,则触发获取模块210执行操作,则此时,每个整点时间,即每间隔1个小时,触发获取模块210执行操作。

进一步地,若当前的系统时间为整点时间,则触发获取模块210执行操作。并且,在获取每个运行环境的用户信息时,可以仅获取多活系统的各个运行环境中一小时内增量的用户信息。此时,不再对之前已匹配过的用户信息进行重复匹配,仅对新增的用户信息进行匹配,可以减少操作冗余,提高系统的运行效率。

匹配模块220,用于将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境。

具体的,可以将获取到的每个运行环境的用户信息分别进行匹配,从而得到待同步用户以及待同步用户对应的待同步运行环境。

进一步地,所述匹配模块220可具体用于:

将所述多活系统的第一运行环境中的用户信息与所述第一运行环境以外的其他运行环境中的用户信息进行对比;当第一运行环境中的第一用户的信息没有在所述其他运行环境中都存在时,确定所述第一用户为待同步用户,确定不存在所述第一用户的信息的运行环境为待同步运行环境。

在本实施例中,选取信息没有覆盖到每个运行环境的用户为待同步用户。

其中,上述第一运行环境可以是多活系统中的任意一个运行环境。上述第一用户可以为第一运行环境之中的任意一个用户。

具体的,若多活系统中包含三个运行环境,可以对将第一个运行环境之中的每一个用户分别与其他运行环境之中的每一个用户进行匹配。

然后,再将多活系统中的第二个运行环境中的每一个用户分别与其他运行环境之中的每一个用户进行匹配,以及第三个运行环境之中的每一个用户分别与其他运行环境之中的每一个用户进行匹配,从而获取不完全存在于每个运行环境之中的用户的信息。

比如,获取到A运行环境中包含的用户名称为x用户,y用户,和z用户,B运行环境中包含的用户名称为x用户和z用户,则匹配结果为B运行环境中不包含y用户,则待同步用户是y用户,y用户对应的待同步运行环境为B运行环境,即,在A运行环境和B运行环境中,y用户的信息不一致,需要将y用户的信息同步至B运行环境中。

又比如,获取到A运行环境中包含的用户名称为x用户,y用户,和z用户,B运行环境中包含的用户名称为x用户和z用户,C运行环境中包含的用户名称为x用户。则将A运行环境与B运行环境和C运行环境中的用户名称分别进行匹配。得到待同步用户为y用户以及z用户,y用户对应的待同步运行环境为B运行环境和C运行环境,z用户对应的待同步运行环境为C运行环境,即,在A运行环境、B运行环境以及C运行环境中,y用户以及z用户的信息不一致,需要将y用户的信息同步至C运行环境与C运行环境,以及将z用户的信息同步至C运行环境。

其他实施例中,所述匹配模块220可具体用于:

将所述多活系统的第一运行环境中的用户信息与所述第一运行环境以外的其他运行环境中的用户信息进行对比;获取在每个运行环境中存在且不一致的用户信息;确定在每个运行环境中存在且不一致的用户信息对应的用户为待同步用户,根据待同步用户的指定信息确定待同步运行环境。

在本实施例中,确定信息存在于每个运行环境中的,但信息不完全一致的用户为待同步用户。

具体的,在实际应用中,获取到的不同运行环境中的存在的同一用户的信息可能一致,也可能不完全一致。例如,x用户的注册信息在A运行环境中与B运行环境中都存在,且x用户的注册信息在A运行环境中与在B运行环境中不尽相同。则此时,该x用户的信息在不同的运行环境中不一致,确定x用户为待同步用户。

上述指定信息用于作为确定待同步运行环境的基准。具体的,待同步用户的指定信息可以为待同步用户的数据录入方,或者未待同步数据的数据大小,或者待同步数据的注册时间的先后等信息。待同步用户的指定信息还可以为上述信息的结合或者是其他上述未提及的信息。

例如,在A运行环境中,x用户的注册时间为6月,且6月产生了与用户相关的其他操作性数据,而在B运行环境中,x用户的注册时间3月,同时在B运行环境中,在3-6月并与该用户相关的其他操作性数据,则确定待同步用户x的待同步运行环境为B环境,即A运行环境中x用户的信息与B运行环境中x用户的信息不完全一致,需将x用户的信息同步至B运行环境中。

同步模块230,用于模拟所述待同步用户在所述待同步运行环境中注册。

具体的,可通过预先开发好的SDK(Software Development Kit,软件开发工具包)接口程序完成模拟注册。

在具体实现时,可以通过SDK接口程序访问多活系统中每一个待同步运行环境,并在该待同步运行环境下注册对应的待同步用户。

例如,该SDK接口程序可以包括Cognos(康格诺)接口应用等。通过Cognos接口应用访问异地多活体系架构的Cognos系统中每一个待同步运行环境,并在该待同步运行环境下模拟待同步用户进行注册。此时,在异地多活体系架构的Cognos系统的每套运行环境中,都有了同样的用户的相关信息。

模拟用户注册时,用户的注册信息是用户在系统中的基本信息,此时,在多活系统的各个环境中都有了用户的基本信息。

可选的,在本发明另一实施例中,本发明所述的方法还可包括进程获取模块和第二触发模块。具体的:

进程获取模块,用于获取所述多活系统的运行中进程;

第二触发模块,用于当所述运行中进程的数量低于预设进程数量和/或所述运行中进程不包含指定进程时,触发所述同步模块模拟所述待同步用户在所述待同步运行环境中注册。

在本实施例中,可以仅当系统当前运行的进程数量较少,或者没有指定进程时,才触发同步模块230执行操作,使得模拟用户注册的操作可以快速进行,同时并不影响系统当前的其他各项任务运行。

在本发明的其他实施例中,在对多活系统每个运行环境的用户基础数据进行同步以后,使得用户再次通过负载均衡器登录任意运行环境时,该运行环境中都存在该用户的信息,即只要用户注册过,在此通过负载均衡器登录任意运行环境时,都可以登陆成功,并且可以执行操作。

例如,在对多活体系架构的Cogons系统的用户进行模拟注册之后,可以在任意运行环境中创建每个用户的概要(profile)文件,该profile文件可以作为各用户的报表数据同步的基础(例如,通过profile文件将该用户的报表数据进行同步),从而实现为用户的其他数据在不同运行环境之间同步时提供依据的目的。

本发明提供的用户信息同步装置通过获取模块获取多活系统中每个运行环境的用户信息;匹配模块将获取到的不同运行环境中的用户信息进行匹配,得到待同步用户以及待同步用户对应的待同步运行环境;同步模块模拟所述待同步用户在所述待同步运行环境中注册。由于获取了待同步用户与对应的待同步用户环境,并且模拟了待同步用户在对应的待同步运行环境中注册,因此在待同步运行环境中也有了待同步用户的注册信息,可以在异地多活系统中保持用户基础信息的一致性。同时,也有利于用户基础信息以外的其他信息进行同步,使得在异地多活系统中用户数据可以保持一致。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。

如图3所示,图3是本发明实现用户信息同步方法的较佳实施例的计算机装置的结构示意图。所述计算机装置包括至少一个发送装置31、至少一个存储器32、至少一个处理器33、至少一个接收装置34以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。

所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述计算机装置还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。

所述计算机装置可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品。

所述计算机装置所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。

其中,所述接收装置34和所述发送装置31可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。

所述存储器32用于存储程序代码。所述存储器32可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储器)、FIFO(First In First Out,先入先出)存储器等。或者,所述存储器32也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)、智能媒体卡(smart media card)、安全数字卡(secure digital card)、快闪存储器卡(flash card)等储存设备等等。

所述处理器33可以包括一个或者多个微处理器、数字处理器。所述处理器33可调用存储器32中存储的程序代码以执行相关的功能。例如,图3中所述的各个单元是存储在所述存储器32中的程序代码,并由所述处理器33所执行,以实现一种用户信息同步方法。所述处理器33又称中央处理器(CPU,Central Processing Unit),是一块超大规模的集成电路,是运算核心(Core)和控制核心(Control Unit)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1