【技术实现步骤摘要】
一种基于JavaScript构建边缘计算微服务的方法、装置
[0001]本专利技术涉及计算机程序处理
,特别是一种基于JavaScript构建边缘计算微服务的方法、装置。
技术介绍
[0002]现有边缘设备计算中,一般使用Node.js进行,它是现有的基于JavaScript的网络服务开发平台,Node.js的Cluster模块提供的方法为:主线程创建子线程,主线程运行主任务,子线程运行子任务,主任务负责监听端口,接受客户端连接请求,将连接句柄分配到某个子任务,通过进程间通信将连接句柄发送给相应的子线程。子任务从主任务接收连接句柄后,与客户端建立连接,处理与客户端的通信与具体业务。
[0003]该技术的主要缺陷为:以上方案的特点是每个任务都运行在一个独立进程中,该方案在物联网边缘计算环境下有以下不足:进程开销大:边缘计算环境,算力与内存资源相对紧张,上述方案每个服务创建一个进程,不仅内存开销大,而且进程调度也会增加性能消耗。
[0004]维护复杂:物联网边缘计算要求设计架构轻量灵活,上述方案服务运行在多 ...
【技术保护点】
【技术特征摘要】
1.一种基于JavaScript构建边缘计算微服务的方法,该方法应用于物联网边缘计算设备中,其特征在于,该方法包括:创建步骤,在所述边缘计算设备中创建主任务,并创建一个任务进程,并在所述任务进程中创建一个与所述主任务对应的主线程,并在所述任务进程中创建至少一个子线程;监听步骤,所述主任务在所述边缘计算设备的连接端口中监听是否有来自客户端的连接请求,如果有,则为所述连接请求创建一个子任务;分配步骤,所述主任务基于均衡调度策略从所述至少一个子线程中选择一个子线程,将所述子任务分配给所述子线程;通讯步骤,所述主线程与分配了所述子任务的所述子线程在任务进程中进行通讯,使得所述子任务通过连接端口的连接句柄与所述客户端直接通信。2.根据权利要求1所述的方法,其特征在于,在所述创建步骤中,创建线程间通信服务,用于子线程与主线程建立通信通道;创建每一子线程的环境变量,所述环境变量包含线程间通信服务的连接信息以及子线程标识;在一个子线程创建后,所述子线程检查环境变量,并解析环境变量得到环境参数,基于所述环境参数与主线程建立线程间通信通道,在所述子线程启动服务后向主线程发送就绪消息,所述子线程通过线程间通信通道监听来自主线程的消息,并通过与客户端建立的连接句柄,监听客户端消息。3.根据权利要求2所述的方法,其特征在于,在所述监听步骤中,启动主线程服务后,所述主任务的主线程通过连接端口监听客户端的连接请求,并同时通过线程间通信通道监听子线程消息,当监听到客户端发起连接请求时,则为所述连接请求创建一个子任务,所述主线程接受所述连接请求,并创建连接句柄,然后根据均衡调度策略从就绪的子线程中选择一个有效的子线程,将创建的连接句柄通过线程间通信通道发送给子线程,所述子线程通过所述连接句柄接收所述子任务以执行该子任务。4.根据权利要求3所述的方法,其特征在于,所述主线程接收所述子线程的状态消息,并解析所述状态消息获得消息类型,根据所述消息类型执行相应的操作。5.根据权利要求4所述的方法,其特征在于,所述均衡调度策略为:基于子线程所占用的内存m、处理的子任务数量n及执行子任务的总时间t构建均衡函数:G(m,n,t)=;使用所述均衡函数计算每一个子线程的均衡值,选择均衡值最大的子线程用于处理当前接收的子任务;其中,分别为子线程所占用的内存m、执行子任务的总时间t、子任务数量n对应的权重,ln表示对数计算。6.一种基于J...
【专利技术属性】
技术研发人员:焦进星,
申请(专利权)人:北京翼辉信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。