首页> 中国专利> 高可用分布式系统自动化运维方法及系统

高可用分布式系统自动化运维方法及系统

摘要

本申请涉及一种高可用分布式系统自动化运维方法及系统,其中,该方法包括:请求获取步骤,用于通过一DNS服务器获取一客户端发起的DNS查询请求并根据一IP域名映射表返回所述DNS查询请求对应的基于LVS负载均衡器及Keepalived搭建的虚拟服务器;请求转发步骤,用于通过所述虚拟服务器接收所述客户端发起的数据包流量并根据一本地保存的ARP映射关系将数据包流量转发至相应的真实服务器;数据处理步骤,用于所述真实服务器将所述数据包流量转发至多个Nginx服务器;结果获取步骤,用于多个所述Nginx服务器响应所述数据包流量请求并返回响应结果至所述客户端。通过具有高可用性、可扩展性的方式实现,避免单点故障,降低迁移成本,以使本申请可承载起大数据量业务的需求。

著录项

  • 公开/公告号CN112596911A

    专利类型发明专利

  • 公开/公告日2021-04-02

    原文格式PDF

  • 申请/专利权人 恩亿科(北京)数据科技有限公司;

    申请/专利号CN202011592492.X

  • 发明设计人 卫维;

    申请日2020-12-29

  • 分类号G06F9/50(20060101);G06F9/48(20060101);

  • 代理机构37256 青岛清泰联信知识产权代理有限公司;

  • 代理人李红岩

  • 地址 100192 北京市海淀区西小口路66号东升科技园·北领地D-1楼1层136A(东升地区)

  • 入库时间 2023-06-19 10:27:30

说明书

技术领域

本申请涉及计算机技术领域,特别是涉及一种高可用分布式系统自动化运维方法及系统。

背景技术

随着互联网技术及电子商务的飞速发展,尤其是在ToC个人领域来说,对于终端用户而言,对于在浏览主流门户类、购物网站时,希望能快速便捷的去满足自己的需求。这样的需求对于web服务提供者底层技术而言,同时面临着严峻的挑战,为了满足需求,必须高效迅速地提供访问服务,避免出现连接超时,服务器繁忙、甚至无法提供服务访问。

现有的服务集群往往是基于单点配置负载均衡设备的,无法有效掌握服务器及其应用状态,而且学习成本高、配置复杂,需要额外花费人力去管理维护设备,极大提高了服务提供者的成本。

发明内容

本申请实施例提供了一种高可用分布式系统自动化运维方法及系统,通过具有高可用性、可扩展性的方式实现,避免单点故障,降低迁移成本,以使本申请实施例的方法及系统可承载起大数据量业务的需求。

第一方面,本申请实施例提供了一种高可用分布式系统自动化运维方法,应用于基于Keepalived、DNS服务器以及Nginx服务器构建的高可用分布式系统,所述方法包括:

请求获取步骤,用于通过一DNS服务器获取一客户端发起的DNS查询请求并根据一IP域名映射表返回所述DNS查询请求对应的基于LVS负载均衡器及Keepalived搭建的虚拟服务器;

请求转发步骤,用于通过所述虚拟服务器接收所述客户端发起的数据包流量并根据一本地保存的ARP(英文全称Address Resolution Protocol)映射关系将数据包流量转发至相应的真实服务器,具体的,LVS负载均衡器会按照设定的权重值,将该请求分发到优先级较高的后端真实服务器;其中,LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,采用IP负载均衡技术和基于内容请求分发技术。

数据处理步骤,用于所述真实服务器将所述数据包流量转发至多个Nginx服务器;

结果获取步骤,用于多个所述Nginx服务器响应所述数据包流量请求并返回响应结果至所述客户端;

其中,所述请求转发步骤中,通过Keepalived利用心跳包检测所述真实服务器与所述虚拟服务器之间的网络通信是否正常,若存在异常,则将存在异常的服务器剔除,具体的,Keepalived会实时检测主服务器和备用服务器是否正常可用,如果存在异常的主机,会自动将该存在问题的服务器剔除,所述备用服务器实时同步主服务器。

