CN111858033A - 基于集群和多进程的负载均衡方法 - Google Patents

基于集群和多进程的负载均衡方法 Download PDF

Info

Publication number
CN111858033A
CN111858033A CN202010597155.3A CN202010597155A CN111858033A CN 111858033 A CN111858033 A CN 111858033A CN 202010597155 A CN202010597155 A CN 202010597155A CN 111858033 A CN111858033 A CN 111858033A
Authority
CN
China
Prior art keywords
processes
hash
cluster
independent
request
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
Application number
CN202010597155.3A
Other languages
English (en)
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.)
Shanghai Di'an Technology Co ltd
Original Assignee
Shanghai Di'an 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 Shanghai Di'an Technology Co ltd filed Critical Shanghai Di'an Technology Co ltd
Priority to CN202010597155.3A priority Critical patent/CN111858033A/zh
Publication of CN111858033A publication Critical patent/CN111858033A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了基于集群和多进程的负载均衡方法,包括;中心进程和多个独立进程;中心进程包括:建组,每一组内囊括多个独立进程;通知,收到外部请求后向组内各个独立进程分发消息并传递数据;管理,对组内独立进程进行集中管理并将管理数据通知给组内的独立进程;将整个哈希值空间按照筛选方向组织成一个虚拟的圆环;对集群系统中的所有进程编号并映射为多个虚拟进程节点,通过一致性哈希分配系统中的每个进程节点会得到相应哈希值,再将该数值映射到哈希环上;收到外部请求时,根据请求的类型及特征通过哈希算法求得相应数值并定位在哈希环的相应区间,然后选择进程节点作为其服务节点。

Description

