CN114675908B - 业务数据处理系统、方法、计算机设备及存储介质 - Google Patents

业务数据处理系统、方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN114675908B
CN114675908B CN202210585781.XA CN202210585781A CN114675908B CN 114675908 B CN114675908 B CN 114675908B CN 202210585781 A CN202210585781 A CN 202210585781A CN 114675908 B CN114675908 B CN 114675908B
Authority
CN
China
Prior art keywords
connection pool
service data
module
thread
target
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
CN202210585781.XA
Other languages
English (en)
Other versions
CN114675908A (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.)
Wuhan Zhongke Tongda High New Technology Co Ltd
Original Assignee
Wuhan Zhongke Tongda High New 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 Wuhan Zhongke Tongda High New Technology Co Ltd filed Critical Wuhan Zhongke Tongda High New Technology Co Ltd
Priority to CN202210585781.XA priority Critical patent/CN114675908B/zh
Publication of CN114675908A publication Critical patent/CN114675908A/zh
Application granted granted Critical
Publication of CN114675908B publication Critical patent/CN114675908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种业务数据处理系统、方法、计算机设备及存储介质,包括:连接池模块、线程池模块以及网络收包模块;连接池模块,用于存储至少一个连接池元素,以响应客户端的业务请求,为客户端分配目标连接池元素;网络收包模块,用于利用目标连接池元素,读取业务请求中包含的业务数据,并结合预置与目标连接池元素关联的连接池句柄,以及目标连接池元素中的序列号,对业务数据进行封装,得到指向业务数据的万能指针;线程池模块,用于存储至少一个线程,以便于至少一个线程中的目标线程解析万能指针,得到连接池句柄和业务数据之后,确定并指示与连接池句柄关联的扩展连接池元素处理业务数据。采用本系统,可提升业务数据的处理效率。

Description

