本发明涉及数据处理技术领域,尤指一种切换数据源的实现方法、系统、终端设备和存储介质。
背景技术:
一般企业都有发送短信的能力,依赖第三方短信服务或者集成第三方的短信能力到短信聚合服务。短信聚合服务对很多用户所需要的业务服务来说是很重要的基础服务。
为了提高短信聚合服务的可用性和稳定行,短信聚合服务会部署在双机房下。一般双机房架构下,会有一个机房冷备数据库,在切换机房的时候,会把冷备数据库升级为主数据库,应用程序需要修改数据源配置,修改配置后重启才能生效。这样,会导致短信聚合服务需要重启后才能加载新数据源,从而导致短信聚合服务不稳定的时间增长,影响用户的使用体验。
因此,如何提供持续可用的短信能力,以便能够在不重启情况下替换数据源,从而为用户提供可靠、稳定的短信聚合服务是亟需解决的问题。
技术实现要素:
本发明的目的是提供一种切换数据源的实现方法、系统、终端设备和存储介质,实现提供持续可用的短信能力,以便能够在不重启情况下替换数据源,从而为用户提供可靠、稳定的短信聚合服务。
本发明提供的技术方案如下:
本发明提供一种切换数据源的实现方法,包括步骤:
检测主机是否宕机;
在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得所述应用程序根据所述临时主数据源提供短信聚合服务;
在主机未宕机时所述应用程序根据所述主数据源提供短信聚合服务。
进一步的,所述检测主机是否宕机之前包括步骤:
每隔预设时间段获取数据源配置信息;
所述在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得所述应用程序根据所述临时主数据源提供短信聚合服务包括步骤:
在所述主机宕机时,将所述冷备数据源升级为临时主数据源;
初始化主数据源,且根据新获取的数据源配置信息创建第一数据源对象;
根据所述新获取的数据源配置信息中的冷备数据源配置信息进行数据源配置;
配置完成后广播发送数据源切换信息,以便所述应用程序通过所述第一数据源对象切换访问所述临时主数据源,使得所述应用程序根据所述临时主数据源提供短信聚合服务。
进一步的,所述检测主机是否宕机之前包括步骤:
每隔预设时间段获取数据源配置信息;
所述在主机未宕机时所述应用程序根据所述主数据源提供短信聚合服务包括步骤:
在所述主机未宕机时初始化主数据源,且根据新获取的数据源配置信息创建第二数据源对象;
创建完成后广播发送对象创建信息,以便所述应用程序通过所述第二数据源对象访问所述主数据源,使得所述应用程序根据所述主数据源提供短信聚合服务。
进一步的,所述检测主机是否宕机包括步骤:
在预设时长内未收到来自所述主机的心跳消息时,确定所述主机宕机。
本发明还提供一种切换数据源的实现系统,包括:
检测模块,用于检测主机是否宕机;
处理模块,用于在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得所述应用程序根据所述临时主数据源提供短信聚合服务;
所述处理模块,还用于在主机未宕机时所述应用程序根据所述主数据源提供短信聚合服务。
进一步的,还包括:
获取模块,用于每隔预设时间段获取数据源配置信息;
所述处理模块包括:
第一处理单元,用于在所述主机宕机时,将所述冷备数据源升级为临时主数据源;
第一创建单元,用于初始化主数据源,且根据新获取的数据源配置信息创建第一数据源对象;
配置单元,用于根据所述新获取的数据源配置信息中的冷备数据源配置信息进行数据源配置;
执行单元,用于配置完成后广播发送数据源切换信息,以便所述应用程序通过所述第一数据源对象切换访问所述临时主数据源,使得所述应用程序根据所述临时主数据源提供短信聚合服务。
进一步的,所述处理模块包括:
第二创建单元,用于在所述主机未宕机时初始化主数据源,且根据新获取的数据源配置信息创建第二数据源对象;
第二执行单元,用于创建完成后广播发送对象创建信息,以便所述应用程序通过所述第二数据源对象访问所述主数据源,使得所述应用程序根据所述主数据源提供短信聚合服务。
进一步的,所述检测模块,还用于在预设时长内未收到来自所述主机的心跳消息时,确定所述主机宕机。
本发明还提供一种终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器,用于执行所述存储器上所存放的计算机程序,实现如所述的切换数据源的实现方法所执行的操作。
本发明还提供一种存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如所述的切换数据源的实现方法所执行的操作。
通过本发明提供的一种切换数据源的实现方法、系统、终端设备和存储介质,能够提供持续可用的短信能力,以便能够在不重启情况下替换数据源,从而为用户提供可靠、稳定的短信聚合服务。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种切换数据源的实现方法、系统、终端设备和存储介质的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明一种切换数据源的实现方法的一个实施例的流程图;
图2是本发明一种切换数据源的实现方法的另一个实施例的流程图;
图3是本发明一种切换数据源的实现方法的另一个实施例的流程图;
图4是本发明一种切换数据源的实现方法的另一个实施例的流程图;
图5是本发明一种切换数据源的实现方法的另一个实施例的流程图;
图6是本发明一种切换数据源的实现方法的另一个实施例的流程图;
图7是本发明一种切换数据源的实现系统的一个实施例的结构示意图;
图8是本发明apollo配置中心配置流程示意图;
图9是本发明apollo配置中心配置流程示意图;
图10是本发明一种计算机设备的一个实施例的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所述描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素、组件和/或集合的存在或添加。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
具体实现中,本申请实施例中描述的终端设备包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其他便携式设备。
终端设备支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、网络创建应用程序、文字处理应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄像机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
本发明的一个实施例,如图1所示,一种切换数据源的实现方法,包括:
s100检测主机是否宕机;
具体的,短信聚合服务是为用户提供的一种短信通信服务的基本能力,通常指的是短信发送服务。短信聚合服务包括群发短信、短信验证码、短信通知、推广短信、营销短信、会员通知短信等通信服务。其中,短信通知支持多种场景的通知短信发送。推广短信支持各类业务场景的短信通知发送,例如支持商超短信群发、房地产短信群发、教育短信群发、电商短信群发、信用卡短信群发、招聘短信群发等行业短信群发等通信服务。
s200在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务;
s300在主机未宕机时应用程序根据主数据源提供短信聚合服务。
具体的,本实施例中,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,使得在数据源切换时短信聚合服务无需重启,自动加载新数据源,减少服务不稳定的时间,减少修改配置的时间,对运维友好。
此外,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,提升数据源切换效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
本发明的一个实施例,如图2所示,一种切换数据源的实现方法,包括:
s010每隔预设时间段获取数据源配置信息;
s100检测主机是否宕机;
s210在主机宕机时,将冷备数据源升级为临时主数据源;
s220初始化主数据源,且根据新获取的数据源配置信息创建第一数据源对象;
s230根据新获取的数据源配置信息中的冷备数据源配置信息进行数据源配置;
s240配置完成后广播发送数据源切换信息,以便应用程序通过第一数据源对象切换访问临时主数据源,使得应用程序根据临时主数据源提供短信聚合服务;
s300在主机未宕机时应用程序根据主数据源提供短信聚合服务。
具体的,本实施例中与上述实施例相同的部分在此不再一一赘述。本实施例中,每隔预设时间段获取数据源配置信息,所获取的数据源配置信息包括druidproperties(主数据源配置),namespace(备数据源配置所在的apollo空间名),name(属性源名称),prefix(属性前缀),key(切换数据源开关的属性key)。
如图8和图9所示,当主机宕机时修改apollo配置中心namespace对应的数据源配置,即把namespace(备数据源配置所在的apollo空间名)写入阿波罗配置中心、
new一个builder即新建一个第一数据源对象,具体为根据以上数据源配置信息和builder的相应方法初始化builder,调用build()方法创建第一数据源对象,从而使得应用程序即可像普通数据源一样使用这个新创的第一数据源对象,此处的第一数据源对象为升级为临时主数据源的冷备数据源。
修改key=true,这步即切换主数据源为冷备数据源,apollohotreplaceswitchlistener监听到key的变化,调用apollodruidsourcehandler的handle方法进行数据源切换操作。广播告知应用程序配置切换为冷备数据库,new一个builder,根据以上信息和builder的相应方法初始化builder,调用build()方法创建第一数据源对象,应用程序即可像普通数据源一样使用这个冷备数据源。
在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,使得在数据源切换时短信聚合服务无需重启,自动加载新数据源,减少服务不稳定的时间,减少修改配置的时间,对运维友好。
此外,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,提升数据源切换效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
本发明的一个实施例,如图3所示,一种切换数据源的实现方法,包括:
s010每隔预设时间段获取数据源配置信息;
s100检测主机是否宕机;
s200在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务;
s310在主机未宕机时初始化主数据源,且根据新获取的数据源配置信息创建第二数据源对象;
s320创建完成后广播发送对象创建信息,以便应用程序通过第二数据源对象访问主数据源,使得应用程序根据主数据源提供短信聚合服务。
具体的,本实施例中与上述实施例相同的部分在此不再一一赘述。本实施例中,每隔预设时间段获取数据源配置信息,所获取的数据源配置信息包括druidproperties(主数据源配置),namespace(备数据源配置所在的apollo空间名),name(属性源名称),prefix(属性前缀),key(切换数据源开关的属性key)。
如图8和图9所示,new一个builder即新建一个数据源对象,具体为根据以上数据源配置信息和builder的相应方法初始化builder,调用build()方法创建第二数据源对象,从而使得应用程序即可像普通数据源一样使用这个新创的第二数据源对象,此处的第二数据源对象为升级为主数据源。
修改key=false,这步即回滚主数据源,apollohotreplaceswitchlistener监听到key的变化,调用apollodruidsourcehandler的rollback方法根据druidproperties回滚主数据源。
具体的,本实施例中,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,使得在数据源切换时短信聚合服务无需重启,自动加载新数据源,减少服务不稳定的时间,减少修改配置的时间,对运维友好。
此外,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,提升数据源切换效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
本发明的一个实施例,如图4所示,一种切换数据源的实现方法,包括:
s010每隔预设时间段获取数据源配置信息;
s110在预设时长内未收到来自主机的心跳消息时,确定主机宕机;
s210在主机宕机时,将冷备数据源升级为临时主数据源;
s220初始化主数据源,且根据新获取的数据源配置信息创建第一数据源对象;
s230根据新获取的数据源配置信息中的冷备数据源配置信息进行数据源配置;
s240配置完成后广播发送数据源切换信息,以便应用程序通过第一数据源对象切换访问临时主数据源,使得应用程序根据临时主数据源提供短信聚合服务;
s300在主机未宕机时应用程序根据主数据源提供短信聚合服务。
具体的,本实施例中与上述实施例相同的部分在此不再一一赘述。在本发明实施例的实施场景中,可以由服务器对主机进行心跳检测。服务器可以是具有心跳检测机制,且能够接收心跳消息的节点,主机可以是具有心跳检测机制,且能够发送心跳消息的节点。
在本发明实施例的实施场景中,可以由主机每隔一定的时间间隔就向服务器发送心跳消息。从服务器收到来自主机的一条心跳消息为开始时刻,如果服务器在心跳超时时长之内收到来自主机的下一条心跳消息,则判定主机处于正常工作状态,如果服务器未在心跳超时时长之内收到来自主机的下一条心跳消息,则判定主机宕机,其中主机宕机可以被认为是主机已经停止工作,也可以被认为是主机工作效率明显低于正常工作效率,因为这种情况与主机停止工作的情况可以认为是同一情况作相同处理。
在本发明实施例的实施场景中,也可以由服务器向主机发送请求消息,主机在没有宕机时会在接收请求消息后向服务器发送心跳消息。从服务器发送请求消息为开始时刻,如果服务器在心跳超时时长之内收到来自主机的心跳消息,则判定主机处于正常工作状态,如果服务器未在心跳超时时长之内收到来自主机的心跳消息,则判定主机宕机。
通过本实施例,通过心跳机制的方式进行主机宕机检测,避免人工主观判断主机是否宕机,由于后台自动智能判断检测主机是否宕机,一旦检测出主机宕机时,就能切换数据源,提升数据源切换的准确性和效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
本发明的一个实施例,如图5所示,一种切换数据源的实现方法,包括:
s010每隔预设时间段获取数据源配置信息;
s110在预设时长内未收到来自主机的心跳消息时,确定主机宕机;
s200在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务;
s310在主机未宕机时初始化主数据源,且根据新获取的数据源配置信息创建第二数据源对象;
s320创建完成后广播发送对象创建信息,以便应用程序通过第二数据源对象访问主数据源,使得应用程序根据主数据源提供短信聚合服务。
具体的,本实施例中与上述实施例相同的部分在此不再一一赘述。
本发明的一个实施例,如图6所示,一种切换数据源的实现方法,包括:
s010每隔预设时间段获取数据源配置信息;
s110在预设时长内未收到来自主机的心跳消息时,确定主机宕机;
s210在主机宕机时,将冷备数据源升级为临时主数据源;
s220初始化主数据源,且根据新获取的数据源配置信息创建第一数据源对象;
s230根据新获取的数据源配置信息中的冷备数据源配置信息进行数据源配置;
s240配置完成后广播发送数据源切换信息,以便应用程序通过第一数据源对象切换访问临时主数据源,使得应用程序根据临时主数据源提供短信聚合服务;
s310在主机未宕机时初始化主数据源,且根据新获取的数据源配置信息创建第二数据源对象;
s320创建完成后广播发送对象创建信息,以便应用程序通过第二数据源对象访问主数据源,使得应用程序根据主数据源提供短信聚合服务。
具体的,本实施例中与上述实施例相同的部分在此不再一一赘述。
示例性的,如图8和图9所示,apollo(阿波罗)配置中心,apollo配置中心是开源配置管理中心是开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
apollo配置中心提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。
同一份代码部署在不同的集群,可以有不同的配置,比如zookeeper的地址等。
通过命名空间(namespace)可以很方便地支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖。
用户在apollo配置中心修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。
所有的配置发布都有版本概念,从而可以方便地支持配置的回滚。
一旦主机宕机后,运维人员在apollo配置中心对数据源进行切换配置并发布,apollo配置中心通知主机有配置更新,主机从apollo配置中心拉取最新的配置即进行数据源信息的更新配置,然后apollo配置中心更新本地配置并通知到应用程序,通过数据源热替换的方法,实现了短信聚合服务无需重启,自动加载新数据源的效果。本实施例由于基于apollo配置中心监听配置数据源切换的属性信息(即切换数据源开关的属性key),能主动推送到集群规模的应用程序,延迟较低,从而应用程序能在运行时获取到新的数据源配置,创建新的数据源替换旧数据源,使得应用程序无需重启就能使得主机读取切换为临时主数据源的冷备数据源的数据信息,进而根据冷备数据源的数据信息提供短信聚合服务。提升数据源切换的准确性和效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
上述实施例只例举了apollo配置中心,可以根据需要用zookeeper配置中心或者redis配置中心、nacos配置中心替换apollo配置中心。
本发明的一个实施例,如图7所示,一种切换数据源的实现系统,包括:
检测模块10,用于检测主机是否宕机;
处理模块20,用于在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务;
处理模块20,还用于在主机未宕机时应用程序根据主数据源提供短信聚合服务。
具体的,短信聚合服务是为用户提供的一种短信通信服务的基本能力,通常指的是短信发送服务。短信聚合服务包括群发短信、短信验证码、短信通知、推广短信、营销短信、会员通知短信等通信服务。其中,短信通知支持多种场景的通知短信发送。推广短信支持各类业务场景的短信通知发送,例如支持商超短信群发、房地产短信群发、教育短信群发、电商短信群发、信用卡短信群发、招聘短信群发等行业短信群发等通信服务。
具体的,本实施例中,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,使得在数据源切换时短信聚合服务无需重启,自动加载新数据源,减少服务不稳定的时间,减少修改配置的时间,对运维友好。
此外,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,提升数据源切换效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
基于前述实施例,还包括:获取模块,用于每隔预设时间段获取数据源配置信息;
处理模块20包括:
第一处理单元,用于在主机宕机时,将冷备数据源升级为临时主数据源;
第一创建单元,用于初始化主数据源,且根据新获取的数据源配置信息创建第一数据源对象;
配置单元,用于根据新获取的数据源配置信息中的冷备数据源配置信息进行数据源配置;
执行单元,用于配置完成后广播发送数据源切换信息,以便应用程序通过第一数据源对象切换访问临时主数据源,使得应用程序根据临时主数据源提供短信聚合服务;
具体的,本实施例中与上述实施例相同的部分在此不再一一赘述。本实施例中,每隔预设时间段获取数据源配置信息,所获取的数据源配置信息包括druidproperties(主数据源配置),namespace(备数据源配置所在的apollo空间名),name(属性源名称),prefix(属性前缀),key(切换数据源开关的属性key)。
如图8和图9所示,当主机宕机时修改apollo配置中心namespace对应的数据源配置,即把namespace(备数据源配置所在的apollo空间名)写入阿波罗配置中心、
new一个builder即新建一个第一数据源对象,具体为根据以上数据源配置信息和builder的相应方法初始化builder,调用build()方法创建第一数据源对象,从而使得应用程序即可像普通数据源一样使用这个新创的第一数据源对象,此处的第一数据源对象为升级为临时主数据源的冷备数据源。
修改key=true,这步即切换主数据源为冷备数据源,apollohotreplaceswitchlistener监听到key的变化,调用apollodruidsourcehandler的handle方法进行数据源切换操作。广播告知应用程序配置切换为冷备数据库,new一个builder,根据以上信息和builder的相应方法初始化builder,调用build()方法创建第一数据源对象,应用程序即可像普通数据源一样使用这个冷备数据源。
在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,使得在数据源切换时短信聚合服务无需重启,自动加载新数据源,减少服务不稳定的时间,减少修改配置的时间,对运维友好。
此外,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,提升数据源切换效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
处理模块20包括:
第二创建单元,用于在主机未宕机时初始化主数据源,且根据新获取的数据源配置信息创建第二数据源对象;
第二执行单元,用于创建完成后广播发送对象创建信息,以便应用程序通过第二数据源对象访问主数据源,使得应用程序根据主数据源提供短信聚合服务。
具体的,本实施例中与上述实施例相同的部分在此不再一一赘述。本实施例中,每隔预设时间段获取数据源配置信息,所获取的数据源配置信息包括druidproperties(主数据源配置),namespace(备数据源配置所在的apollo空间名),name(属性源名称),prefix(属性前缀),key(切换数据源开关的属性key)。
如图8和图9所示,当主机宕机时修改apollo配置中心namespace对应的数据源配置,即把namespace(备数据源配置所在的apollo空间名)写入阿波罗配置中心、
new一个builder即新建一个第一数据源对象,具体为根据以上数据源配置信息和builder的相应方法初始化builder,调用build()方法创建第一数据源对象,从而使得应用程序即可像普通数据源一样使用这个新创的第一数据源对象,此处的第一数据源对象为升级为临时主数据源的冷备数据源。
修改key=true,这步即切换主数据源为冷备数据源,apollohotreplaceswitchlistener监听到key的变化,调用apollodruidsourcehandler的handle方法进行数据源切换操作。广播告知应用程序配置切换为冷备数据库,new一个builder,根据以上信息和builder的相应方法初始化builder,调用build()方法创建第一数据源对象,应用程序即可像普通数据源一样使用这个冷备数据源。
在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,使得在数据源切换时短信聚合服务无需重启,自动加载新数据源,减少服务不稳定的时间,减少修改配置的时间,对运维友好。
此外,在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得应用程序根据临时主数据源提供短信聚合服务,提升数据源切换效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
基于前述实施例,检测模块10,还用于在预设时长内未收到来自主机的心跳消息时,确定主机宕机。
具体的,本实施例中与上述实施例相同的部分在此不再一一赘述。在本发明实施例的实施场景中,可以由服务器对主机进行心跳检测。服务器可以是具有心跳检测机制,且能够接收心跳消息的节点,主机可以是具有心跳检测机制,且能够发送心跳消息的节点。
在本发明实施例的实施场景中,可以由主机每隔一定的时间间隔就向服务器发送心跳消息。从服务器收到来自主机的一条心跳消息为开始时刻,如果服务器在心跳超时时长之内收到来自主机的下一条心跳消息,则判定主机处于正常工作状态,如果服务器未在心跳超时时长之内收到来自主机的下一条心跳消息,则判定主机宕机,其中主机宕机可以被认为是主机已经停止工作,也可以被认为是主机工作效率明显低于正常工作效率,因为这种情况与主机停止工作的情况可以认为是同一情况作相同处理。
在本发明实施例的实施场景中,也可以由服务器向主机发送请求消息,主机在没有宕机时会在接收请求消息后向服务器发送心跳消息。从服务器发送请求消息为开始时刻,如果服务器在心跳超时时长之内收到来自主机的心跳消息,则判定主机处于正常工作状态,如果服务器未在心跳超时时长之内收到来自主机的心跳消息,则判定主机宕机。
通过本实施例,通过心跳机制的方式进行主机宕机检测,避免人工主观判断主机是否宕机,由于后台自动智能判断检测主机是否宕机,一旦检测出主机宕机时,就能切换数据源,提升数据源切换的准确性和效率,避免主机实际宕机时无法及时切换数据源的情况,进而保证了短信聚合服务的稳定性,提升用户的使用体验。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的程序模块完成,即将所述装置的内部结构划分成不同的程序单元或模块,以完成以上描述的全部或者部分功能。实施例中的各程序模块可以集成在一个处理单元中,也可是各个单元单独物理存在,也可以两个或两个以上单元集成在一个处理单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序单元的形式实现。另外,各程序模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
本发明的一个实施例,如图10所示,一种终端设备100,包括处理器110、存储器120,其中,存储器120,用于存放计算机程序121;处理器110,用于执行存储器120上所存放的计算机程序121,实现上述图1-图6任一所对应方法实施例中的切换数据源的实现方法。
所述终端设备100可以为桌上型计算机、笔记本、掌上电脑、平板型计算机、手机、人机交互屏等设备。所述终端设备100可包括,但不仅限于处理器110、存储器120。本领域技术人员可以理解,图10仅仅是终端设备100的示例,并不构成对终端设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如:终端设备100还可以包括输入/输出接口、显示设备、网络接入设备、通信总线、通信接口等。通信接口和通信总线,还可以包括输入/输出接口,其中,处理器110、存储器120、输入/输出接口和通信接口通过通信总线完成相互间的通信。该存储器120存储有计算机程序121,该处理器110用于执行存储器120上所存放的计算机程序121,实现上述图1-图6任一所对应方法实施例中的切换数据源的实现方法。
所述处理器110可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器120可以是所述终端设备100的内部存储单元,例如:终端设备的硬盘或内存。所述存储器也可以是所述终端设备的外部存储设备,例如:所述终端设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器120还可以既包括所述终端设备100的内部存储单元也包括外部存储设备。所述存储器120用于存储所述计算机程序121以及所述终端设备100所需要的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。
通信总线是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器110通过通信总线从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器120可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序编程接口(applicationprogramminginterface,api)和应用。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。输入/输出接口转发用户通过输入/输出接口(例如感应器、键盘、触摸屏)输入的命令或数据。通信接口将该终端设备100与其它网络设备、用户设备、网络进行连接。例如,通信接口可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(wifi),蓝牙(bt),近距离无线通信技术(nfc),全球卫星定位系统(gps)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线(usb),高清晰度多媒体接口(hdmi),异步传输标准接口(rs-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。终端设备100可以通过通信接口连接网络,终端设备100和其它网络设备通信所用的协议可以被应用、应用程序编程接口(api)、中间件、内核和通信接口至少一个支持。
本发明的一个实施例,一种存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述图1-图6任一切换数据源的实现方法对应实施例所执行的操作。例如,存储介质可以是只读内存(rom)、随机存取存储器(ram)、只读光盘(cd-rom)、磁带、软盘和光数据存储设备等。
它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述或记载的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序121发送指令给相关的硬件完成,所述的计算机程序121可存储于一存储介质中,该计算机程序121在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序121可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述存储介质可以包括:能够携带所述计算机程序121的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如:在某些司法管辖区,根据立法和专利实践,计算机可读的存储介质不包括电载波信号和电信信号。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
1.一种切换数据源的实现方法,其特征在于,包括步骤:
检测主机是否宕机;
在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得所述应用程序根据所述临时主数据源提供短信聚合服务;
在主机未宕机时所述应用程序根据所述主数据源提供短信聚合服务。
2.根据权利要求1所述的切换数据源的实现方法,其特征在于,所述检测主机是否宕机之前包括步骤:
每隔预设时间段获取数据源配置信息;
所述在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得所述应用程序根据所述临时主数据源提供短信聚合服务包括步骤:
在所述主机宕机时,将所述冷备数据源升级为临时主数据源;
初始化主数据源,且根据新获取的数据源配置信息创建第一数据源对象;
根据所述新获取的数据源配置信息中的冷备数据源配置信息进行数据源配置;
配置完成后广播发送数据源切换信息,以便所述应用程序通过所述第一数据源对象切换访问所述临时主数据源,使得所述应用程序根据所述临时主数据源提供短信聚合服务。
3.根据权利要求1所述的切换数据源的实现方法,其特征在于,所述检测主机是否宕机之前包括步骤:
每隔预设时间段获取数据源配置信息;
所述在主机未宕机时所述应用程序根据所述主数据源提供短信聚合服务包括步骤:
在所述主机未宕机时初始化主数据源,且根据新获取的数据源配置信息创建第二数据源对象;
创建完成后广播发送对象创建信息,以便所述应用程序通过所述第二数据源对象访问所述主数据源,使得所述应用程序根据所述主数据源提供短信聚合服务。
4.根据权利要求1-3任一项所述的切换数据源的实现方法,其特征在于,所述检测主机是否宕机包括步骤:
在预设时长内未收到来自所述主机的心跳消息时,确定所述主机宕机。
5.一种切换数据源的实现系统,其特征在于,包括:
检测模块,用于检测主机是否宕机;
处理模块,用于在主机宕机时将冷备数据源升级为临时主数据源并广播告知应用程序,使得所述应用程序根据所述临时主数据源提供短信聚合服务;
所述处理模块,还用于在主机未宕机时所述应用程序根据所述主数据源提供短信聚合服务。
6.根据权利要求5所述的切换数据源的实现系统,其特征在于,还包括:
获取模块,用于每隔预设时间段获取数据源配置信息;
所述处理模块包括:
第一处理单元,用于在所述主机宕机时,将所述冷备数据源升级为临时主数据源;
第一创建单元,用于初始化主数据源,且根据新获取的数据源配置信息创建第一数据源对象;
配置单元,用于根据所述新获取的数据源配置信息中的冷备数据源配置信息进行数据源配置;
执行单元,用于配置完成后广播发送数据源切换信息,以便所述应用程序通过所述第一数据源对象切换访问所述临时主数据源,使得所述应用程序根据所述临时主数据源提供短信聚合服务。
7.根据权利要求6所述的切换数据源的实现系统,其特征在于,所述处理模块包括:
第二创建单元,用于在所述主机未宕机时初始化主数据源,且根据新获取的数据源配置信息创建第二数据源对象;
第二执行单元,用于创建完成后广播发送对象创建信息,以便所述应用程序通过所述第二数据源对象访问所述主数据源,使得所述应用程序根据所述主数据源提供短信聚合服务。
8.根据权利要求6-7任一项所述的切换数据源的实现系统,其特征在于:
所述检测模块,还用于在预设时长内未收到来自所述主机的心跳消息时,确定所述主机宕机。
9.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器,用于执行所述存储器上所存放的计算机程序,实现如权利要求1至权利要求4任一项所述的切换数据源的实现方法所执行的操作。
10.一种存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求4任一项所述的切换数据源的实现方法所执行的操作。
技术总结