基于集群和多进程的负载均衡方法
技术领域
本发明涉及大数据计算处理技术领域,尤其涉及基于集群和多进程的负载均衡方法。
背景技术
随着云计算和大数据的广泛应用,人们对计算机的效率、性能要求也越来越高。但是单台计算机的带宽、CPU等资源都有限,因此需要想要提高计算机性能,可以通过多台计算机互联,即集群。集群可以实现并行计算从而提高计算效率;同时也可以提高系统的可靠性,可以将多个计算机用做备份,在任一计算机故障时维持系统的正常运作;同时集群结构还具有很好的横向拓展性,面临系统业务规模的扩大,可以通过给集群增加计算机节点实现规模拓展。此外,一台计算机的CPU有限,且一个进程每次只能使用一个CPU,为了提高计算机CPU的利用率,可以通过多个进程同时运行。可以并行响应多个请求,每个进程独立,相互不会造成影响;多进程同样具有横向拓展性,通过增加计算机的CPU可以容易扩充性能。
负载均衡是云计算的基础,是集群和多进程的关键环节。由于Internet的快速发展和业务量的不断提高,服务器逐渐被大量数据淹没,但是相对网络技术的发展,服务器的处理速度和内存访问速度的增长远低于网络带宽和应用服务的增长,网络带宽增长的同时带来的用户数量的增长,也使得服务器资源消耗严重,而服务器成为网络瓶颈。为了维持各类应用程序处理负载和网络流量负载,可以通过组建服务器集群,利用均衡技术在多进程间进行业务均衡,让所述负载尽可能平均分摊处理,避免出现因为某一进程由于高负载而出现故障,将请求在概率学上平均分配,实现服务效率最大化。
一般地,多进程属于系统的纵向拓展,通过多核CPU并行处理,实现服务器性能的提升;集群属于横向拓展,通过增加服务器共同承担请求压力。特别地,多进程也存在于多台服务器之间,集群本质上也是实现了更大规模的多进程架构。
例如,申请号:CN201710474382 专利:一种基于一致性哈希算法的亲和性动态负载均衡方法。该专利通过一致性哈希算法解决了保证负载均衡情况下的服务亲和性需求,虽然该专利是基于集群系统,但是其并非采用微服务框架,其不具备松耦合和有界上下文的面向服务架构。
发明内容
本发明提供的一种技术方案是基于集群和多进程的负载均衡方法,解决了松耦合、有界上下文的面向服务的架构布置问题,进一步解决了服务器集群布置及多进程通信负载均衡的问题。
目前服务器的集群主要是通过集群线,借助集群软件来实现服务器间的同步通信。想要实现基于集群和多进程的负载均衡,一方面需要服务器集群、多进程之间建立及时良好通信;另一方面需要一个合适的负载分配方式。
进程是一个独立的资源分配单元,不同进程之间是独立的、没有关联的。简单的程序是不需要考虑进程间通信的,但是面对大量数据和应用程序请求,多台服务器之间要实现负载均衡,系统就需要了解每个独立进程的状态,因此进程不是孤立的,不同进程之间需要进行信息的交互和状态的传递,即进程间通信。进程间通信的主要目的包括但不局限于:数据传输、通知事件、资源共享、进程控制等
而多进程间的直接通信较为复杂,由于一个进程有可能和其他任一进程通信,所以其中可能存在大量繁琐的数据交换,非常占用系统内存甚至导致系统崩溃,因此需要有一种集中管理架构,将每个进程作为一个独立的子系统,同时又可以维护多进程间数据库、配置等信息的同步。
因此本发明采用微服务架构,微服务是一种松耦合、有一定有界上下文的面向服务的架构。它是系统架构上的一种设计,通过将独立的系统拆分成多个小型服务,然后这些小型服务都在各自独立的进程中运行,且服务之间通过一定的协议进行通信协作。同时这些被拆分的小型服务都是围绕着系统中的某些功能进行构建的,并且每个服务都维护自身的数据存储、业务开发、自动化测试案例以及独立部署机制。
微服务将一个中心进程P作为集中消息分发者,负责向每个独立进程分发外部请求,但只会向单一进程传递数据包,因此该架构既能实现消息的分发,又不会大量占用服务器内存。其框架如图1所示,具体地,中心进程P的工作内容包括:建组,囊括多个进程(该进程可以属于同一服务器也可以属于不同服务器);通知,收到外部请求时向组内各个进程分发消息并传递数据;管理,对组内进程实现集中式管理,如增加进程或减少进程都需要通知组内其他所有进程。
微服务可以大大降低进程间的耦合,独立进程间不再进行信息、数据传输,提高信道利用效率,提高整体系统性能;同时微服务的架构也提高了系统的横向拓展性,增加或减少进程都无需大规模改变原有系统拓扑,只需要增加中心进程P与新增进程的链路。
用于资源分配的负载均衡算法很多,包括哈希算法、轮询算法、最少连接算法、响应速度算法等。本发明将基于一致性哈希算法的一种分配方法应用到实际基于集群和多进程的负载均衡问题中。一致性哈希算法是一种分布式算法,通过构造哈希环并以区间为衡量标准来判定应当使用哪个节点来承载和完成服务,且系统管理者在对节点进行增加和删除操作时,无需额外更改分配策略即可保证系统正常运行。
具体地,将整个哈希值空间按照一定方向组织成一个虚拟的圆环;对集群系统中的所有进程编号并映射为多个虚拟进程节点,通过一致性哈希分配系统中的每个进程节点会得到相应哈希值,再将该数值映射到哈希环上;收到外部请求时,根据请求的类型及特征通过哈希算法求得相应数值并定位在哈希环的相应区间,然后按照特定的规则选择适合的进程节点作为其服务节点。
本发明将基于该算法的一种分配方法应用到实际基于集群和多进程的负载均衡问题中。
一致性哈希算法是一种分布式算法,通过将整个哈希值空间按照一定方向组织成一个虚拟的圆环,一致性哈希分配系统中的一个节点会虚拟化为一个由哈希算法得到的数值,再将该数值映射到哈希环上。当请求进入这个系统时,会根据一定的特征来进行哈希运算,以得到的值为依据,将其映射到哈希环上,然后按照特定的规则选择适合的节点作为其服务节点。在解决基于集群和多进程的负载均衡问题中,节点是指进程,如图2所示,具体的实现步骤如下:
1.对集群服务器中的所有进程编号P1,P2…PN;
2.映射虚拟节点,将虚拟节点随机映射到哈希环上(例如P1可映射为100个虚拟节点,分别记作P1_1,P1_2,P1_3…P1_100);
3.接收外部请求,根据请求的类型及特征通过哈希算法求得相应数值并定位在哈希环的相应区间;
4.根据筛选方向,选择该区间的初始进程为服务节点,并向中心进程汇报日志,在请求对象中加入当前处理进程的信息;
5.当服务器整体负载过高,需要进行扩容时,可加入新进程PN+1,接着进行步骤2,将相应虚拟节点PN+1_1,P N+1_2,P N+1_3…P N+1_100随机映射到哈希环上;
6.当服务器整体负载过低,需要移除进程Pi时,需同时移除哈希环上相应的虚拟节点Pi_1,Pi_2,Pi_3…Pi_100。
特别地,映射多个虚拟节点的目的是为了保证每个进程能承担的负载在概率学上尽可能均衡,解决进程较少时负载倾斜的问题;且在不考虑内存和效率的情况下,虚拟节点越多负载被均匀分布的概率越高。
筛选方向可以自定义是顺时针或逆时针。
哈希算法可以将请求转化为一串数值长度相等的哈希值,哈希值的数值位数可根据请求的类型及特征多样性、进程和虚拟节点数量等因素来确定。
本发明的优点是:该系统下每个进程都可以承担一定的处理负载,并且可以实现处理负载在进程之间的动态分配,以实现负载均衡。一方面该系统具有可拓展性:当请求增长时,系统可以通过增加进程(增加服务器)来满足需求,且进程之间相互独立,不会影响运行进程降低服务质量;另一方面该系统具有高可靠性:单个进程或者单台服务器故障,由负载均衡(设备/算法)将后续请求转向其他进程(或服务器),不影响已有进程的服务。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为基于进程的微服务框架;
图2为基于虚拟进程节点的一致性哈希算法。
具体实施方式
实施例1
微服务将一个中心进程P作为集中消息分发者,负责向每个独立进程分发外部请求,但只会向单一进程传递数据包,因此该架构既能实现消息的分发,又不会大量占用服务器内存。其框架如图1所示,具体地,中心进程P的工作内容包括:建组,囊括多个进程(该进程可以属于同一服务器也可以属于不同服务器);通知,收到外部请求时向组内各个进程分发消息并传递数据;管理,对组内进程实现集中式管理,如增加进程或减少进程都需要通知组内其他所有进程。
实施例2:
一致性哈希算法(Consistent Hash)是最早由David Karger等人提出为解决互联网热点问题而提出的一种算法,该算法通过构造哈希环并以区间为衡量标准来判定应当使用哪个节点来承载和完成服务,且系统管理者在对节点进行增加和删除操作时,无需额外更改分配策略保证系统正常运行。
一致性哈希算法是一种分布式算法,通过将整个哈希值空间按照一定方向组织成一个虚拟的圆环,一致性哈希分配系统中的一个节点会虚拟化为一个由哈希算法得到的数值,再将该数值映射到哈希环上。
当请求进入这个系统时,会根据一定的特征来进行哈希运算,以得到的值为依据,将其映射到哈希环上,然后按照特定的规则选择适合的节点作为其服务节点。在解决基于集群和多进程的负载均衡问题中,节点是指进程,如图2所示,具体的实现步骤如下:
1.对集群服务器中的所有进程编号P1,P2…PN;
2.映射虚拟节点,将虚拟节点随机映射到哈希环上(例如P1可映射为100个虚拟节点,分别记作P1_1,P1_2,P1_3…P1_100);
3.接收外部请求,根据请求的类型及特征通过哈希算法求得相应数值并定位在哈希环的相应区间;
4.根据筛选方向,选择该区间的初始进程为服务节点,并向中心进程汇报日志,在请求对象中加入当前处理进程的信息;
5.当服务器整体负载过高,需要进行扩容时,可加入新进程PN+1,接着进行步骤2,将相应虚拟节点PN+1_1,P N+1_2,P N+1_3…P N+1_100随机映射到哈希环上;
6.当服务器整体负载过低,需要移除进程Pi时,需同时移除哈希环上相应的虚拟节点Pi_1,Pi_2,Pi_3…Pi_100。
特别地,映射多个虚拟节点的目的是为了保证每个进程能承担的负载在概率学上尽可能均衡,解决进程较少时负载倾斜的问题;且在不考虑内存和效率的情况下,虚拟节点越多负载被均匀分布的概率越高。
筛选方向可以自定义是顺时针或逆时针。
哈希算法可以将请求转化为一串数值长度相等的哈希值,哈希值的数值位数可根据请求的类型及特征多样性、进程和虚拟节点数量等因素来确定。
基于多进程的一致性哈希算法保证尽可能均衡地将请求分布到所有进程中,使得每个进程都得到充分利用,提高了系统的效率和性能;由于基于集群和多进程的系统是一种分布式系统,所以进程数量可能经常变化,当进程数量发生改变时,一致性哈希算法下只有部分进程相关负载会失效,体现了系统的可拓展性并且一定程度上提升了系统的可靠性。
本发明实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明的。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明的所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (3)

