本申请公开了一种主从架构服务器及其处理业务的方法和处理业务的系统,其中,主从架构服务器处理业务的方法包括:主从架构服务器的父进程解析并加载配置文件,配置文件中包含多个端口及与每个端口一一对应的进程编号;父进程为创建的子进程分配不同的进程编号;子进程根据自己的进程编号从父进程继承对应的资源,资源包括端口;以及子进程监听对应的端口以接收来自客户端的业务请求,并对业务请求进行处理,然后向客户端返回业务应答。本申请实施例,通过让不同的子进程分别监听不同端口的读写事件,可以保证一个端口下的业务请求完全交由一个子进程处理,子进程间完全独立不再相互竞争业务请求,从而避免发生惊群现象。
【技术实现步骤摘要】
本申请涉及计算机
,尤其涉及一种主从架构服务器及其处理业务的方法 和处理业务的系统。
技术介绍
[000引目前,很多服务器都有多核中央处理单元仰U),并支持对称多处理(Symmetric Multi-Processing,SMP)架构。为充分利用CPU资源,很多高性能服务器均采用主从架构, 主从架构的示意图如图1所示,先由父进程解析并加载配置文件、创建套接字并绑定监听 端口,然后创建出多个子进程,每个子进程分别继承父进程的资源。子进程的个数和CPU的 核数相同,为避免子进程在CPU之间迁移,还可W将子进程和特定的CPU绑定。 在主从架构下,主进程又可W称为监控进程,子进程又可W称为工作进程。每个子 进程的作用完全相同,当客户端发起业务请求时,子进程通过竞争的方式来获取该业务请 求的处理权。 W上主从架构存在W下几个问题: (1)多个工作进程同时监听同一个端口,当有请求发往某个端口时,多个工作进程 会去竞争该请求的处理权,而最终只有一个进程才能竞争成功,送就引起棍群现象; (2)在真实的生产环境,尤其是在虚拟机环境下,有些进程竞争请求成功的概率高 于其他进程,造成部分进程接入大量请求而过度繁忙,其他进程得不到请求而过度空闲,进 程之间的负载不平衡,不能充分发挥SMP架构的优势; (3)当工作进程存在状态时,即一些请求只有被特定的工作进程接收才能被正确 处理,在送种情况下,如果送些请求被其他进程接收,接收请求的进程只能向其他进程寻求 帮助,送样会增加通信成本。例如,每个工作进程单独维护自己的缓存,缓存中存放了用户 的个人信息,如果A用户的个人信息在B进程的缓存中,当A发起的请求被C进程接收,由 于C进程没有A用户的个人信息,所W无法直接给A用户一个正确的应答。此时只能通过 进程通信的方式向B进程索取,送个行为既增加了进程B和C的执行复杂度,也增加了对A 请求的响应时间; (4)工作进程的配置统一从父进程继承下来,配置都是一样的,无法微调; (5)为解决惊群现象、负载不平衡和不必要的进程间通信等问题,不可避免地引入 进程锁,多个进程通过进程锁解决进程间的同步和互斥问题,但进程锁的引入同样会增加 进程的执行复杂度、降低服务器的性能。
技术实现思路
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请的 一个目的在于提出一种具有避免引起棍群现象的主从架构服务器及其处理业务的方法和 处理业务的系统。 根据本申请实施例的主从架构服务器处理业务的方法,包括:主从架构服务器的 父进程解析并加载配置文件,配置文件中包含多个端口及与每个端口一一对应的进程编 号;父进程为创建的子进程分配不同的进程编号;子进程根据自己的进程编号从父进程继 承对应的资源,资源包括端口;W及子进程监听对应的端口W接收来自客户端的业务请求, 并对业务请求进行处理,然后向客户端返回业务应答。 根据本申请实施例的主从架构服务器处理业务的方法,通过让不同的子进程分别 监听不同端口的读写事件,可W保证一个端口下的业务请求完全交由一个子进程处理,子 进程间完全独立不再相互竞争业务请求,从而避免发生棍群现象。根据本申请实施例的主从架构服务器,包括;解析加载模块,用于主从架构服务器 的父进程解析并加载配置文件,配置文件中包含多个端口及与每个端口一一对应的进程编 号;分配模块,用于父进程为创建的子进程分配不同的进程编号;继承模块,用于子进程根 据自己的进程编号从父进程继承对应的资源,资源包括端口;W及处理模块,用于子进程监 听对应的端口W接收来自客户端的业务请求,并对业务请求进行处理,然后向客户端返回 业务应答。根据本申请实施例的主从架构服务器,父进程通过解析加载模块41解析并加载 配置文件,通过分配模块为创建的子进程分配不同的进程编号,子进程通过继承模块从父 进程继承对应的资源,通过处理模块监听对应的端口W接收来自客户端的业务请求,并对 上述业务请求进行处理,然后向上述客户端返回业务应答,使得多个子进程监听自己的端 口,避免了棍群现象的发生,提高了业务处理效率。根据本申请实施例的处理业务的系统,包括上述主从架构服务器和客户端,其中:客户端,用于根据获取到的地址信息,向对应的主从架构服务器发送业务请求。根据本申请实施例的处理业务的系统,通过让不同的子进程分别监听不同端口的 读写事件,可W保证一个端口下的业务请求完全交由一个子进程处理,子进程间完全独立 不再相互竞争业务请求,从而避免发生棍群现象。【附图说明】 图1是传统主从架构服务器中父子进程的关系示意图。 图2是根据本申请一个实施例的主从架构服务器处理业务的方法的流程图。 图3是根据本申请一个实施例的实现进程间负载均衡的信令流程图。 图4是根据本申请一个实施例的主从架构服务器的结构示意图。 图5是根据本申请一个实施例的处理业务的系统的结构示意图。【具体实施方式】 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。 下面参考附图描述本申请实施例的主从架构服务器处理业务的方法、主从架构服 务器和处理业务的系统。 图2是根据本申请一个实施例的主从架构服务器处理业务的方法的流程图,其 中,主从架构服务器包括一个父进程和至少一个子进程,父进程监控子进程的运行状态,子 进程负责处理实际业务,通过开启多个子进程可W实现对SMP架构下多核CPU的充分利用。 如图2所示,该主从架构服务器处理业务的方法包括: S201,主从架构服务器的父进程解析并加载配置文件,配置文件中包含多个端口 及与每个端口一一对应的进程编号。 在该实施例中,配置文件可W包括很多配置信息,例如可W包括一一对应的端口 及进程编号,如表1所示。[002引表1端口及进程编号的对应关系另外,由于各端口的请求流量不尽相同,或者各子进程的状态存在差异性,导致各 子进程间的配置参数需要微调,因此,配置文件中还可W包括其他配置参数,且该配置参数 具有多个值,每个值与一个进程编号对应,即每个子进程使用和自己进程编号匹配的配置 参数值。 例如,同时开启了80和8080端口W提供两种不同的业务,假定向80端口发起的 业务请求数会超过向8080端口发起的业务请求数,可W将为80端口提供服务的子进程的 缓存空间设置得更大。为了实现送个功能,也可W为"缓存空间"送个配置参数指定对应的 进程编号,即子进程只采用和自己的进程编号匹配的配置参数值。 由此可见,通过有针对性地设置配置参数,可W实现对不同子进程的适配。 S202,父进程为创建的子进程分配不同的进程编号。 在该实施例中,父进程维护了一个数组和一个全局变量,数组的长度等于子进程 的个数,全局变量的初始值为1。父进程每新建一个子进程,就从数组中顺次取出第一个当前第1页1 2 3 4 本文档来自技高网...
【技术保护点】
一种主从架构服务器处理业务的方法,其特征在于,包括:所述主从架构服务器的父进程解析并加载配置文件,所述配置文件中包含多个端口及与每个端口一一对应的进程编号;所述父进程为创建的子进程分配不同的进程编号;所述子进程根据自己的进程编号从所述父进程继承对应的资源,所述资源包括端口;以及所述子进程监听对应的端口以接收来自客户端的业务请求,并对所述业务请求进行处理,然后向所述客户端返回业务应答。
【技术特征摘要】
【专利技术属性】
技术研发人员:陈虓将,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。