其中,DNS(Domain Name System,域名系统)为将域名和IP互相映射解析所提供的一种互联网服务。Keepalived是基于vrrp协议的一款高可用软件。它的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。Nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

基于上述步骤,本申请提供了一种基于Keepalived、DNS服务器以及Nginx服务器构建的自动化运维方法,由DNS服务器提供域名系统查询功能,通过Keepalived提供虚拟共享的IP通道,由Nginx服务器负责转发、分摊流量,具备高可用行,可扩展性,降低迁移成本,承载起大数据量业务的需求。

在其中一些实施例中,所述数据处理步骤中,所述真实服务器根据一预先配置的调度规则和静动态资源分发策略将所述数据包流量转发至多个Nginx服务器。

基于上述步骤,本申请实施例可针对性的对一些资源应用流量(图片、视频等)做控制、及http协议应用做一些分流的规则策略,例如针对域名、url路径等。举例而非限制,如负责处理各个资源的Nginx服务器有C1服务器,C2服务器,C3服务器等等,响应该流量请求,C1服务器负责处理静态文件,C2服务器处理大量的图片资源,视频等流媒体资源交给C3服务器处理。

在其中一些实施例中,所述Nginx服务器根据一预先配置的缓存规则在设定时间内缓存响应结果,以便于下次缓存期内,若所述客户端再次发生请求时,直接将所述响应结果返回至所述客户端。

在其中一些实施例中,所述真实服务器至少包括一主服务器及一备用服务器,所述备用服务器实时同步主服务器。

在其中一些实施例中,所述调度规则包括轮询、加权轮询、ip_hash、least_hash、url_hash、hash关键值其一或其任意组合。

第二方面,本申请实施例提供了一种高可用分布式系统自动化运维系统,应用于基于Keepalived、DNS服务器以及Nginx服务器构建的高可用分布式系统,所述高可用分布式系统自动化运维系统包括:

请求获取模块,用于通过一DNS服务器获取一客户端发起的DNS查询请求并根据一IP域名映射表返回所述DNS查询请求对应的基于LVS负载均衡器及Keepalived搭建的虚拟服务器;

请求转发模块,用于通过所述虚拟服务器接收所述客户端发起的数据包流量并利用LVS负载均衡器根据一本地保存的ARP映射关系将数据包流量转发至相应的真实服务器,具体的,LVS负载均衡器会按照设定的权重值,将该请求分发到优先级较高的后端真实服务器;

数据处理模块,用于所述真实服务器将所述数据包流量转发至多个Nginx服务器;

结果获取模块,用于多个所述Nginx服务器响应所述数据包流量请求并返回响应结果至所述客户端;

其中,所述请求转发模块中,通过Keepalived利用心跳包检测所述真实服务器与所述虚拟服务器之间的网络通信是否正常,若存在异常,则将存在异常的服务器剔除,具体的,Keepalived会实时检测主服务器和备用服务器是否正常可用,如果存在异常的主机,会自动将该存在问题的服务器剔除,所述备用服务器实时同步主服务器。

基于上述模块,本申请提供了一种基于Keepalived、DNS服务器以及Nginx服务器构建的自动化运维方法,由DNS服务器提供域名系统查询功能,通过Keepalived提供虚拟共享的IP通道,由Nginx服务器负责转发、分摊流量;上述方法具备高可用行,可扩展性,降低迁移成本,承载起大数据量业务的需求。

在其中一些实施例中,所述数据处理模块中,所述真实服务器根据一预先配置的调度规则和静动态资源分发策略将所述数据包流量转发至多个Nginx服务器。

基于上述模块,本申请实施例可针对性的对一些资源应用流量(图片、视频等)做控制、及http协议应用做一些分流的规则策略,例如针对域名、url路径等。

在其中一些实施例中,所述Nginx服务器根据一预先配置的缓存规则在设定时间内缓存响应结果,以便于下次缓存期内,若所述客户端再次发生请求时,直接将所述响应结果返回至所述客户端。

在其中一些实施例中,所述真实服务器至少包括一主服务器及一备用服务器,所述备用服务器实时同步主服务器。