1.基于集群和多进程的负载均衡方法,包括;中心进程和多个独立进程;其特征在于:所述中心进程包括:
建组,每一组内囊括多个独立进程;
通知,收到外部请求后向组内各个独立进程分发消息并传递数据;
管理,对组内独立进程进行集中管理并将管理数据通知给组内的独立进程;
将整个哈希值空间按照筛选方向组织成一个虚拟的圆环;对集群系统中的所有进程编号并映射为多个虚拟进程节点,通过一致性哈希分配系统中的每个进程节点会得到相应哈希值,再将该数值映射到哈希环上;收到外部请求时,根据请求的类型及特征通过哈希算法求得相应数值并定位在哈希环的相应区间,然后选择进程节点作为其服务节点。
2.根据权利要求1所述的基于集群和多进程的负载均衡方法,其特征在于:步骤包括:
对集群服务器中的所有进程编号;
映射虚拟节点,将虚拟节点随机映射到哈希环上;
接收外部请求,根据请求的类型及特征通过哈希算法求得相应数值并定位在哈希环的相应区间;
根据筛选方向,选择该区间的初始进程为服务节点,并向中心进程汇报日志,在请求对象中加入当前处理进程的信息;
当服务器整体负载过高,需要进行扩容时,加入新进程,接着将相应虚拟节点随机映射到哈希环上;
当服务器整体负载过低,需要移除进程时,需同时移除哈希环上相应的虚拟节点。
3.根据权利要求2所述的基于集群和多进程的负载均衡方法,其特征在于:所述筛选方向可以自定义是顺时针或逆时针。
CN202010597155.3A 2020-06-28 2020-06-28 基于集群和多进程的负载均衡方法 Pending CN111858033A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010597155.3A CN111858033A (zh) 2020-06-28 2020-06-28 基于集群和多进程的负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010597155.3A CN111858033A (zh) 2020-06-28 2020-06-28 基于集群和多进程的负载均衡方法

