一种提升嵌入式平台Socket服务端稳定性和并发处理能力的方法技术

技术编号:34519688 阅读:23 留言:0更新日期:2022-08-13 21:08
本发明专利技术公开了一种基于嵌入式平台服务端的并发处理方法,包括,调用Linux系统APIsocket创建套接字、APIbind绑定服务端口号、APIaccept接收请求、APIfork创建子进程处理所述请求;在fork中的子进程中运行重定向处理程序,同时运行若干个fork子进程,实现并发处理;所述fork中的子进程运行完成定向处理程序后,释放子进程,完成一次完整的请求处理流程。本发明专利技术预置子服务进程,避免程序运行状态下频繁的内存拷贝、进程申请、释放等操作;代码逻辑简单,不存在线程管理、事件调用等额外的代码,能够兼容原始服务,扩展的子服务和原始服务并存,并且相互独立,即使扩展服务故障,原始服务还能正常运行。始服务还能正常运行。始服务还能正常运行。

【技术实现步骤摘要】
一种提升嵌入式平台Socket服务端稳定性和并发处理能力的方法


[0001]本专利技术涉及后端服务并发处理的
,尤其涉及一种基于嵌入式平台服务端的并发处理方法。

技术介绍

[0002]目前,常用的软件架构有CS架构和BS架构,两者都是通过socket套接字实现,一般服务端都需要同时支持若干个C端或者B端访问请求,所以要求服务端具备并发处理能力;常用的服务端并发实现方案如下:子进程、子线程、池化(子进程池或者线程池)、异步事件处理。
[0003]上述几个方案的缺点:
[0004]子进程会拷贝父进程内存,频繁拷贝会导致CPU使用率提升,进程的申请释放也会占用资源,嵌入式平台CPU资源相对比较紧张,该方案会导致CPU使用率居高不下,影响正常业务。
[0005]多线程同享父进程的内存空间,和子进程相比降低了CPU的使用率,但限制了使用场景(需要内存隔离的使用场景),一个线程出错往往会导致其它线程都出错,另外线程频繁申请释放还是会占用额外的资源。
[0006]池化技术主要解决线程频繁申请、释放的问题,弊端是增加了代码本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于嵌入式平台服务端的并发处理方法,其特征在于:包括,调用Linux系统API socket创建套接字、API bind绑定服务端口号、API accept接收请求、API fork创建子进程处理所述请求;在fork中的子进程中运行重定向处理程序,同时运行若干个fork子进程,实现并发处理;所述fork中的子进程运行完成定向处理程序后,释放子进程,完成一次完整的请求处理流程。2.根据权利要求1所述的基于嵌入式平台服务端的并发处理方法,其特征在于:还包括,循环迭代,API accept接收请求、API fork创建子进程处理所述请求;持续不断的接收来自客户端的请求;当所述客户端请求间隔时间小于业务处理所需的时间时,就会存在多个fork子进程,此时所述客户端处于并发处理状态。3.根据权利要求1或2所述的基于嵌入式平台服务端的并发处理方法,其特征在于:增加一个虚拟网卡驱动程序,虚拟网卡ed0;在程序启动时预置若干子进程,每个子进程都对应一个侦听端口,网卡为ed0,原始服务还绑定3990端口,网卡为eth1。4.根据权利要求3所述的基于嵌入式平台服务端的并发处理方法,其特征在于:设置端口映射功能模块,利用Netfliter的HooK机制捕获所述客户端访问请求报文;结合扩展服务端口替换原始的所述3990端口号,根据TCP/UDP的协议要求修改端口后,计算TCP或者UDP的头部校验值;将skb

>dev的值由eth1替换成ed0接口,所述skb重新提交到系统协议栈中,绑定ed0的预置子服务进程接收到所述请求。5.根据权利要求4所述的基于嵌入式平台服务端的并发处理方法,其特征在于:预置服务进程,从ed0上收到所述客户端的请求报文,业务子程序按照业务处理逻辑响应请求,并将其产生的...

【专利技术属性】
技术研发人员:文冰
申请(专利权)人:南京中科上元科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1