本申请涉及互联网技术领域,特别涉及一种跨机房数据中心两层代理的网络请求处理系统及方法。
背景技术:
传统数据中心分布策略是机器分布在单个机房,单份数据。这个优点是非常方便管理,但是缺点也是显著的,它不便于我们扩容,同时当一个数据出现磁盘损坏的时候,这个恢复数据的难度非常大。
随着数据规模的不断扩大,存储的磁盘越来越多,出现磁盘损坏的概率越来越高,单份数据的弊端暴露的越来越明显,单个机房,多份数据存储就成为了主流,它的好处是多份数据可以加速访问速度,任意一份数据损坏,任何一个服务异常退出,整体而言还是高可用的。它缺点也是显然的,相比较于单个机房,单份数据而言,它的存储成本更加高额,同时它也存在着扩容困难,容灾能力较差。面对一个机房出现灾难例如断电,断网,或者火灾等问题时,单个机房无法处理这些问题。
大数据时代,数据中心的异地容灾变得非常重要,多个机房多副本的存储就应运而生,我们称之为“异地多活”,通过实践可以发现优势有:异地灾备、提升访问速度、降低部署成本、动态加速、流量均衡、在线压测等。而异地多活一般都会遇到如下问题:
为了让两个机房能够快速传输,一般都会租赁专线,单条专线的稳定性没有保障,多条专线又要进行实时调度,同时造价又很昂贵,当专线断掉时,各个机房的服务便无法完成。
应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
技术实现要素:
本申请实施方式的目的在于提供一种跨机房数据中心两层代理的网络请求处理方法及系统,能够保证在专线断掉的情况下,机房的服务能够正常处理。
为实现上述目的,本申请一方面提供一种跨机房数据中心两层代理的网络请求处理系统,所述系统包括异地分布的至少两个机房,所述至少两个机房中的任意两个机房之间通过基于应用层的专线以及公网进行连接,各个机房中均包括出口代理模块和入口代理模块,各个机房中运行各自的服务,其中:第一机房的出口代理模块获取所述第一机房中第一服务的网络请求,并负载均衡地选择出口代理服务;所述第一机房的出口代理模块检测所述专线是否可用;当所述专线不可用时,所述第一机房的出口代理模块对所述第一服务的网络请求签名;所述第一机房将签名后的第一服务的网络请求通过所述公网发送至所述第二机房的入口代理模块;所述第二机房的入口代理模块对所述签名后的第一服务的网络请求进行鉴权,当鉴权通过时,将所述签名后的第一服务的网络请求代理至所述第二机房中的第二服务。
进一步地,当所述专线可用时,所述第一机房的出口代理模块将所述第一服务的网络请求通过所述专线代理至所述第二机房中的第二服务。
进一步地,所述第一机房的出口代理模块中包括负载均衡单元,其中:所述负载均衡单元获取各个出口代理服务的当前资源使用率,所述当前资源使用率包括CPU使用率、内存使用率或者硬盘使用率中的至少一种;所述负载均衡单元从各个出口代理服务中,确定当前资源使用率最小的目标出口代理服务。
进一步地,所述一机房的出口代理模块中包括检测单元,其中:所述检测单元按照预设周期通过所述专线向第二机房发送具备固定长度的检测报文;若第二机房没有接收到所述检测报文或者接收检测报文的时间小于预定时长,判定所述专线不可用;若第二机房接收检测报文的时间大于或者等于预定时长,判定所述专线可用。
进一步地,所述一机房的出口代理模块中包括签名单元,其中:所述签名单元在所述第一服务的网络请求中添加预设字符串,所述预设字符串由所述第一机房和所述第二机房共同预先确定;相应地,所述第二机房的入口代理模块中包括鉴权单元,其中:所述鉴权单元从所述签名后的第一服务的网络请求中提取所述预设字符串,并将所述预设字符串与本地存储的字符串进行对比,当所述预设字符串与所述本地存储的字符串一致时,鉴权通过。
进一步地,所述签名单元中包括加密模块,其中:所述加密模块用于将所述第一服务的网络请求转换为目标字符串,并通过预设加密算法,将所述目标字符串加密为所述预设字符串。
本申请实施方式还提供一种跨机房数据中心两层代理的网络请求处理方法,所述方法包括:第一机房的出口代理模块获取所述第一机房中第一服务的网络请求,并负载均衡地选择出口代理服务;所述第一机房的出口代理模块检测所述专线是否可用;当所述专线不可用时,所述第一机房的出口代理模块对所述第一服务的网络请求签名;所述第一机房将签名后的第一服务的网络请求通过所述公网发送至所述第二机房的入口代理模块;所述第二机房的入口代理模块对所述签名后的第一服务的网络请求进行鉴权,当鉴权通过时,将所述签名后的第一服务的网络请求代理至所述第二机房中的第二服务。
进一步地,所述方法还包括:当所述专线可用时,所述第一机房的出口代理模块将所述第一服务的网络请求通过所述专线代理至所述第二机房中的第二服务。
进一步地,第一机房的出口代理模块负载均衡地选择出口代理服务包括:第一机房的出口代理模块获取各个出口代理服务的当前资源使用率,所述当前资源使用率包括CPU使用率、内存使用率或者硬盘使用率中的至少一种;第一机房的出口代理模块从各个出口代理服务中,确定当前资源使用率最小的目标出口代理服务。
进一步地,所述第一机房的出口代理模块检测专线是否可用包括:所述第一机房的出口代理模块按照预设周期通过所述专线向第二机房发送具备固定长度的检测报文;若第二机房没有接收到所述检测报文或者接收检测报文的时间小于预定时长,判定所述专线不可用;若第二机房接收检测报文的时间大于或者等于预定时长,判定所述专线可用。
本申请的各个机房之间可以同时通过专线和公网进行连接,这样,在专线不可用时,可以通过公网来实现网络请求的传递。具体的,在本申请中,各个机房可以包括出口代理模块和入口代理模块,出口代理模块用于检测专线状态并在专线不可用时对网络请求进行签名。入口代理模块则可以用于接收签名后的网络请求,并对签名后的网络请求进行鉴权,在鉴权通过后从而可以将网络请求代理到本地机房进行处理。由上可见,本申请提供的跨机房数据中心两层代理的网络请求处理系统及方法,能够保证在专线断掉的情况下,机房的服务能够正常处理。
参照后文的说明和附图,详细公开了本申请的特定实施方式,指明了本申请的原理可以被采用的方式。应该理解,本申请的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本申请的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
所包括的附图用来提供对本申请实施方式的进一步的理解,其构成了说明书的一部分,用于例示本申请的实施方式,并与文字描述一起来阐释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施方式提供的一种跨机房数据中心两层代理的网络请求处理系统的结构示意图;
图2为本申请实施方式中跨机房数据中心两层代理的网络请求处理方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施方式,都应当属于本申请保护的范围。
本申请实施方式提供一种跨机房数据中心两层代理的网络请求处理系统,所述系统包括异地分布的至少两个机房,所述至少两个机房中的任意两个机房之间通过基于应用层的专线以及公网进行连接,各个机房中均包括出口代理模块和入口代理模块,各个机房中运行各自的服务。请参阅图1,在本实施方式中以第一机房和第二机房为例进行阐述。第一机房中可以包括多个服务,在本实施方式中以第一服务为例。同样地,在第二机房中也可以包括多个服务,此处以第二服务为例。所述第一机房与第二机房之间同时通过专线和公网进行连接。在第一机房和第二机房中,均包括出口代理模块和入口代理模块。
在本实施方式中,第一机房和第二机房中运行的服务可以是HTTP应用服务,也可以是数据库应用服务,并且本申请的技术方案可以在不同机房的相同数据库进行通信。
在本实施方式中,第一机房的出口代理模块可以获取所述第一机房中第一服务的网络请求,并负载均衡地选择出口代理服务。
具体的,由于出口代理模块中可以具备多个出口代理服务,为了使得各个出口代理服务的资源能够被最大化利用,可以通过负载均衡的方式在多个出口代理服务中选择目标出口代理服务。具体的,所述第一机房的出口代理模块中可以包括负载均衡单元,其中:所述负载均衡单元获取各个出口代理服务的当前资源使用率,所述当前资源使用率包括CPU使用率、内存使用率或者硬盘使用率中的至少一种。所述负载均衡单元从各个出口代理服务中,确定当前资源使用率最小的目标出口代理服务。
此外,入口代理模块中也可以包括多个入口代理服务,这样,出口代理服务同样可以通过负载均衡的方式,确定目标入口代理服务,以保证通信效率最大化。
在本实施方式中,所述第一机房的出口代理模块可以检测所述专线是否可用。当所述专线可用时,所述第一机房的出口代理模块则可以直接将所述第一服务的网络请求通过所述专线代理至所述第二机房中的第二服务。但是当所述专线发生故障,不可用时,所述第一机房的出口代理模块则可以通过公网向第二机房传输所述第一服务的网络请求。
具体的,所述一机房的出口代理模块中可以包括检测单元,其中:所述检测单元按照预设周期通过所述专线向第二机房发送具备固定长度的检测报文;若第二机房没有接收到所述检测报文或者接收检测报文的时间小于预定时长,判定所述专线不可用;若第二机房接收检测报文的时间大于或者等于预定时长,判定所述专线可用。
在本实施方式中,所述第一机房的出口代理模块在发送第一服务的网络请求之前,需要对所述第一服务的网络请求签名。签名的过程相当于是在第一服务的网络请求中添加一个能够表明第一机房身份的标识,从而能够让第二机房接收到第一服务的网络请求时,能够知晓该请求来自于何处。
在本实施方式中,所述第一机房可以将签名后的第一服务的网络请求通过所述公网发送至所述第二机房的入口代理模块。具体的,所述一机房的出口代理模块中可以包括签名单元,所述签名单元可以在所述第一服务的网络请求中添加预设字符串,所述预设字符串由所述第一机房和所述第二机房共同预先确定。这样,所述第二机房的入口代理模块对所述签名后的第一服务的网络请求进行鉴权,当鉴权通过时,将所述签名后的第一服务的网络请求代理至所述第二机房中的第二服务。
具体的,所述第二机房的入口代理模块中可以包括鉴权单元,其中:所述鉴权单元从所述签名后的第一服务的网络请求中提取所述预设字符串,并将所述预设字符串与本地存储的字符串进行对比,当所述预设字符串与所述本地存储的字符串一致时,鉴权通过。
在本实施方式中,为了保证数据传输的安全性,所述预设字符串可以通过加密的方式生成。具体的,所述签名单元中可以包括加密模块,其中:所述加密模块用于将所述第一服务的网络请求转换为目标字符串,并通过预设加密算法,将所述目标字符串加密为所述预设字符串。其中,将第一服务的网络请求转换为目标字符串时,可以将所述第一服务的网络请求中的标点符号去除,仅保留各个字符,从而可以将各个字符按序排列,从而形成所述目标字符串。进一步的,可以通过DES(Data Encryption Standard,对称算法)、DSA(Digital Signature Algorithm,数字签名算法)、MD5(Message Digest Algorithm 5,消息摘要算法第五版)等加密算法,对所述目标字符串进行加密,从而得到所述预设字符串。
在本实施方式中,所述预设字符串在第一机房和第二机房中均有备份,这样,第二机房的鉴权单元可以从所述签名后的第一服务的网络请求中提取所述预设字符串,并将所述预设字符串与本地存储的字符串进行对比,当所述预设字符串与所述本地存储的字符串一致时,鉴权通过。
这样,通过上述的方案,第一机房中的网络请求便可以由第二机房进行处理。同样地,第二机房中的网络请求也可以通过相同的方式由第一机房进行处理。
请参阅图2本申请实施方式还提供一种跨机房数据中心两层代理的网络请求处理方法,所述方法包括以下步骤。
S1:第一机房的出口代理模块获取所述第一机房中第一服务的网络请求,并负载均衡地选择出口代理服务;
S2:所述第一机房的出口代理模块检测专线是否可用;
S6:当所述专线可用时,所述第一机房的出口代理模块则可以直接将所述第一服务的网络请求通过所述专线代理至所述第二机房中的第二服务。
S3:当所述专线不可用时,所述第一机房的出口代理模块对所述第一服务的网络请求签名;
S4:所述第一机房将签名后的第一服务的网络请求通过公网发送至所述第二机房的入口代理模块;
S5:所述第二机房的入口代理模块对所述签名后的第一服务的网络请求进行鉴权,当鉴权通过时,将所述签名后的第一服务的网络请求代理至所述第二机房中的第二服务。
在本实施方式中,所述方法还包括:
当所述专线可用时,所述第一机房的出口代理模块将所述第一服务的网络请求通过所述专线代理至所述第二机房中的第二服务。
在本实施方式中,第一机房的出口代理模块从剩余的机房中确定第二机房包括:
第一机房的出口代理模块获取各个出口代理服务的当前资源使用率,所述当前资源使用率包括CPU使用率、内存使用率或者硬盘使用率中的至少一种;
第一机房的出口代理模块从各个出口代理服务中,确定当前资源使用率最小的目标出口代理服务。
在本实施方式中,所述第一机房的出口代理模块检测专线是否可用包括:
所述第一机房的出口代理模块按照预设周期通过所述专线向第二机房发送具备固定长度的检测报文;
若第二机房没有接收到所述检测报文或者接收检测报文的时间小于预定时长,判定所述专线不可用;若第二机房接收检测报文的时间大于或者等于预定时长,判定所述专线可用。
本申请的各个机房之间可以同时通过专线和公网进行连接,这样,在专线不可用时,可以通过公网来实现网络请求的传递。具体的,在本申请中,各个机房可以包括出口代理模块和入口代理模块,出口代理模块用于检测专线状态并在专线不可用时对网络请求进行签名。入口代理模块则可以用于接收签名后的网络请求,并对签名后的网络请求进行鉴权,在鉴权通过后从而可以将网络请求代理到本地机房进行处理。由上可见,本申请提供的跨机房数据中心两层代理的网络请求处理系统及方法,能够保证在专线断掉的情况下,机房的服务能够正常处理。
上面对本申请的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本申请的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本申请旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。