Publications (1)

Publication Number Publication Date
CN111858033A true CN111858033A (zh) 2020-10-30

Family

ID=72988557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010597155.3A Pending CN111858033A (zh) 2020-06-28 2020-06-28 基于集群和多进程的负载均衡方法

Country Status (1)

Country Link
CN (1) CN111858033A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112698949A (zh) * 2020-12-31 2021-04-23 珠海派诺科技股份有限公司 一种多源异构柔性均衡采集方法、电子设备、存储介质
CN112817752A (zh) * 2021-01-21 2021-05-18 西安交通大学 一种分布式数据库动态负载均衡方法
CN113377510A (zh) * 2021-06-08 2021-09-10 武汉理工大学 无服务器计算环境中基于一致性哈希的缓存包调度优化算法
CN114158093A (zh) * 2021-12-01 2022-03-08 深圳市领创星通科技有限公司 通信方法、网元、通信系统及存储介质
CN114666338A (zh) * 2022-05-19 2022-06-24 杭州指令集智能科技有限公司 一种基于消息的多实例负载均衡方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506605A (zh) * 2016-10-14 2017-03-15 华南理工大学 一种基于微服务架构的SaaS应用构建方法
CN108551474A (zh) * 2018-03-26 2018-09-18 南京邮电大学 一种服务器集群的负载均衡方法
CN111221653A (zh) * 2020-01-06 2020-06-02 中国银联股份有限公司 一种服务处理方法、装置及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506605A (zh) * 2016-10-14 2017-03-15 华南理工大学 一种基于微服务架构的SaaS应用构建方法
CN108551474A (zh) * 2018-03-26 2018-09-18 南京邮电大学 一种服务器集群的负载均衡方法
CN111221653A (zh) * 2020-01-06 2020-06-02 中国银联股份有限公司 一种服务处理方法、装置及计算机可读存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112698949A (zh) * 2020-12-31 2021-04-23 珠海派诺科技股份有限公司 一种多源异构柔性均衡采集方法、电子设备、存储介质
CN112817752A (zh) * 2021-01-21 2021-05-18 西安交通大学 一种分布式数据库动态负载均衡方法
CN112817752B (zh) * 2021-01-21 2023-12-19 西安交通大学 一种分布式数据库动态负载均衡方法
CN113377510A (zh) * 2021-06-08 2021-09-10 武汉理工大学 无服务器计算环境中基于一致性哈希的缓存包调度优化算法
CN113377510B (zh) * 2021-06-08 2023-10-24 武汉理工大学 无服务器计算环境中基于一致性哈希的缓存包调度优化算法
CN114158093A (zh) * 2021-12-01 2022-03-08 深圳市领创星通科技有限公司 通信方法、网元、通信系统及存储介质
CN114158093B (zh) * 2021-12-01 2022-09-20 深圳市领创星通科技有限公司 通信方法、网元、通信系统及存储介质
CN114666338A (zh) * 2022-05-19 2022-06-24 杭州指令集智能科技有限公司 一种基于消息的多实例负载均衡方法和系统

