CN106453564B - 弹性云分布式海量请求处理的方法、装置及系统 - Google Patents

弹性云分布式海量请求处理的方法、装置及系统 Download PDF

Info

Publication number
CN106453564B
CN106453564B CN201610905712.7A CN201610905712A CN106453564B CN 106453564 B CN106453564 B CN 106453564B CN 201610905712 A CN201610905712 A CN 201610905712A CN 106453564 B CN106453564 B CN 106453564B
Authority
CN
China
Prior art keywords
request
container
cluster
service instance
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610905712.7A
Other languages
English (en)
Other versions
CN106453564A (zh
Inventor
朱德伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610905712.7A priority Critical patent/CN106453564B/zh
Publication of CN106453564A publication Critical patent/CN106453564A/zh
Application granted granted Critical
Publication of CN106453564B publication Critical patent/CN106453564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种弹性云分布式海量请求处理的方法、装置及系统,能够在服务器无法应对峰值时,瞬时自动扩容。该方法包括:步骤一:云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;步骤二:客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;步骤三:服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;在步骤一至步骤三的过程中,云计算管理平台监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。

Description

弹性云分布式海量请求处理的方法、装置及系统
技术领域
本发明涉及计算机技术及软件领域,尤其涉及一种弹性云分布式海量请求处理的方法、装置及系统。
背景技术
随着互联网技术的不断发展,通过客户端发起的请求数量呈现海量增长,这一现象在电子商务领域较为突出,尤其是商家进行各种促销活动的时候。因此,对海量请求的及时处理就显得尤为重要。因为海量的网络请求就像血栓一样,一旦遇到瓶颈,就会堵塞整个血管。
为了及时响应海量的请求,通常情况下需要使用集群、负载均衡技术;为了了解请求的先后,须知道请求时间,一般通过一个请求队列来处理用户请求;此外,集群后的请求,须经过同步处理,否则分散在各个服务器上的请求无法排序。
以电子商务为例,现有技术中处理海量请求的机制如图1所示,位于最前端的两台主机,主要做负载均衡,将请求卸载到多个Web服务器集群的每台主机上;ZooKeeper集群主要作用是同步数据,例如限额数据等。这些请求会通过一个先进先出的消息队列,交给数据库处理,并返回结果。
通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数)。假设处理一个业务请求的平均响应时间为100ms,系统内有20台Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。那么,Web系统的理论峰值QPS为(理想化的计算方式):20*500/0.1=100000(10万QPS)。系统似乎很强大,1秒钟可以处理完10万的请求,5w/s的秒杀似乎是“纸老虎”。
但实际情况,在高并发的场景下,服务器都处于高负载的状态,此时平均响应时间会大大增加。因此,假设在5w/s的高并发状态下,平均响应时间从100ms变为250ms(实际甚至更多):20*500/0.25=40000(4万QPS),此时,系统剩下了4w的QPS,面对5w每秒的请求,相差了1w。
同理,若某一个秒内,20*500个可用连接进程都在满负荷工作中,却仍然有1万个新来请求,由于没有连接进程可用,系统陷入到异常状态也是预期之内。
因此处理海量请求时,需要根据响应时间、服务器的CPU负载率、处理能力等动态决定集群个数。但上述现有技术无法支持动态扩容。一旦出现问题,服务器运维人员需要及时增加服务器数量,重新启动服务等,这将花费较长时间,且过程的复杂性、不确定性将给请求处理带来较大风险;此外,现有方案中没有考虑到对用户请求时间处理的公平性,一般以请求达到服务器的时间为请求开始时间,这对请求的发起方而言并不公平。
发明内容
有鉴于此,本发明提供一种弹性云分布式海量请求处理的方法、装置及系统,能够在服务器无法应对峰值时,瞬时自动扩容,且根据海量请求的发起时间进行公平排序,按照时间先后予以处理。
为实现上述目的,根据本发明的一个方面,提供了一种弹性云分布式海量请求处理的方法。
本发明实施例的一种弹性云分布式海量请求处理的方法包括:步骤一:云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;步骤二:客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;步骤三:服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;在步骤一至步骤三的过程中,云计算管理平台监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。
可选地,所述云计算管理平台基于OpenStack、Machine、Swarn、Compose中的一种或多种实现,所述容器为基于Linux的Docker。
可选地,所述包含时间的请求是指包含发送时间的时间戳的请求。
可选地,所述负载均衡服务器还包括:DNS负载均衡服务器和Nginx负载均衡服务器,以实现两层负载均衡。
可选地,当状态指标超过预设阈值时,通过复制容器创建新容器还包括:当服务实例所在容器的CPU负载率、内存占用量以及请求响应时间中的其中一个或多个超过对应的预设阈值时,通过复制容器创建新容器。
可选地,所述方法还包括:服务实例处理请求的过程中,利用面向切面编程的技术,记录处理的开始和结束时间,作为对请求响应时间的统计。
为实现上述目的,根据本发明的另一方面,提供了一种弹性云分布式海量请求处理的装置。
本发明的一种弹性云分布式海量请求处理的装置包括云计算管理平台、容器、客户端、负载均衡服务器,其中:云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;所述云计算管理平台还用于监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。
可选地,所述云计算管理平台基于OpenStack、Machine、Swarn、Compose中的一种或多种实现,所述容器为基于Linux的Docker。
可选地,所述包含时间的请求是指包含发送时间的时间戳的请求。
可选地,所述负载均衡服务器还包括:DNS负载均衡服务器和Nginx负载均衡服务器,以实现两层负载率均衡。
可选地,所述云计算管理平台还用于:当服务实例所在容器的CPU负载率、内存占用量以及请求响应时间中的其中一个或多个超过对应的预设阈值时,通过复制容器创建新容器。
可选地,所述装置还用于:服务实例处理请求的过程中,利用面向切面编程的技术,记录处理的开始和结束时间,作为对请求响应时间的统计。
为实现上述目的,根据本发明的再一方面,提供了一种弹性云分布式海量请求处理的系统。
本发明的一种弹性云分布式海量请求处理的系统包括:存储器和处理器;其中,所述存储器存储指令;所述处理器被配置为根据所述指令执行下列步骤:步骤一:云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;步骤二:客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;步骤三:服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;在步骤一至步骤三的过程中,云计算管理平台监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的弹性云分布式海量请求处理的方法。
根据本发明的技术方案,通过基于容器的虚拟化实例构建各应用集群,从而可以在较少成本的基础上实现海量请求的处理;通过利用云计算管理平台管理容器,从而可以实现容器的快速创建,使得在服务器无法应对峰值时,瞬时自动扩容,提高服务处理性能;通过发起请求时,在请求中嵌入网络同步时间,且在将分布在集群上的请求,经过同步后按时间先后进行排序,从而可以实现根据请求发起时间决定请求处理的先后顺序;通过利用两层负载均衡技术进行请求的分发,从而可以使请求快速高效的分发至各服务实例。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有技术的海量请求处理的方法的架构的示意图;
图2是根据本发明实施例的弹性云分布式海量请求处理的方法的主要步骤的示意图;
图3是根据本发明实施例的弹性云分布式海量请求处理的方法的主要流程的示意图;
图4是根据本发明实施例的弹性云分布式海量请求处理的装置的主要模块的示意图;
图5是根据本发明实施例的弹性云分布式海量请求处理的系统的主要部分的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例的技术方案基于云计算管理平台进行容器的创建和管理。容器是构建在操作系统上的虚拟化实例,其中,各容器有自己虚拟的IP,基于一宿主机操作系统可构建多个容器。
在不同的容器集群上可以根据需求构建相关应用,本发明实施例中分别在容器上构建消息队列集群、分布式同步服务(例如可以但不限于是ZooKeeper)集群、服务实例以及数据存储集群。然后将通过客户端发起的海量请求利用负载均衡服务器发送至消息队列集群上,经过同步后,对海量请求按照时间先后进行排序。构建在容器中的服务实例获取消息队列中的请求进行处理,并将处理后数据保存在构建在数据存储集群中。在海量请求处理的过程中,云计算管理平台监控各容器的状态,当容器的状态指标超过预设阈值后,通过复制容器构建新容器。
图2是根据本发明实施例的弹性云分布式海量请求处理的方法的主要步骤的示意图。
如图2所示,本发明实施例的弹性云分布式海量请求处理的方法的主要步骤如下:
步骤一:云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;
步骤二:客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;
步骤三:服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;
此外,在步骤一至步骤三的过程中,云计算管理平台监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。
本发明实施例中的负载均衡服务器还可包括:DNS负载均衡服务器和Nginx负载均衡服务器,以实现两层负载均衡。第一层是由DNS服务商可以提供。第二层主要通过Nginx做转发。Nginx是高效率的负载均衡转发器,它可以根据按照权重、轮询等方式将网络请求分发给各个服务的实例。每个实例服务跑在Docker虚拟机上,每个虚拟机不止是跑一个实例服务。
其中,云计算管理平台可以基于OpenStack、Machine、Swarn、Compose中的一种或多种实现,本发明实施例中采用OpenStack进行管理。OpenStack是一个开源软件,它提供了一个部署云的平台。为虚拟计算或存储服务的公有/私有云,提供可扩展的、灵活的云计算。OpenStack包含了一组开源项目,主要项目有Compute(Nova),Object Storage(Swift),Image Service(Glance)。Nova提供虚拟计算服务,Swift提供存储服务,Glance提供虚拟机镜像的注册、分发服务。此外,本发明实施例中的容器为基于Linux的Docker。本发明实施例的容器并不局限与此,只要是能实现本发明中虚拟化云计算的其它容器均可用来在本发明实施例中进行应用的构建和请求的处理。
本发明实施例中,Docker就是一个应用程序执行容器,类似虚拟机的概念。但是与虚拟化技术的不同之处在于下面几点:
一、虚拟化技术依赖物理CPU和内存,是硬件级别的;而Docker构建在操作系统上,利用操作系统的容器化containerization技术,所以Docker甚至可以在虚拟机上运行;
二、虚拟化系统一般都是指操作系统镜像,比较复杂,称为“系统”;而Docker开源而且轻量,称为“容器”,单个容器适合部署少量应用,比如部署一个Redis、一个Memcached;
三、传统的虚拟化技术使用快照来保存状态;而Docker在保存状态上不仅更为轻便和低成本,而且引入了类似源代码管理机制,将容器的快照历史版本一一记录,切换成本很低;
四、传统的虚拟化技术在构建系统的时候较为复杂,需要大量的人力;而Docker可以通过Dockfile来构建整个容器,重启和构建速度很快。更重要的是Dockfile可以手动编写,这样应用程序开发人员可以通过发布Dockfile来指导系统环境和依赖,这样对于持续交付十分有利。Dockerfile可以基于已经构建好的容器镜像,创建新容器。Dockerfile可以通过社区分享和下载,有利于该技术的推广。
此外,Docker的还具有如下特性:
文件系统隔离:每个进程容器运行在完全独立的根文件系统里。
资源隔离:可以使用Cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。
网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址。
写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间。
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。
本发明实施例中的ZooKeeper及消息队列集群,主要是多个Docker中构建的ZooKeeper集群和RabbitMQ集群(消息队列并不限于RabbitMQ,还可以是Redis),来同步分布式Docker集群上各个服务数据。本发明实施例中的数据存储集群主要用于将用户操作数据存储到相关的数据集群存储服务器,主要是多个Docker集群中构建的MySQL。
图3是根据本发明实施例的弹性云分布式海量请求处理的方法的主要流程的示意图。以下结合图3对本发明实施例的弹性云分布式海量请求处理的方法的主要流程进行详细介绍。
如图3所示,本发明实施例的弹性云分布式海量请求处理的方法的主要流程如下:
一、客户端发送秒杀请求时,通过连接网络同步时间服务器,例如NTP、GPS获取网络同步时间,在请求中带入标识发送时间的时间戳;
二、将海量秒杀请求发送至负载均衡服务器;
三、通过负载均衡服务器(包括DNS负载率均衡、Nginx负载率均衡两层负载均衡)将海量请求分发到RabbitMQ集群的工作队列中,也可以用Redis集群。其中,RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息。Redis是高速的基于内存的缓存系统。两者都可以存储请求的消息;
四、在Redis集群或者RabbitMQ消息队列中的请求队列信息,通过一个重排服务,根据时间先后进行不断重排,再重新存储到RabbitMQ或者Redis集群中;(Redis可以通过ZooKeeper实现分布式缓存)
五、通过一个读取线程,读取在Redis或者RabbitMQ中的消息,并发送到多个Docker中的服务实例里;
六、对消息队列中的请求进行处理,通过面向切面编程(AOP)的方式,记录下处理开始的时间和结束的时间,方便统计响应时间;对请求完成处理后,访问数据存储集群,本发明实施例中为MySQL数据库,更新请求处理结果后,将处理结果返回至客户端;
七、上述过程中OpenStack对多个Docker集群进行管理。通过监控服务实例所在的Docker的CPU负载率、内存占用量、请求响应时间、硬盘负载率、网络流量等指标,如果CPU负载率、内存或者响应时间大于设定的相应阈值,自动将服务实例所在的Docker,通过OpenStack的组件进行复制并启动;
八、当服务实例增多,响应变快,CPU负载率或内存随之降低。
根据本发明实施例的弹性云分布式海量请求处理的方法可以看出,通过基于容器的虚拟化实例构建各应用集群,从而可以在较少成本的基础上实现海量请求的处理;通过利用云计算管理平台管理容器,从而可以实现容器的快速创建,使得在服务器无法应对峰值时,瞬时自动扩容,提高服务处理性能;通过发起请求时,在请求中嵌入网络同步时间,且在将分布在集群上的请求,经过同步后按时间先后进行排序,从而可以实现根据请求发起时间决定请求处理的先后顺序;通过利用两层负载均衡技术进行请求的分发,从而可以使请求快速高效的分发至各服务实例。
图4是根据本发明实施例的弹性云分布式海量请求处理的装置的主要模块的示意图。
如图4所示,本发明实施例的弹性云分布式海量请求处理的装置40包括云计算管理平台401、容器402、客户端403、负载均衡服务器404,其中:
云计算管理平台401创建容器402,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器402上;客户端403将包含时间的请求发送至负载均衡服务器404,所述负载均衡服务器404将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端403;所述云计算管理平台401还用于监控服务实例所在容器402的状态,当状态指标超过预设阈值时,通过复制容器402创建新容器402,以提高处理速度。
其中,前述包含时间的请求是指包含发送时间的时间戳的请求。
本发明实施例中,云计算管理平台401基于OpenStack、Machine、Swarn、Compose中的一种或多种实现,所述容器402为基于Linux的Docker。
负载均衡服务器404还可以包括:DNS负载均衡服务器404和Nginx负载均衡服务器404,以实现两层负载均衡。
此外,云计算管理平台401还可用于:当服务实例所在容器402的CPU负载率、内存占用量以及请求响应时间中的其中一个或多个超过对应的预设阈值时,通过复制容器402创建新容器402。其中,请求响应时间可以采用但不限于下述方式获取:服务实例处理请求的过程中,利用面向切面编程的技术,记录处理的开始和结束时间,作为对请求响应时间的统计。
图5是根据本发明实施例的弹性云分布式海量请求处理的系统的主要部分的示意图。
本发明实施例的一种弹性云分布式海量请求处理的系统50包括:存储器501和处理器502;其中,存储器501存储指令;处理器502被配置为根据所述指令执行下列步骤:步骤一:云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;步骤二:客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;步骤三:服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;在步骤一至步骤三的过程中,云计算管理平台监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。
从以上描述可以看出,通过基于容器的虚拟化实例构建各应用集群,从而可以在较少成本的基础上实现海量请求的处理;通过利用云计算管理平台管理容器,从而可以实现容器的快速创建,使得在服务器无法应对峰值时,瞬时自动扩容,提高服务处理性能;通过发起请求时,在请求中嵌入网络同步时间,且在将分布在集群上的请求,经过同步后按时间先后进行排序,从而可以实现根据请求发起时间决定请求处理的先后顺序;通过利用两层负载均衡技术进行请求的分发,从而可以使请求快速高效的分发至各服务实例。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (14)