业务数据处理系统、方法、计算机设备及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及一种业务数据处理系统、方法、计算机设备及存储介质。
背景技术
在同一个IT系统中,核心业务对应的接口会比非核心业务接口承受更高的负载。随着业务扩张、用户量越来越大,这种负载差距越来越明显。非核心业务对系统资源的抢占严重影响了核心业务的正常运行,当超过平衡阈值时,就会出现非核心业务响应正常,而核心业务响应缓慢的情况,最终影响IT系统的稳定性,同时给终端带来极差的用户体验。
例如,在现有的请求应答系统中,一个连接池负责一个客户端的请求,但所有的请求都会汇总存放到CLogicSocket中,并且在CLogicSocket中配合线程池进行处理,但这无疑会使CLogicSocket承重过大,无论是连接池1、连接池2还是连接池N的请求,所有的业务逻辑都将混在其中难以调度,极易导致多个连接池的业务产生竞争,影响业务进程。
因此,现有的业务数据处理系统存在着因系统构造不合理,而导致业务耦合性过高的技术问题。
发明内容
本申请的目的在于提供一种业务数据处理系统、方法、计算机设备及存储介质,用以降低业务耦合性,提高业务扩展性,以使业务数据处理效率得到有效提升,缩减系统开发成本。
第一方面,本申请提供一种业务数据处理系统,包括:连接池模块、线程池模块以及网络收包模块;其中,
连接池模块,用于存储至少一个连接池元素,以响应客户端的业务请求,为客户端分配目标连接池元素;
网络收包模块,用于利用目标连接池元素,读取业务请求中包含的业务数据,并结合预置与目标连接池元素关联的连接池句柄,以及目标连接池元素中的序列号,对业务数据进行封装,得到指向业务数据的万能指针;
线程池模块,用于存储至少一个线程,以便于至少一个线程中的目标线程解析万能指针,得到连接池句柄和业务数据之后,确定并指示与连接池句柄关联的扩展连接池元素处理业务数据。
在本申请一些实施例中,连接池模块中设置有用于存放空闲连接池元素的空闲列表,和/或用于存放在用连接池元素的在用列表;
其中,连接池模块还用于响应于客户端的业务请求,判断空闲列表中是否包含有空闲连接池元素;
若是,则从空闲列表中提取出一个空闲连接池元素,作为目标连接池元素;
若否,则创建一个新连接池元素,以确定新连接池元素作为目标连接池元素,并将新连接池元素添加至在用列表中。
在本申请一些实施例中,连接池元素包括:网络句柄、序列号、可读事件回调、可写事件回调、收包头、收包体、收缓冲指针、阻塞标志、入回收池时间、发包头、发包体及发缓冲指针中的至少一个;
其中,网络句柄用于标记客户端的用户身份;序列号用于判断客户端是否在线;可读事件回调用于供系统内核通知是否可读取事件;可写事件回调用于供系统内核通知是否可写入事件;
收包头和收包体用于标记当前所接收业务数据的存储地址;收缓冲指针用于标记多次接收业务数据时的衔接读取地址;
阻塞标志用于标记业务数据是否传输阻塞;入回收池时间用于标记在用连接池元素的回收时刻;
发包头和发包体用于标记当前所发送业务数据的存储地址;发缓冲指针用于标记多次发送业务数据时的衔接读取地址。
在本申请一些实施例中,万能指针由消息头和数据块组成;消息头由用于标记连接池元素的连接池句柄,以及用于判断客户端是否在线的序列号组成;数据块由包头和包体组成;包体由数据长度和数据类型组成;
其中,线程池模块还用于判断用于存储万能指针的队列列表是否为空,若是则等待万能指针得到后唤醒目标线程,若否则通知目标线程解析万能指针,以确定并指示与连接池句柄关联的扩展连接池元素处理业务数据。
在本申请一些实施例中,业务数据处理系统还包括:网络发包模块;其中,
网络发包模块,用于利用目标连接池元素,将客户端的业务数据进行封装,进而通过万能指针将封装后的业务数据发送至系统内核。
在本申请一些实施例中,网络发包模块还用于将封装后的业务数据传输至数据发送队列中,进而响应于客户端的阻塞标志为非阻塞状态,将封装后的业务数据发送至系统内核;或者,
响应于客户端的阻塞标志为阻塞状态,传输数据发送队列中的其他业务数据,并在其他业务数据完全发送至系统内核,且客户端的阻塞标志为非阻塞状态之后,继续将封装后的业务数据发送至系统内核。
在本申请一些实施例中,业务数据处理系统还包括:延迟回收模块;其中,
延迟回收模块,用于在检测到客户端与连接池模块断开连接时,将目标连接池元素添加至预设的延迟回收池中,并记录入池时间,以便在入池时间达到预设的等待时长阈值时,将目标连接池元素再次添加至空闲列表,以供其他客户端使用。
第二方面,本申请提供一种业务数据处理方法,业务数据处理方法应用于业务数据处理系统,业务数据处理系统包括用于存储至少一个连接池元素的连接池模块、存储至少一个线程的线程池模块以及网络收包模块,方法包括:
通过连接池模块响应客户端的业务请求,为客户端分配目标连接池元素;其中,目标连接池元素为预存的连接池元素;
通过网络收包模块利用目标连接池元素,读取业务请求中包含的业务数据,并结合预置与目标连接池元素关联的连接池句柄,以及目标连接池元素中的序列号,对业务数据进行封装,得到指向业务数据的万能指针;
通过线程池模块解析万能指针,得到连接池句柄和业务数据之后,确定并指示与连接池句柄关联的扩展连接池元素处理业务数据。
第三方面,本申请还提供一种计算机设备,包括:
一个或多个处理器;
存储器;以及一个或多个应用程序,其中的一个或多个应用程序被存储于存储器中,并配置为由处理器执行以实现上述第二方面的业务数据处理方法。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行业务数据处理方法中的步骤。
第五方面,本申请实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第二方面提供的方法。
上述业务数据处理系统、方法、计算机设备及存储介质,依托于连接池模块、线程池模块以及网络收包模块;其中,连接池模块,用于存储至少一个连接池元素,以响应客户端的业务请求,为客户端分配目标连接池元素;网络收包模块,用于利用目标连接池元素,读取业务请求中包含的业务数据,并结合预置与目标连接池元素关联的连接池句柄,以及目标连接池元素中的序列号,对业务数据进行封装,得到指向业务数据的万能指针;线程池模块,用于存储至少一个线程,以便于至少一个线程中的目标线程解析万能指针,得到连接池句柄和业务数据之后,确定并指示与连接池句柄关联的扩展连接池元素处理业务数据。本申请通过模块化设计,精简系统基础层框架,可使业务耦合性降低、业务扩展性提升,进而促进业务数据处理效率得到有效提升,缩减了系统开发成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中的业务数据处理系统的架构示意图;
图2为本申请实施例中的现有业务数据处理方法的流程示意图;
图3为本申请实施例中的连接池模块和线程池模块的应用流程示意图;
图4为本申请实施例中的连接池模块的应用流程示意图;
图5为本申请实施例中的线程池模块的应用流程示意图一;
图6为本申请实施例中的线程池模块的应用流程示意图二;
图7是本申请实施例中的线程池模块的完整应用流程示意图;
图8是本申请实施例中的网络发包模块的应用流程示意图;
图9是本申请实施例中的业务数据处理方法的流程示意图;
图10是本申请实施例中的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请的描述中,术语“例如”一词用来表示“用作例子、例证或说明”。本申请中被描述为“例如”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本发明,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本发明。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本发明的描述变得晦涩。因此,本发明并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
本申请实施例提供一种业务数据处理系统、方法、计算机设备及存储介质,以下分别进行详细说明。
参阅图1,图1为本申请实施例提供的业务数据处理系统的架构示意图,该业务数据处理系统100包括:连接池模块102、线程池模块104以及网络收包模块106;
其中,连接池模块102,用于存储至少一个连接池元素,以响应客户端的业务请求,为客户端分配目标连接池元素;网络收包模块106,用于利用目标连接池元素,读取业务请求中包含的业务数据,并结合预置与目标连接池元素关联的连接池句柄,以及目标连接池元素中的序列号,对业务数据进行封装,得到指向业务数据的万能指针;线程池模块104,用于存储至少一个线程,以便于至少一个线程中的目标线程解析万能指针,得到连接池句柄和业务数据之后,确定并指示与连接池句柄关联的扩展连接池元素处理业务数据。
其中,客户端可以是既包括接收和发射硬件的终端设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备。客户端具体可以是台式终端或移动终端,还可以是手机、平板电脑、笔记本电脑中的一种。
具体而言,可参阅图2,本申请实施例是针对现有请求应答系统中存在的可扩展性差、业务耦合性过高、封装性低、灵活性差等问题,提出的系统架构改进方案。其中,现有请求应答系统可扩展性差是由于业务是不断变化的,若是基于该现有系统开发其他架构,则CLogicSocket的很多模块均需全部重写,且以前的很多需求未必适用。现有请求应答系统的业务耦合性过高是由于多个连接池并联在CLogicSocket上,由CLogicSocket为各个客户端分配用于处理业务数据的线程,则连接池1的业务大概率会和连接池2的业务产生竞争,这对于两个不同的请求端而言,极易产生资源争夺,进而影响业务数据处理效率和安全性。
进一步地,可参阅图3,本申请实施例提出的系统架构改进方案,实际是基于模块设计,以便于结合业务需求引入更多模块,例如,引入网络收包模块。首先,将CLogicSocket的耦合性彻底降低,即直接转入到连接池中,并且是扩展连接池中,由系统用户基于业务需求实现对扩展连接池的业务扩展。其次,3设计让CSocket基础网络框架继承线程池。最后,固定连接池、进程池与CSocket基础网络框架的关系,即能解决好高并发问题。
更进一步地,可参阅图4,连接池模块102中设置有用于存放空闲连接池元素的空闲列表(也称Free列表),和/或用于存放在用连接池元素的在用列表(也称Use列表);其中,连接池模块102还用于响应于客户端的业务请求,判断空闲列表中是否包含有空闲连接池元素;若是,则从空闲列表中提取出一个空闲连接池元素,作为目标连接池元素;若否,则创建一个新连接池元素,以确定新连接池元素作为目标连接池元素,并将新连接池元素添加至在用列表中。
其中,Free列表和Use列表的总和为Total列表,主要用于体现过去曾接入的连接用户的最大数量。每次用户连接上来了,就需分配一个连接池元素给这个用户,那么就直接从Free列表中分配,如果Free列表没有可分配的(虽然初始会分配一定数量的空闲连接池元素到Free列表中),那么就直接新建一个连接池元素,并添加到Use列表中。
具体而言,无论是空闲连接池元素还是在用连接池元素,连接池元素的组成均包括:网络句柄、序列号、可读事件回调、可写事件回调、收包头、收包体、收缓冲指针、阻塞标志、入回收池时间、发包头、发包体及发缓冲指针中的至少一个。
其中,网络句柄用于标记客户端的用户身份;序列号用于判断客户端是否在线;可读事件回调用于供系统内核通知是否可读取事件;可写事件回调用于供系统内核通知是否可写入事件;收包头和收包体用于标记当前所接收业务数据的存储地址;收缓冲指针用于标记多次接收业务数据时的衔接读取地址;阻塞标志用于标记业务数据是否传输阻塞;入回收池时间用于标记在用连接池元素的回收时刻;发包头和发包体用于标记当前所发送业务数据的存储地址;发缓冲指针用于标记多次发送业务数据时的衔接读取地址。
在一个实施例中,业务数据处理系统还包括:延迟回收模块;其中,延迟回收模块,用于在检测到客户端与连接池模块断开连接时,将目标连接池元素添加至预设的延迟回收池中,并记录入池时间,以便在入池时间达到预设的等待时长阈值时,将目标连接池元素再次添加至空闲列表,以供其他客户端使用。
具体而言,可参阅图4,“延迟回收”是由内核的性质决定的,例如,为一个用户分配了连接池句柄为“25”的连接池元素来处理,但是当这个用户掉线后,连接池句柄为“25”的连接池元素会很快分配给一个新接入的用户。这个过程非常短暂,所以高并发模块下,很可能会出现一种情况:用户A刚刚断开了连接却有一个用户B及时接入了,那么在这个瞬间,这个用户A断开的连接池元素在回收的同时,很可能又会被分配给新加入的用户B,这样导致在某个临界时间点,存在2个线程对同一块内存区域进行操作,极易造成不可预料的错误。并且,回收连接池元素是需要时间的,如用户A在1秒的时候断开,可能其对应的业务还需继续处理,处理可能需要10秒,若是再将其断开的连接池元素分配给用户B,则业务处理极易出错。
所以,本实施例提及的策略就是将用户A断开的连接池元素让入到某一块延迟回收的池子(也称延迟回收池),等待一定时间后再将其添加到Free列表中,并且这个一定时间,须超过上面处理可能需要的10秒时间,也即是说,在用连接池元素的回收时刻为断开时刻(也是入池时间)与等待时长之和,等待时长需要根据业务处理时长确定。
在一个实施例中,万能指针由消息头和数据块组成;消息头由用于标记连接池元素的连接池句柄,以及用于判断客户端是否在线的序列号组成;数据块由包头和包体组成;包体由数据长度和数据类型组成;其中,线程池模块还用于判断用于存储万能指针的队列列表是否为空,若是则等待万能指针得到后唤醒目标线程,若否则通知目标线程解析万能指针,以确定并指示与连接池句柄关联的扩展连接池元素处理业务数据。
其中,连接池句柄是在创建网络socket,向内核注册时生成的,且向内核注册时会注册进连接池句柄的可读事件、可写事件,其目的在于向内核发出连接池元素与客户端之间一一对应的关联性通知。
具体而言,线程池模块104的作用分为两部分,数据消费端和数据生产端,数据消费端的应用流程图可参阅图5,数据生产端的应用流程图可参阅图6,整个数据生产和消费的应用流程图可参阅图7。无论是数据消费期间还是数据生产期间,若用户突然掉线,比如收数据时序列号是“3”,但是掉线后,序列号很可能就变为“4”,则可确定该数据无处理必要。
如图5所示,队列列表“list”是用于存放万能指针“void*”的列表,线程池中所有的线程都需从list中取void*,作为后续处理依据。数据消费时,若list的数量为“0”,则表示当前无事件需线程池模块处理,待到收到唤醒通知后,通知目标线程从list中取void*,然后解析void*的消息头,即可得到连接池句柄。之后,再借助编译器动态编联的特性,即可很轻松的找到系统业务层目标连接池元素的扩展对象,进而根据数据块里面的msgcode参数,调用对应的业务逻辑。
如图6所示,数据生产时,网络收包模块可从CSocket基础网络框架处申请获得连接池句柄,然后向内核注册可读事件,进而等待内核通知可读事件能够触发,网络收包模块106即可先读包头,得到完整数据块之后,封装块头和连接池句柄,即可得到能够放入万能指针void*的数据结构。
如图7所示,线程池模块104存储有至少一个线程,各个线程均可从线程池中取数据,但若无数据可取,即可等待唤醒,以避免CPU空转。线程池模块104若是接收到数据了,就发送唤醒通知,而线程收到了唤醒通知就可竞争数据,竞争到数据的线程即为目标线程(此时一次性仅能唤醒一个)。目标线程被唤醒之后,即可直接从线程池中提取数据,但若此时目标线程繁忙,则可等待后提取。
在一个实施例中,业务数据处理系统还包括:网络发包模块;其中,网络发包模块,用于利用目标连接池元素,将客户端的业务数据进行封装,进而通过万能指针将封装后的业务数据发送至系统内核。
具体而言,上述实施例解释的是业务数据处理系统的收包过程,本实施例将详细说明业务数据处理系统的发包过程,具体可参阅图8,网络发包模块需调用连接池元素、用于存储万能指针void*的队列列表,实现针对于业务数据的发送任务。其中,业务数据的发送过程中难免遇到网络阻塞情况,针对这一异常情况,本申请实施例将提出为之有效的解决策略,具体详见下文。
在一个实施例中,网络发包模块还用于将封装后的业务数据传输至数据发送队列中,进而响应于客户端的阻塞标志为非阻塞状态,将封装后的业务数据发送至系统内核;或者,响应于客户端的阻塞标志为阻塞状态,传输数据发送队列中的其他业务数据,并在其他业务数据完全发送至系统内核,且客户端的阻塞标志为非阻塞状态之后,继续将封装后的业务数据发送至系统内核。
具体而言,可参阅图8,如果要发100个字节,但是调用系统函数后,发现只发送了90个字节,这个时候就需要把阻塞标志设置为“true”,因为发送队列只有一个,发送数据的线程也只有一个。假设这个队列里面有10个要发的数据,分别对应10个客户端,其中有一个客户端阻塞标志为“true”,那么一旦检测到有阻塞标志为“true”,即可直接跳过当前处理的这个数据,进而继续处理后续数据,因为这个标志提示对方网络差,暂无法接收数据,除非内核通知网络可写了,即可就将阻塞标志设置为“false”,并继续发送信号量,通知线程继续发送。
上述业务数据处理系统,通过模块化设计,精简系统基础层框架,可使业务耦合性降低、业务扩展性提升,进而促进业务数据处理效率得到有效提升,缩减了系统开发成本。
参阅图9,本申请实施例提供了一种业务数据处理方法,业务数据处理方法应用于业务数据处理系统,业务数据处理系统包括用于存储至少一个连接池元素的连接池模块、存储至少一个线程的线程池模块以及网络收包模块,下文将主要以该方法应用于上述图1中的业务数据处理系统100来举例说明,业务数据处理方法包括步骤S901至步骤S903具体如下:
S901,通过连接池模块响应客户端的业务请求,为客户端分配目标连接池元素;其中,目标连接池元素为预存的连接池元素。
S902,通过网络收包模块利用目标连接池元素,读取业务请求中包含的业务数据,并结合预置与目标连接池元素关联的连接池句柄,以及目标连接池元素中的序列号,对业务数据进行封装,得到指向业务数据的万能指针。
S903,通过线程池模块解析万能指针,得到连接池句柄和业务数据之后,确定并指示与连接池句柄关联的扩展连接池元素处理业务数据。
上述实施例中的业务数据处理方法,通过模块化设计,精简系统基础层框架,可使业务耦合性降低、业务扩展性提升,进而有效提升业务数据处理效率。
在本申请一些实施例中,业务数据处理系统100可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该业务数据处理系统100的各个程序模块,比如,图1所示的连接池模块102、线程池模块104以及网络收包模块106;各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的业务数据处理方法中的步骤。
例如,图10所示的计算机设备可以通过如图1所示的业务数据处理系统100中的连接池模块102执行步骤S901。计算机设备可通过网络收包模块106执行步骤S902。计算机设备可通过线程池模块104执行步骤S903。
其中,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的计算机设备通过网络连接通信。该计算机程序被处理器执行时以实现一种业务数据处理方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本申请一些实施例中,提供了一种计算机设备,包括一个或多个处理器;存储器;以及一个或多个应用程序,其中的一个或多个应用程序被存储于存储器中,并配置为由处理器执行上述业务数据处理方法的步骤。此处业务数据处理方法的步骤可以是上述各个实施例的业务数据处理方法中的步骤。
在本申请一些实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器进行加载,使得处理器执行上述业务数据处理方法的步骤。此处业务数据处理方法的步骤可以是上述各个实施例的业务数据处理方法中的步骤。
本邻域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上对本申请实施例所提供的一种业务数据处理系统、方法、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种业务数据处理系统,其特征在于,包括:连接池模块、线程池模块以及网络收包模块;其中,
所述连接池模块,用于存储至少一个连接池元素,以响应客户端的业务请求,为所述客户端分配目标连接池元素;
所述网络收包模块,用于利用所述目标连接池元素,读取所述业务请求中包含的业务数据,并结合预置与所述目标连接池元素关联的连接池句柄,以及所述目标连接池元素中的序列号,对所述业务数据进行封装,得到指向所述业务数据的万能指针;
所述线程池模块,用于存储至少一个线程,以便于所述至少一个线程中的目标线程解析所述万能指针,得到所述连接池句柄和所述业务数据之后,确定并指示与所述连接池句柄关联的扩展连接池元素处理所述业务数据。
2.如权利要求1所述的系统,其特征在于,所述连接池模块中设置有用于存放空闲连接池元素的空闲列表,和/或用于存放在用连接池元素的在用列表;
其中,所述连接池模块还用于响应于所述客户端的业务请求,判断所述空闲列表中是否包含有所述空闲连接池元素;
若是,则从所述空闲列表中提取出一个空闲连接池元素,作为所述目标连接池元素;
若否,则创建一个新连接池元素,以确定所述新连接池元素作为所述目标连接池元素,并将所述新连接池元素添加至所述在用列表中。
3.如权利要求1所述的系统,其特征在于,所述连接池元素包括:网络句柄、序列号、可读事件回调、可写事件回调、收包头、收包体、收缓冲指针、阻塞标志、入回收池时间、发包头、发包体及发缓冲指针中的至少一个;
其中,所述网络句柄用于标记所述客户端的用户身份;所述序列号用于判断所述客户端是否在线;所述可读事件回调用于供系统内核通知是否可读取事件;所述可写事件回调用于供系统内核通知是否可写入事件;
所述收包头和收包体用于标记当前所接收业务数据的存储地址;所述收缓冲指针用于标记多次接收业务数据时的衔接读取地址;
所述阻塞标志用于标记所述业务数据是否传输阻塞;所述入回收池时间用于标记在用连接池元素的回收时刻;
所述发包头和发包体用于标记当前所发送业务数据的存储地址;所述发缓冲指针用于标记多次发送业务数据时的衔接读取地址。
4.如权利要求1所述的系统,其特征在于,所述万能指针由消息头和数据块组成;所述消息头由用于标记所述连接池元素的连接池句柄,以及用于判断所述客户端是否在线的序列号组成;所述数据块由包头和包体组成;所述包体由数据长度和数据类型组成;
其中,所述线程池模块还用于判断用于存储所述万能指针的队列列表是否为空,若是则等待所述万能指针得到后唤醒所述目标线程,若否则通知所述目标线程解析所述万能指针,以确定并指示与所述连接池句柄关联的扩展连接池元素处理所述业务数据。
5.如权利要求1所述的系统,其特征在于,所述业务数据处理系统还包括:网络发包模块;其中,
所述网络发包模块,用于利用所述目标连接池元素,将所述客户端的业务数据进行封装,进而通过所述万能指针将封装后的业务数据发送至系统内核。
6.如权利要求5所述的系统,其特征在于,所述网络发包模块还用于将封装后的业务数据传输至数据发送队列中,进而响应于所述客户端的阻塞标志为非阻塞状态,将所述封装后的业务数据发送至系统内核;或者,
响应于所述客户端的阻塞标志为阻塞状态,传输所述数据发送队列中的其他业务数据,并在所述其他业务数据完全发送至所述系统内核,且所述客户端的阻塞标志为非阻塞状态之后,继续将所述封装后的业务数据发送至系统内核。
7.如权利要求1所述的系统,其特征在于,所述业务数据处理系统还包括:延迟回收模块;其中,
所述延迟回收模块,用于在检测到所述客户端与所述连接池模块断开连接时,将所述目标连接池元素添加至预设的延迟回收池中,并记录入池时间,以便在所述入池时间达到预设的等待时长阈值时,将所述目标连接池元素再次添加至空闲列表,以供其他客户端使用。
8.一种业务数据处理方法,其特征在于,所述业务数据处理方法应用于业务数据处理系统,所述业务数据处理系统包括用于存储至少一个连接池元素的连接池模块、存储至少一个线程的线程池模块以及网络收包模块,所述方法包括:
通过所述连接池模块响应客户端的业务请求,为所述客户端分配目标连接池元素;其中,所述目标连接池元素为预存的连接池元素;
通过所述网络收包模块利用所述目标连接池元素,读取所述业务请求中包含的业务数据,并结合预置与所述目标连接池元素关联的连接池句柄,以及所述目标连接池元素中的序列号,对所述业务数据进行封装,得到指向所述业务数据的万能指针;
通过所述线程池模块解析所述万能指针,得到所述连接池句柄和所述业务数据之后,确定并指示与所述连接池句柄关联的扩展连接池元素处理所述业务数据。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器;以及一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求8所述的业务数据处理方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求8所述的业务数据处理方法中的步骤。
CN202210585781.XA 2022-05-27 2022-05-27 业务数据处理系统、方法、计算机设备及存储介质 Active CN114675908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210585781.XA CN114675908B (zh) 2022-05-27 2022-05-27 业务数据处理系统、方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210585781.XA CN114675908B (zh) 2022-05-27 2022-05-27 业务数据处理系统、方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN114675908A CN114675908A (zh) 2022-06-28
CN114675908B true CN114675908B (zh) 2022-08-26