Similar Documents

Publication Publication Date Title
CN111858033A (zh) 基于集群和多进程的负载均衡方法
CN101729412B (zh) 地理信息服务的分布式层次集群方法和系统
US8032780B2 (en) Virtualization based high availability cluster system and method for managing failure in virtualization based high availability cluster system
CN102209087A (zh) 在具有存储网络的数据中心进行MapReduce数据传输的方法和系统
CN108712464A (zh) 一种面向集群微服务高可用的实现方法
Tsai et al. Two-tier multi-tenancy scaling and load balancing
CN101778002B (zh) 一种大规模集群系统及其构建方法
CN103649916A (zh) 虚拟机在数据中心中的分配
WO2018121201A1 (zh) 分布式集群服务结构及节点协同方法和装置、终端及介质
CN110944044B (zh) 一种分布式api网关系统及其实现方法
CN108282526B (zh) 双集群间服务器动态分配方法及系统
CN103428008A (zh) 面向多用户群的大数据分发策略
CN103441918A (zh) 一种自组织集群服务器系统及其自组织方法
CN111240822B (zh) 任务调度方法、装置、系统及存储介质
CN113377866A (zh) 一种虚拟化数据库代理服务的负载均衡方法及装置
CN114338670B (zh) 一种边缘云平台和具有其的网联交通三级云控平台
Islam et al. Tree-based consistency approach for cloud databases
CN103140851A (zh) 包括中间件机环境的系统
CN112631756A (zh) 一种应用于航天测控软件的分布式调控方法及装置
CN114629782B (zh) 一种多个云平台间抗毁接替方法
CN112822062A (zh) 一种用于桌面云服务平台的管理方法
CN116089079A (zh) 一种基于大数据的计算机资源分配管理系统及方法
US20240176762A1 (en) Geographically dispersed hybrid cloud cluster
CN115374949A (zh) 分布式量子计算系统和资源管理方法
CN115250227A (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: 20201030