1.一种弹性云分布式海量请求处理的方法,其特征在于,包括:
步骤一:云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;
步骤二:客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;
步骤三:服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;
在步骤一至步骤三的过程中,云计算管理平台监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。
2.根据权利要求1所述的方法,其特征在于,所述云计算管理平台基于OpenStack、Machine、Swarn、Compose中的一种或多种实现,所述容器为基于Linux的Docker。
3.根据权利要求1所述的方法,其特征在于,所述包含时间的请求是指包含发送时间的时间戳的请求。
4.根据权利要求1所述的方法,其特征在于,所述负载均衡服务器还包括:DNS负载均衡服务器和Nginx负载均衡服务器,以实现两层负载率均衡。
5.根据权利要求1所述的方法,其特征在于,当状态指标超过预设阈值时,通过复制容器创建新容器还包括:当服务实例所在容器的CPU负载率、内存占用量以及请求响应时间中的其中一个或多个超过对应的预设阈值时,通过复制容器创建新容器。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:服务实例处理请求的过程中,利用面向切面编程的技术,记录处理的开始和结束时间,作为对请求响应时间的统计。
7.一种弹性云分布式海量请求处理的装置,其特征在于,包括云计算管理平台、容器、客户端、负载均衡服务器,其中:
云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;
客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;
服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;
所述云计算管理平台还用于监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。
8.根据权利要求7所述的装置,其特征在于,所述云计算管理平台基于OpenStack、Machine、Swarn、Compose中的一种或多种实现,所述容器为基于Linux的Docker。
9.根据权利要求7所述的装置,其特征在于,所述包含时间的请求是指包含发送时间的时间戳的请求。
10.根据权利要求7所述的装置,其特征在于,所述负载均衡服务器还包括:DNS负载均衡服务器和Nginx负载均衡服务器,以实现两层负载率均衡。
11.根据权利要求7所述的装置,其特征在于,所述云计算管理平台还用于:当服务实例所在容器的CPU负载率、内存占用量以及请求响应时间中的其中一个或多个超过对应的预设阈值时,通过复制容器创建新容器。
12.根据权利要求11所述的装置,其特征在于,所述装置还用于:服务实例处理请求的过程中,利用面向切面编程的技术,记录处理的开始和结束时间,作为对请求响应时间的统计。
13.一种弹性云分布式海量请求处理的系统,其特征在于,包括:
存储器和处理器;其中,
所述存储器存储指令;
所述处理器被配置为根据所述指令执行下列步骤:
步骤一:云计算管理平台创建容器,将消息队列集群、ZooKeeper集群、服务实例、数据存储集群分别构建在容器上;
步骤二:客户端将包含时间的请求发送至负载均衡服务器,所述负载均衡服务器将所述请求分发至消息队列集群,经ZooKeeper集群同步后,将所述请求按时间先后进行重排;
步骤三:服务实例从消息队列集群中获取请求并处理,然后将处理结果保存至数据存储集群,并返回客户端;
在步骤一至步骤三的过程中,云计算管理平台监控服务实例所在容器的状态,当状态指标超过预设阈值时,通过复制容器创建新容器,以提高处理速度。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201610905712.7A 2016-10-18 2016-10-18 弹性云分布式海量请求处理的方法、装置及系统 Active CN106453564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610905712.7A CN106453564B (zh) 2016-10-18 2016-10-18 弹性云分布式海量请求处理的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610905712.7A CN106453564B (zh) 2016-10-18 2016-10-18 弹性云分布式海量请求处理的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN106453564A CN106453564A (zh) 2017-02-22
CN106453564B true CN106453564B (zh) 2019-11-05