Family

ID=82079462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210585781.XA Active CN114675908B (zh) 2022-05-27 2022-05-27 业务数据处理系统、方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN114675908B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050193A (zh) * 2013-03-15 2014-09-17 中国银联股份有限公司 生成报文的方法和实现该方法的数据处理系统
CN112181677A (zh) * 2020-09-02 2021-01-05 珠海格力电器股份有限公司 业务的处理方法和装置、存储介质、电子装置
CN112817933A (zh) * 2020-12-30 2021-05-18 国电南京自动化股份有限公司 一种弹性数据库连接池的管理方法及装置
CN112866422A (zh) * 2021-04-23 2021-05-28 武汉中科通达高新技术股份有限公司 一种数据请求处理方法和装置
CN113485776A (zh) * 2021-08-02 2021-10-08 竞技世界(北京)网络技术有限公司 一种在多线程渲染中实体的处理方法及装置
WO2021258753A1 (zh) * 2020-06-24 2021-12-30 广东浪潮智慧计算技术有限公司 一种业务处理方法、装置及电子设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US8943181B2 (en) * 2005-11-29 2015-01-27 Ebay Inc. Method and system for reducing connections to a database
US9104502B2 (en) * 2012-12-15 2015-08-11 International Business Machines Corporation Managing resource pools for deadlock avoidance
FR3007542A1 (fr) * 2013-06-21 2014-12-26 St Microelectronics Grenoble 2 File d'echange de donnees ayant une profondeur illimitee

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050193A (zh) * 2013-03-15 2014-09-17 中国银联股份有限公司 生成报文的方法和实现该方法的数据处理系统
WO2021258753A1 (zh) * 2020-06-24 2021-12-30 广东浪潮智慧计算技术有限公司 一种业务处理方法、装置及电子设备和存储介质
CN112181677A (zh) * 2020-09-02 2021-01-05 珠海格力电器股份有限公司 业务的处理方法和装置、存储介质、电子装置
CN112817933A (zh) * 2020-12-30 2021-05-18 国电南京自动化股份有限公司 一种弹性数据库连接池的管理方法及装置
CN112866422A (zh) * 2021-04-23 2021-05-28 武汉中科通达高新技术股份有限公司 一种数据请求处理方法和装置
CN113485776A (zh) * 2021-08-02 2021-10-08 竞技世界(北京)网络技术有限公司 一种在多线程渲染中实体的处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MFC CSocket;阿萨德科;《https://blog.csdn.net/qq_37240392/article/details/122456483》;20220112;全文第1-8页 *
构建高性能可扩展业务逻辑的事务支持;冯琳等;《计算机工程与设计》;20060428(第04期);第7-11页 *