在其中一些实施例中,所述调度规则包括轮询、加权轮询、ip_hash、least_hash、url_hash、hash关键值其一或其任意组合。

第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的高可用分布式系统自动化运维方法。

相比于相关技术,本申请实施例提供的高可用分布式系统自动化运维方法及系统,具有可伸缩性、横向扩展集群的方式来实现避免单点故障、避免导致整个集群瘫痪;本申请实施例可在继承每个功能组件已有的特性之上,可以针对性地对一些资源应用流量(图片、视频等)做控制、及http协议应用做一些分流的规则策略,例如针对域名、url路径等。

另外,本申请实施例更容易安装及配置,支持异步请求帮助节点承担高的负载压力且运行稳定,高可扩展性,支持横向扩展,且支持自定义状态返回码、返回结果;本申请实施例还可针对不同的实际环境,实现灵活运用,不论是本地机房服务器还是云服务器,该发明技术方案不受限于场景限制。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的高可用分布式系统自动化运维方法流程图;

图2是根据本申请实施例的高可用分布式系统自动化运维方法原理图;

图3是根据本申请实施例的高可用分布式系统自动化运维系统原理图;

图4是根据本申请实施例的高可用分布式系统自动化运维系统的结构框图。

附图说明:

1、高可用分布式系统自动化运维系统;

101、请求获取模块;

102、请求转发模块;

103、数据处理模块;

104、结果获取模块。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

本实施例提供了一种应用于基于Keepalived、DNS服务器以及Nginx服务器构建的高可用分布式系统的高可用分布式系统自动化运维方法。图1是根据本申请实施例的高可用分布式系统自动化运维方法流程图,图2是根据本申请实施例的高可用分布式系统自动化运维方法原理图,其中图2为方法中部分步骤原理图,未示出部分参考图1所示。参考图1-2所示,该流程包括如下步骤:

请求获取步骤S101,用于通过一DNS服务器获取一客户端发起的DNS查询请求并根据一IP域名映射表返回DNS查询请求对应的基于LVS负载均衡器及Keepalived搭建的虚拟服务器;

请求转发步骤S102,用于通过虚拟服务器接收客户端发起的数据包流量并利用LVS负载均衡器根据一本地保存的ARP映射关系将数据包流量转发至相应的真实服务器,具体的,LVS负载均衡器会按照设定的权重值,将该请求分发到优先级较高的后端真实服务器;其中,LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,采用IP负载均衡技术和基于内容请求分发技术。

数据处理步骤S103,用于真实服务器将数据包流量转发至多个Nginx服务器;

结果获取步骤S104,用于多个Nginx服务器响应数据包流量请求并返回响应结果至客户端;

其中,请求转发步骤S102中,通过Keepalived利用心跳包检测真实服务器与虚拟服务器之间的网络通信是否正常,若存在异常,则将存在异常的服务器剔除,具体的,真实服务器至少包括一主服务器及一备用服务器,备用服务器实时同步主服务器。参考图2所示,Keepalived会实时检测主服务器和备用服务器是否正常可用,如果存在异常的主机,会自动将该存在问题的服务器剔除,备用服务器实时同步主服务器。其中,DNS(Domain NameSystem,域名系统)为将域名和IP互相映射解析所提供的一种互联网服务。Keepalived是基于vrrp协议的一款高可用软件。它的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。Nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

基于上述步骤,本申请提供了一种基于Keepalived、DNS服务器以及Nginx服务器构建的自动化运维方法,由DNS服务器提供域名系统查询功能,通过Keepalived提供虚拟共享的IP通道,由Nginx服务器负责转发、分摊流量;

上述方法具备高可用行,可扩展性,降低迁移成本,承载起大数据量业务的需求。

在其中一些实施例中,数据处理步骤S103中,真实服务器根据一预先配置的调度规则和静动态资源分发策略将数据包流量转发至多个Nginx服务器。可选的,调度规则包括轮询、加权轮询、ip_hash、least_hash、url_hash、hash关键值其一或其任意组合。