Family

ID=58176986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610905712.7A Active CN106453564B (zh) 2016-10-18 2016-10-18 弹性云分布式海量请求处理的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106453564B (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107171888A (zh) * 2017-05-26 2017-09-15 安徽四创电子股份有限公司 一种基于cAdvisor的集群性能监测方法
CN107231264A (zh) * 2017-07-25 2017-10-03 北京百度网讯科技有限公司 用于管理云服务器的容量的方法和装置
CN107370816A (zh) * 2017-07-26 2017-11-21 郑州云海信息技术有限公司 一种Web应用的部署方法和装置
CN109428682B (zh) * 2017-08-23 2021-06-29 北京国双科技有限公司 一种消息处理确认方法及装置
CN108040080A (zh) * 2017-11-01 2018-05-15 镇江千月广告传媒有限公司 一种实现能源云服务系统应用模式快速转换的方法
CN109981520A (zh) * 2017-12-27 2019-07-05 厦门朗视信息科技有限公司 一种单台设备实现多个独立ip-pbx系统的方法
CN108418862B (zh) * 2018-01-31 2021-01-22 金蝶软件(中国)有限公司 基于人工智能服务云平台的微服务管理方法和系统
CN108322541B (zh) * 2018-02-09 2021-04-06 杭州顺网科技股份有限公司 一种自适应的分布式体系架构
CN108683720B (zh) * 2018-04-28 2021-12-14 金蝶软件(中国)有限公司 一种容器集群服务配置方法及装置
CN108768768B (zh) * 2018-05-15 2020-12-01 苏州科达科技股份有限公司 用于业务系统的阻塞检测方法、装置及存储介质
CN110489225A (zh) * 2018-05-15 2019-11-22 中国移动通信集团浙江有限公司 一种基于消息队列的服务扩容方法、装置及设备
CN108667938B (zh) * 2018-05-18 2020-12-29 阿里巴巴集团控股有限公司 切换流量的方法、装置及服务器
CN108961080A (zh) * 2018-06-29 2018-12-07 渤海人寿保险股份有限公司 保险业务分布式处理方法、装置、存储介质及终端
CN109194716A (zh) * 2018-08-06 2019-01-11 深圳市华讯方舟太赫兹科技有限公司 一种处理请求的方法、系统、服务器及存储装置
CN108900639B (zh) * 2018-08-10 2021-04-06 乾元云硕科技(深圳)有限公司 集群式云计算系统
CN109190004B (zh) * 2018-08-30 2020-07-07 焦点科技股份有限公司 一种基于特定策略降低搜索复杂度的方法
CN109344032A (zh) * 2018-09-27 2019-02-15 郑州云海信息技术有限公司 一种监控方法和装置
CN109274604B (zh) * 2018-09-29 2021-12-07 创新先进技术有限公司 报文处理方法及系统
CN109560893B (zh) * 2018-11-08 2022-04-15 中国联合网络通信集团有限公司 数据校验方法、装置及服务器
CN109558260B (zh) * 2018-11-20 2022-06-07 北京京东尚科信息技术有限公司 Kubernetes故障排除系统、方法、设备及介质
CN111225004B (zh) * 2018-11-23 2022-11-22 中移(杭州)信息技术有限公司 一种服务器集群的扩容方法、装置和可读介质
CN110049084B (zh) * 2018-12-10 2021-08-24 创新先进技术有限公司 分布式系统的限流方法、装置及设备
CN109995666A (zh) * 2019-04-12 2019-07-09 深圳市元征科技股份有限公司 一种消息传输方法及相关装置
CN110445828B (zh) * 2019-06-14 2023-04-18 平安科技(深圳)有限公司 一种基于Redis的数据分布式处理方法及其相关设备
CN110417856B (zh) * 2019-06-18 2022-04-26 平安科技(深圳)有限公司 多活负载均衡应用的扩容方法、装置、设备及存储介质
CN110324184B (zh) * 2019-06-26 2021-06-25 深圳前海微众银行股份有限公司 服务扩容与迁移方法、装置、系统、设备及可读存储介质
CN112416506A (zh) * 2019-08-21 2021-02-26 中移(苏州)软件技术有限公司 一种容器管理方法、设备及计算机存储介质
CN110782122B (zh) * 2019-09-16 2023-11-24 腾讯大地通途(北京)科技有限公司 数据处理方法、装置及电子设备
CN110995464A (zh) * 2019-11-05 2020-04-10 珠海许继芝电网自动化有限公司 一种集中分布式低压台区监控部署方法及系统
CN112825045B (zh) * 2019-11-20 2022-12-30 上海哔哩哔哩科技有限公司 支付请求处理方法、系统和存储介质
CN111083213B (zh) * 2019-12-09 2022-09-02 苏宁云计算有限公司 一种通信方法及系统
CN111245900B (zh) * 2019-12-31 2021-09-14 北京健康之家科技有限公司 一种分布式消息发送的处理系统及其处理方法
CN113190324B (zh) * 2020-01-14 2024-09-13 阿里巴巴集团控股有限公司 流量分配方法、设备、系统及存储介质
CN113138860B (zh) * 2020-01-17 2023-11-03 中国移动通信集团浙江有限公司 消息队列的管理方法及装置
CN111338821B (zh) * 2020-02-25 2023-04-07 北京思特奇信息技术股份有限公司 一种实现数据负载均衡的方法、系统及电子设备
CN111541646A (zh) * 2020-03-24 2020-08-14 成都国泰网信科技有限公司 一种增强密码机安全服务接入能力的方法
CN111639061B (zh) * 2020-05-26 2023-03-17 深圳壹账通智能科技有限公司 Redis集群中数据管理方法、装置、介质及电子设备
CN111831221B (zh) * 2020-05-26 2022-09-23 武汉安象信息科技有限公司 一种基于云存储的分布式存储方法及系统
CN111818147B (zh) * 2020-06-30 2022-09-02 北京思特奇信息技术股份有限公司 一种实现openstack swift服务自动负载均衡的系统及方法
CN112532687B (zh) * 2020-11-03 2022-07-08 杭州朗澈科技有限公司 kubernetes负载均衡器扩容方法和系统
CN112468558B (zh) * 2020-11-16 2021-08-20 中科三清科技有限公司 基于混合云的请求转发方法、装置、终端及存储介质
CN112398694B (zh) * 2020-11-18 2024-02-20 互联网域名系统北京市工程研究中心有限公司 流量检测系统、方法及存储介质
CN114520808A (zh) * 2020-11-19 2022-05-20 南京亚信软件有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN113055469B (zh) * 2021-03-11 2022-10-11 网宿科技股份有限公司 云容器存储控制方法、系统、电子设备及存储介质
CN113032431B (zh) * 2021-04-23 2022-02-18 焦点科技股份有限公司 一种基于数据库中间件集群的高可用客户端负载均衡方法
CN116048825A (zh) * 2021-10-28 2023-05-02 中移(苏州)软件技术有限公司 容器集群构建方法及系统
CN114598703A (zh) * 2022-01-26 2022-06-07 银盛通信有限公司 一种基于移动转售系统百万级并发订购流量包的方法
CN114615275B (zh) * 2022-03-04 2024-05-10 国家工业信息安全发展研究中心 一种面向云储存分布式负载均衡控制方法及装置
CN114866544B (zh) * 2022-04-02 2023-10-03 中国人民解放军国防科技大学 云边环境中面向cpu异构集群的容器化微服务负载均衡方法
CN116016655A (zh) * 2022-12-28 2023-04-25 唯品会(广州)软件有限公司 基于RabbitMQ的消息处理方法、系统及相关设备
CN117041893B (zh) * 2023-10-10 2024-01-12 江西掌中无限网络科技股份有限公司 一种使用云计算技术发送国际短信的方法与系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185759A (zh) * 2011-04-12 2011-09-14 田文洪 一种满足需求特性的多物理服务器负载均衡的方法及装置
CN102436401A (zh) * 2011-12-16 2012-05-02 北京邮电大学 负载均衡系统及方法
CN104579761A (zh) * 2014-12-24 2015-04-29 西安工程大学 一种基于云计算的nosql集群自动配置系统及自动配置方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9473546B2 (en) * 2013-04-23 2016-10-18 Cisco Technology, Inc. Reducing real time media traffic in a network environment
CN103971185A (zh) * 2014-05-30 2014-08-06 成都德迈安科技有限公司 基于云服务平台对接的线程自动优化调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185759A (zh) * 2011-04-12 2011-09-14 田文洪 一种满足需求特性的多物理服务器负载均衡的方法及装置
CN102436401A (zh) * 2011-12-16 2012-05-02 北京邮电大学 负载均衡系统及方法
CN104579761A (zh) * 2014-12-24 2015-04-29 西安工程大学 一种基于云计算的nosql集群自动配置系统及自动配置方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Docker容器的Web集群设计与实现;刘熙,胡志勇;《电子设计工程》;20160430;第24卷(第8期);第118-119页 *

Also Published As

Publication number Publication date
CN106453564A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN106453564B (zh) 弹性云分布式海量请求处理的方法、装置及系统
US10977245B2 (en) Batch data ingestion
US11983198B2 (en) Multi-cluster warehouse
US10061786B2 (en) Providing a database as a service in a multi-tenant environment
US20190386879A1 (en) Cross layer signaling for network resource scaling
US10013189B1 (en) Storage volume backup management for multi-tenant environments
US20210359924A1 (en) Monitoring a stale data queue for deletion events
US11144570B2 (en) Data ingestion by distributed-computing systems
US10324799B2 (en) Enhanced application write performance
US9699085B2 (en) Periodic advertisements of host capabilities in virtual cloud computing infrastructure
Mihailescu et al. {MixApart}: Decoupled Analytics for Shared Storage Systems
US10972537B2 (en) Protecting in-flight transaction requests
US11442927B1 (en) Storage performance-based distribution of deduplicated data to nodes within a clustered storage environment
US20220232073A1 (en) Multichannel virtual internet protocol address affinity
EP4068725B1 (en) Topology-based load balancing for task allocation
CN110673945A (zh) 分布式任务管理方法和管理系统
US10929466B2 (en) Efficient distributed indexing of clumpy data
US20230244522A1 (en) Detached Global Scheduler
JP6063882B2 (ja) 仮想マシン配置システム及び方法
US11416516B2 (en) Prioritization and quality-of-service control for near-zero-added-latency any point in time virtual replication
US11522799B1 (en) Dynamically managed data traffic workflows
US10541876B2 (en) Inter-connecting logical control planes for state data exchange
KR101681651B1 (ko) 데이터베이스 관리 시스템 및 방법
SADAF et al. Resource-Saving File Management System
JP2014146151A (ja) ノード離脱処理システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant