CN110837418A - 一种基于容器的高并发web系统及实现方法 - Google Patents
一种基于容器的高并发web系统及实现方法 Download PDFInfo
- Publication number
- CN110837418A CN110837418A CN201911074417.1A CN201911074417A CN110837418A CN 110837418 A CN110837418 A CN 110837418A CN 201911074417 A CN201911074417 A CN 201911074417A CN 110837418 A CN110837418 A CN 110837418A
- Authority
- CN
- China
- Prior art keywords
- container
- web system
- kubernets
- concurrency
- cluster
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明特别涉及一种基于容器的高并发web系统及实现方法。该基于容器的高并发web系统,基于Docker以及Kubernetes容器技术,由负载均衡器和Kubernetes容器集群组成;其中,负载均衡器载负责根据特定负载均衡策略来分配转发高并发流量至Kubernetes容器集群中。该基于容器的高并发web系统及实现方法,从弹性伸缩、负载均衡以及资源调度等方面设计实现容器化高并发web系统,解决了高并发web系统服务拆分、服务集群流量负载、集群弹性伸缩以及资源调度等问题。
Description
技术领域
本发明涉及Docker容器和Kubernetes容器技术领域,特别涉及一种基于容器的高并发web系统及实现方法。
背景技术
在互联网飞速发展的时代,各大IT公司正在进行激烈的竞争,业务模式也在不断的扩张,这种现状使得目前各大公司的架构系统面临着极大的挑战。一方面购物和社交等web网站的规模越来越大,另一方面节日促销活动和节假日购票等活动峰值流量的冲击都对web系统网站的并发性能提出了更高的要求。
web架构的发展也是由简到繁,从单机一体式MVC,RPC,SOA,一直到微服务。随着敏捷开发、持续交付、DevOps理论的发展和实践,以及基于Docker等轻量级容器部署应用和服务的成熟,微服务架构开始流行,逐渐成为应用架构的未来演进方向。通过服务的原子化拆分,以及微服务的独立打包、部署和升级运营成本也将大幅下降。然而随着Kubernetes容器集群的日渐增多,对于容器集群的管理也日渐复杂,目前一般采用Kubernetes容器管理编排大量容器集群,从而实现容器集群的高效管理。
Docker是一个开源的技术应用容器引擎,利用Docker技术可以简化配置,它将运行环境和配置放在代码中然后部署,降低了硬件要求和应用环境之间的耦合度。最重要的是Docker技术提高了开发效率,我们可以快速搭建开发环境,并让开发环境尽量贴近生产环境,并且Docker可以轻易的让十几个服务在Docker中跑起来。
Kubernetes,简称K8s,是用8代替8个字符"ubernete"而成的缩写;是基于Go语言的容器集群管理系统,它支持自动化部署、大规模可伸缩、应用容器化管理。主要实现对于容器的编排管理功能。它具备完善的集群管理能力,内建智能负载均衡器、强大的故障发现和自我修复能力,可扩展的资源自动调度机制以及多粒度的资源配额管理能力。
Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
近些年来,Kubernetes作为先进的容器编排系统,得到了快速的发展,并在云计算云服务领域得到了广泛的应用。
为了通过容器虚拟化技术更好的解决高并发web系统服务拆分、服务集群流量负载、集群弹性伸缩以及资源调度等问题,本发明提出了一种基于容器的高并发web系统及实现方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于容器的高并发web系统及实现方法。
本发明是通过如下技术方案实现的:
一种基于容器的高并发web系统,其特征在于:基于Docker以及Kubernetes容器技术,由负载均衡器和Kubernetes容器集群组成;其中,负载均衡器载负责根据特定负载均衡策略来分配转发高并发流量至Kubernetes容器集群中。
所述负载均衡器选用Nginx,用于将用户的所有HTTP(Hyper Text TransportProtocol,超文本传输协议)请求均衡的分配到Kubernetes容器集群的每一个节点上,进而充分发挥所有节点的性能。
Nginx是一个强大的Web服务器软件,具有高性能、高并发性和低内存占用的特点。
所述Nginx的负载均衡策略分为内置策略和扩展策略两大类,根据业务不同自行选择负载均衡策略。
所述Kubernetes容器集群的Ingress组件控制器以Pod的形式运行。
本发明基于容器的高并发web系统的实现方法,其特征在于,包括以下部分:
第一,通过Kubernetes容器集群的Ingress组件实现对于高并发流量的转发与均衡;
第二,基于负载均衡器预测的弹性伸缩策略,使Kubernetes容器集群在流量变化时也实现相应的动态弹性伸缩;
第三,通过Kubernetes的调度器和调度算法提高Kubernetes容器集群的可用性以及web系统的资源利用率和均衡率。
所述负载均衡器将流量转发到Kubernetes容器集群的不同节点,Ingress组件接收HTTP请求,根据Ingress组件定义的规则寻找后端服务(backend service),再通过服务(service)找到后端的pod提供服务。
实时监控API服务器(Application Programming Interface server,应用程序编程接口服务器)的Ingress组件接口后端的后端服务(backend service),如果服务(service)发生变化,则Ingress组件控制器自动更新其转发规则。
当流量并发量很大的时候,通过Kubernetes容器集群水平扩展功能来增加pod的数量,以支撑服务。
所述Kubernetes容器集群水平扩展(Horizontal Pod Autoscaler,HPA)功能,是指根据CPU使用率或应用自定义Metrics监控应用自动扩展pod数量。
本发明的有益效果是:该基于容器的高并发web系统及实现方法,从弹性伸缩、负载均衡以及资源调度等方面设计实现容器化高并发web系统,解决了高并发web系统服务拆分、服务集群流量负载、集群弹性伸缩以及资源调度等问题。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该基于容器的高并发web系统,基于Docker以及Kubernetes容器技术,由负载均衡器和Kubernetes容器集群组成;其中,负载均衡器载负责根据特定负载均衡策略来分配转发高并发流量至Kubernetes容器集群中。
所述负载均衡器选用Nginx,用于将用户的所有HTTP(Hyper Text TransportProtocol,超文本传输协议)请求均衡的分配到Kubernetes容器集群的每一个节点上,进而充分发挥所有节点的性能。
Nginx是一个强大的Web服务器软件,具有高性能、高并发性和低内存占用的特点。
所述Nginx的负载均衡策略分为内置策略和扩展策略两大类,根据业务不同自行选择负载均衡策略。
所述Kubernetes容器集群的Ingress组件控制器以Pod的形式运行。
该基于容器的高并发web系统的实现方法,包括以下部分:
第一,通过Kubernetes容器集群的Ingress组件实现对于高并发流量的转发与均衡;
第二,基于负载均衡器预测的弹性伸缩策略,使Kubernetes容器集群在流量变化时也实现相应的动态弹性伸缩;
第三,通过Kubernetes的调度器和调度算法提高Kubernetes容器集群的可用性以及web系统的资源利用率和均衡率。
所述负载均衡器将流量转发到Kubernetes容器集群的不同节点,Ingress组件接收HTTP请求,根据Ingress组件定义的规则寻找后端服务(backend service),再通过服务(service)找到后端的pod提供服务。
实时监控API服务器(Application Programming Interface server,应用程序编程接口服务器)的Ingress组件接口后端的后端服务(backend service),如果服务(service)发生变化,则Ingress组件控制器自动更新其转发规则。
当流量并发量很大的时候,通过Kubernetes容器集群水平扩展功能来增加pod的数量,以支撑服务。
所述Kubernetes容器集群水平扩展(Horizontal Pod Autoscaler,HPA)功能,是指根据CPU使用率或应用自定义Metrics监控应用自动扩展pod数量。
与现有技术相比,该基于容器的高并发web系统及实现方法,具有以下特点:
(1)基于Nginx动态负载均衡策略使用Nginx来作为负载均衡器,kubernetes容器集群自身提供Ingress组件来实现后端pod的动态负载均衡,避免引进外来负载均衡器已增加增加系统的复杂度和稳定性;
(2)解决了高并发web系统服务拆分、服务集群流量负载、集群弹性伸缩以及资源调度等问题。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (9)
1.一种基于容器的高并发web系统,其特征在于:基于Docker以及Kubernetes容器技术,由负载均衡器和Kubernetes容器集群组成;其中,负载均衡器载负责根据特定负载均衡策略来分配转发高并发流量至Kubernetes容器集群中。
2.根据权利要求1所述的基于容器的高并发web系统,其特征在于:所述负载均衡器选用Nginx,用于将用户的所有HTTP请求均衡的分配到Kubernetes容器集群的每一个节点上,进而充分发挥所有节点的性能。
3.根据权利要求2所述的基于容器的高并发web系统,其特征在于:所述Nginx的负载均衡策略分为内置策略和扩展策略两大类,根据业务不同自行选择负载均衡策略。
4.根据权利要求1所述的基于容器的高并发web系统,其特征在于:所述Kubernetes容器集群的Ingress组件控制器以Pod的形式运行。
5.根据权利要求1~4所述的基于容器的高并发web系统的实现方法,其特征在于,包括以下部分:
第一,通过Kubernetes容器集群的Ingress组件实现对于高并发流量的转发与均衡;
第二,基于负载均衡器预测的弹性伸缩策略,使Kubernetes容器集群在流量变化时也实现相应的动态弹性伸缩;
第三,通过Kubernetes的调度器和调度算法提高Kubernetes容器集群的可用性以及web系统的资源利用率和均衡率。
6.根据权利要求5所述的基于容器的高并发web系统的实现方法,其特征在于:所述负载均衡器将流量转发到Kubernetes容器集群的不同节点,Ingress组件接收HTTP请求,根据Ingress组件定义的规则寻找后端服务,再通过服务找到后端的pod提供服务。
7.根据权利要求5所述的基于容器的高并发web系统的实现方法,其特征在于:实时监控API服务器的Ingress组件接口后端的后端服务,如果服务发生变化,则Ingress组件控制器自动更新其转发规则。
8.根据权利要求5所述的基于容器的高并发web系统的实现方法,其特征在于:当流量并发量很大的时候,通过Kubernetes容器集群水平扩展功能来增加pod的数量,以支撑服务。
9.根据权利要求8所述的基于容器的高并发web系统的实现方法,其特征在于:所述Kubernetes容器集群水平扩展功能,是指根据CPU使用率或应用自定义Metrics监控应用自动扩展pod数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911074417.1A CN110837418A (zh) | 2019-11-06 | 2019-11-06 | 一种基于容器的高并发web系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911074417.1A CN110837418A (zh) | 2019-11-06 | 2019-11-06 | 一种基于容器的高并发web系统及实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110837418A true CN110837418A (zh) | 2020-02-25 |
Family
ID=69576420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911074417.1A Pending CN110837418A (zh) | 2019-11-06 | 2019-11-06 | 一种基于容器的高并发web系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837418A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367662A (zh) * | 2020-02-26 | 2020-07-03 | 普信恒业科技发展(北京)有限公司 | 一种负载均衡方法、装置及系统 |
CN111666155A (zh) * | 2020-06-02 | 2020-09-15 | 中国建设银行股份有限公司 | 一种资源配置文件管理方法、装置、设备及介质 |
CN111835927A (zh) * | 2020-07-21 | 2020-10-27 | 上海茂声智能科技有限公司 | 提升电话机器人高并发性能和稳定性的系统及方法 |
CN111897641A (zh) * | 2020-08-03 | 2020-11-06 | 海信电子科技(武汉)有限公司 | 微服务监控调度方法及显示设备 |
CN112291104A (zh) * | 2020-12-30 | 2021-01-29 | 望海康信(北京)科技股份公司 | 微服务自动伸缩系统、方法及相应设备和存储介质 |
CN113515363A (zh) * | 2021-08-10 | 2021-10-19 | 中国人民解放军61646部队 | 面向异型任务高并发的多层次数据处理系统动态调度平台 |
CN114301922A (zh) * | 2020-10-07 | 2022-04-08 | 智捷科技股份有限公司 | 一种具延迟感知负载平衡的反向代理方法和存储设备 |
CN114461303A (zh) * | 2022-02-10 | 2022-05-10 | 京东科技信息技术有限公司 | 一种访问集群内部服务的方法和装置 |
WO2022206231A1 (zh) * | 2021-03-30 | 2022-10-06 | 阿里巴巴(中国)有限公司 | Kubernetes集群的负载均衡的处理方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106888254A (zh) * | 2017-01-20 | 2017-06-23 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
CN107426034A (zh) * | 2017-08-18 | 2017-12-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN108388472A (zh) * | 2018-03-01 | 2018-08-10 | 吉林大学 | 一种基于Docker集群的弹性任务调度系统及方法 |
-
2019
- 2019-11-06 CN CN201911074417.1A patent/CN110837418A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106888254A (zh) * | 2017-01-20 | 2017-06-23 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
CN107426034A (zh) * | 2017-08-18 | 2017-12-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN108388472A (zh) * | 2018-03-01 | 2018-08-10 | 吉林大学 | 一种基于Docker集群的弹性任务调度系统及方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367662A (zh) * | 2020-02-26 | 2020-07-03 | 普信恒业科技发展(北京)有限公司 | 一种负载均衡方法、装置及系统 |
CN111666155A (zh) * | 2020-06-02 | 2020-09-15 | 中国建设银行股份有限公司 | 一种资源配置文件管理方法、装置、设备及介质 |
CN111835927A (zh) * | 2020-07-21 | 2020-10-27 | 上海茂声智能科技有限公司 | 提升电话机器人高并发性能和稳定性的系统及方法 |
CN111835927B (zh) * | 2020-07-21 | 2022-04-29 | 上海茂声智能科技有限公司 | 提升电话机器人高并发性能和稳定性的系统及方法 |
CN111897641A (zh) * | 2020-08-03 | 2020-11-06 | 海信电子科技(武汉)有限公司 | 微服务监控调度方法及显示设备 |
CN111897641B (zh) * | 2020-08-03 | 2023-07-28 | 海信电子科技(武汉)有限公司 | 微服务监控调度方法及显示设备 |
TWI766387B (zh) * | 2020-10-07 | 2022-06-01 | 智捷科技股份有限公司 | 一種具延遲感知負載平衡的反向代理方法和存儲裝置 |
CN114301922A (zh) * | 2020-10-07 | 2022-04-08 | 智捷科技股份有限公司 | 一种具延迟感知负载平衡的反向代理方法和存储设备 |
CN112291104A (zh) * | 2020-12-30 | 2021-01-29 | 望海康信(北京)科技股份公司 | 微服务自动伸缩系统、方法及相应设备和存储介质 |
WO2022206231A1 (zh) * | 2021-03-30 | 2022-10-06 | 阿里巴巴(中国)有限公司 | Kubernetes集群的负载均衡的处理方法、装置及存储介质 |
CN113515363B (zh) * | 2021-08-10 | 2022-02-15 | 中国人民解放军61646部队 | 面向异型任务高并发的多层次数据处理系统动态调度平台 |
CN113515363A (zh) * | 2021-08-10 | 2021-10-19 | 中国人民解放军61646部队 | 面向异型任务高并发的多层次数据处理系统动态调度平台 |
CN114461303A (zh) * | 2022-02-10 | 2022-05-10 | 京东科技信息技术有限公司 | 一种访问集群内部服务的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837418A (zh) | 一种基于容器的高并发web系统及实现方法 | |
Taherizadeh et al. | Key influencing factors of the Kubernetes auto-scaler for computing-intensive microservice-native cloud-based applications | |
US10303450B2 (en) | Systems and methods for a policy-driven orchestration of deployment of distributed applications | |
US10891168B2 (en) | Automatically scaling up physical resources in a computing infrastructure | |
US20190377604A1 (en) | Scalable function as a service platform | |
Zhang et al. | Cloud computing: state-of-the-art and research challenges | |
US8887158B2 (en) | Dynamic cluster expansion through virtualization-based live cloning | |
CN110661842B (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
US20200012510A1 (en) | Methods and apparatuses for multi-tiered virtualized network function scaling | |
CN104679594B (zh) | 一种中间件分布式计算方法 | |
Nithya et al. | SDCF: A software-defined cyber foraging framework for cloudlet environment | |
EP3234774A1 (en) | Elasticity for highly availabile applications | |
US10514957B2 (en) | Network service infrastructure management system and method of operation | |
Joshi et al. | Load balancing in cloud computing: Challenges & issues | |
CN102833310A (zh) | 一种基于虚拟化技术的工作流引擎集群系统 | |
Rejiba et al. | Custom scheduling in Kubernetes: A survey on common problems and solution approaches | |
Wadhwa et al. | Green cloud computing-A greener approach to IT | |
CN112099917B (zh) | 调控系统容器化应用运行管理方法、系统、设备及介质 | |
Chien et al. | An efficient virtual machine migration algorithm based on minimization of migration in cloud computing | |
Sasidhar et al. | Load Balancing Techniques for Efficient Traffic Management in Cloud Environment. | |
Chen et al. | Scalable IoT/M2M platforms based on kubernetes-enabled NFV MANO architecture | |
Bartolomeo et al. | Oakestra: A lightweight hierarchical orchestration framework for edge computing | |
Kecskemeti et al. | Automatic service deployment using virtualisation | |
Jayanetti et al. | J-OPT: A joint host and network optimization algorithm for energy-efficient workflow scheduling in cloud data centers | |
CN104683480A (zh) | 一种基于应用的分布式计算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200225 |