基于上述步骤,本申请实施例可针对性的对一些资源应用流量(图片、视频等)做控制、及http协议应用做一些分流的规则策略,例如针对域名、url路径等。举例而非限制,如负责处理各个资源的Nginx服务器有C1服务器,C2服务器,C3服务器等等,响应该流量请求,C1服务器负责处理静态文件,C2服务器处理大量的图片资源,视频等流媒体资源交给C3服务器处理。

在其中一些实施例中,Nginx服务器根据一预先配置的缓存规则在设定时间内缓存响应结果,以便于下次缓存期内,若客户端再次发生请求时,直接将响应结果返回至客户端。

举例而非限制,如:

location~\.(html|gif|jpg|jpeg|png|bmp|swf)${

expires 30days;//设置图片缓存时间

gzip on;//开启gzip功能

root/opt/res/image;//设置图片所在的路径为/opt/res/image}

基于上述规则,根据括号内的大小写进行匹配。括号内全是小写,只匹配小写。若访问html、gif、jpg、jpeg、png、bmp或swf则匹配上述规则。

location~\.(jsp|jspx)${

proxy_pass http://vip-ups;

proxy_set_header Host$host;}

基于上述规则,如果遇到.jsp.jspx的请求就进入Nginx服务器“http://vip-ups”,浏览器,即为客户端,直接访问该Nginx服务器,获取到的Host是$host的值。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本实施例还提供了一种应用于基于Keepalived、DNS服务器以及Nginx服务器构建的高可用分布式系统的高可用分布式系统自动化运维系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是根据本申请实施例的高可用分布式系统自动化运维系统原理图,图4是根据本申请实施例的高可用分布式系统自动化运维系统的结构框图;参考图3-4所示,本申请实施例提供的高可用分布式系统自动化运维系统1,包括:

请求获取模块101,用于通过一DNS服务器获取一客户端发起的DNS查询请求并根据一IP域名映射表返回DNS查询请求对应的基于LVS负载均衡器及Keepalived搭建的虚拟服务器;

请求转发模块102,用于通过虚拟服务器接收客户端发起的数据包流量并利用LVS负载均衡器根据一本地保存的ARP映射关系将数据包流量转发至相应的真实服务器,具体的,LVS负载均衡器会按照设定的权重值,将该请求分发到优先级较高的后端真实服务器;其中,LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,采用IP负载均衡技术和基于内容请求分发技术。

数据处理模块103,用于真实服务器将数据包流量转发至多个Nginx服务器;

结果获取模块104,用于多个Nginx服务器响应数据包流量请求并返回响应结果至客户端;

其中,请求转发模块102通过Keepalived利用心跳包检测真实服务器与虚拟服务器之间的网络通信是否正常,若存在异常,则将存在异常的服务器剔除,其中,真实服务器至少包括一主服务器及一备用服务器,备用服务器实时同步主服务器。具体的,Keepalived会实时检测主服务器和备用服务器是否正常可用,如果存在异常的主机,会自动将该存在问题的服务器剔除,备用服务器实时同步主服务器。

基于上述模块,本申请提供了一种基于Keepalived、DNS服务器以及Nginx服务器构建的自动化运维方法,由DNS服务器提供域名系统查询功能,通过Keepalived提供虚拟共享的IP通道,由Nginx服务器负责转发、分摊流量;上述方法具备高可用行,可扩展性,降低迁移成本,承载起大数据量业务的需求。

其中,数据处理模块103中,真实服务器根据一预先配置的调度规则和静动态资源分发策略将数据包流量转发至多个Nginx服务器。具体的,Nginx服务器根据一预先配置的缓存规则在设定时间内缓存响应结果,以便于下次缓存期内,若客户端再次发生请求时,直接将响应结果返回至客户端。可选的,调度规则包括轮询、加权轮询、ip_hash、least_hash、url_hash、hash关键值其一或其任意组合。基于上述模块,本申请实施例可针对性的对一些资源应用流量(图片、视频等)做控制、及http协议应用做一些分流的规则策略,例如针对域名、url路径等。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

另外,结合上述实施例中的高可用分布式系统自动化运维方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种高可用分布式系统自动化运维方法。具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号