Also Published As

Publication number Publication date
CN114675908A (zh) 2022-06-28

Similar Documents

Publication Publication Date Title
US20120179882A1 (en) Cooperative memory management
CN107256180B (zh) 数据处理方法、装置及终端
CN101146127B (zh) 一种分布式系统中客户端缓存更新的方法和装置
CN110768873B (zh) 分布式心跳检测方法、系统、装置和计算机设备
CN111427751A (zh) 基于异步处理机制对业务进行处理的方法及系统
CN110543359A (zh) 一种任务队列运行装置
CN111190854A (zh) 通信数据处理方法、装置、设备、系统和存储介质
US8132171B2 (en) Method of controlling thread access to a synchronization object
CN112817772B (zh) 一种数据通信方法、装置、设备及存储介质
CN114625533A (zh) 分布式任务调度方法、装置、电子设备及存储介质
CN114675908B (zh) 业务数据处理系统、方法、计算机设备及存储介质
CN112506808B (zh) 测试任务执行方法、计算设备、计算系统和存储介质
CN113342554A (zh) Io多路复用方法、介质、设备和操作系统
CN112929482B (zh) 传感器运行控制方法、装置、计算机设备和存储介质
CN111427674A (zh) 一种微服务管理方法、装置及系统
CN109005465B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN108521351B (zh) 会话流量统计方法、处理器核心、存储介质、电子设备
CN116701020A (zh) 消息延时处理方法、装置、设备、介质和程序产品
CN108075989B (zh) 一种基于可扩展协议的负载均衡网络中间件实现方法
CN116244231A (zh) 一种数据传输方法、装置、系统、电子设备及存储介质
CN115118475A (zh) 密码设备集群调度方法、装置、设备及介质
CN113778700A (zh) 消息处理方法、系统、介质和计算机系统
CN109168079B (zh) 弹幕消息分发方法、装置、设备及存储介质
KR101037981B1 (ko) 원격 코드 업데이트가 용이한 무선 센서 노드용 운영체제 구현방법
CN112995704B (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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Business data processing systems, methods, computer equipment, and storage media

Effective date of registration: 20231010

Granted publication date: 20220826

Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd.

Pledgor: WUHAN ZHONGKE TONGDA HIGH-NEW TECHNOLOGY Co.,Ltd.

Registration number: Y2023980060608

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231222

Granted publication date: 20220826

Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd.

Pledgor: WUHAN ZHONGKE TONGDA HIGH-NEW TECHNOLOGY Co.,Ltd.

Registration number: Y2023980060608

PC01 Cancellation of the registration of the contract for pledge of patent right