System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Node.js单线程的微服务架构及其论证方法技术_技高网

一种基于Node.js单线程的微服务架构及其论证方法技术

技术编号:39928445 阅读:6 留言:0更新日期:2024-01-08 21:37
本发明专利技术公开了一种基于Node.js单线程的微服务架构及其论证方法,涉及软件技术领域,本发明专利技术主要内容是解决在日益复杂的业务逻辑中,Node.js默认采用的单线程非阻塞模式,在CPU遇到复杂运算时不能够提供足够计算力的技术问题,技术方案为:在多核CPU运行单线程程序时,把单线程复杂的运算分到CPU其它闲置的内核上进行运算,单线程的主体请求程序用于执行轮询请求,子程序用于执行运算,子微服务器程序用于执行运算,从而提高运算效率。

【技术实现步骤摘要】

本专利技术涉及软件,尤其是指一种基于node.js单线程的微服务架构及其论证方法。


技术介绍

1、随着计算机软件行业的快速发展,人们对于服务器运算力的要求越来越高,现在大部分服务器都是多cpu或多核的,虽然node.js可以处理数以千记的并发,但是一个node.js进程在某一时刻其实只是在处理一个请求,当node.js被cpu密集型任务占用,导致其他任务被阻塞时,还有cpu内核处于闲置状态,造成资源浪费;针对这种情况,现需要一种基于node.js单线程的微服务架构来改进以上问题。


技术实现思路

1、本专利技术目的在于克服不能充分利用资源的不足而提供一种基于node.js单线程的微服务架构及其论证方法,主要是通过在多核cpu运行单线程程序时,把单线程复杂的运算分到cpu其它闲置的内核上进行运算,单线程的主体请求程序用于执行轮询请求,子程序用于执行运算来改善以上问题。

2、为实现上述目的,本专利技术采用如下技术方案:

3、一种基于node.js单线程的微服务架构,包括:

4、算数逻辑单元:以全加器为基础,结合移位寄存器及相应控制逻辑组合而成的电路,在控制信号的作用下可完成加、减、乘、除四则运算和各种逻辑运算,负责运算数据;

5、寄存器组单元:由具有存储功能的触发器组合构成,用于暂时存放cpu未处理或已处理的数据;

6、控制单元:由指令寄存器、指令译码器以及操作控制器构成;依次从存储器中取出各条指令放入指令寄存器中,通过指令译码器确定执行命令,通过操作控制器,按确定的时序,向相应部件发出微操作控制信号;操作控制器中主要包括脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑;

7、混合多处理单元:一个操作系统的实例可同时管理所有cpu内核,但每个应用被锁定于某个指定的核心;

8、在多核cpu运行单线程程序时,把单线程复杂的运算分到cpu其它闲置的内核上进行运算,单线程的主体请求程序用于执行轮询请求,子程序用于执行运算;可节约处理器处理运算的时间,进一步提高了运算效率。

9、优选地,所述node.js默认采用的是单线程非阻塞模式,即每一个计算独占cpu,遇到i/o口请求不阻塞后面的运算,当前i/o口完成计算后,以事件的方式通知cpu,cpu继续进行后面的运算。

10、优选地,所述执行运算的操作系统为window64、linuxcentos或ubuntu16.04以上;cpu内核四核以上,不使用超线程,防止当运行单线程运用软件时,超线程技术将会降低系统性能,有益于稳定系统性能。

11、优选地,所述轮询请求存在于主体请求程序中,负责不停地调用代码,轮询请求指的是由cpu定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,循环执行操作;使用简单。

12、优选地,通过下述方案论证此架构在实际中可运用,具体论证方法包括如下步骤:

13、s01:用一台已完成基本配置的服务器操作演示,配置微服务架构,该微服务架构包括三个微服务;完成部署一个主体请求程序以及三个子程序,启动服务器后将进程指向不同的cpu内核中进行运算;

14、s02:测试三个微服务与主体请求程序通信是否良好,记录微服务每次发出请求结束后的响应时间,时间单位为毫秒;

15、s03:配置低密集运算与高密集运算两种运算方式用于测算三个微服务之间的运算是否存在干扰;

16、s04:运算测试

17、(1)向某一个微服务请求高密集运算,另外的两个微服务请求低密集运算,记录三个微服务每次发出请求结束后的响应时间;

18、(2)向某两个微服务请求高密集运算,另外的一个微服务请求低密集运算,记录三个微服务每次发出请求结束后的响应时间;

19、(3)三个微服务请求高密集运算,记录三个微服务每次发出请求结束后的响应时间。

20、优选地,所述方案经过反复测试,将每组数据对比,可以得出结论:向三个微服务请求不同程度的运算,虽然三个微服务同属一台服务器,但彼此之间的运算是独立的,并没有因为某个微服务运算密集而影响其它微服务发出请求。

21、优选地,所述请求低密集运算时,cpu使用率较低,请求高密集运算时,cpu使用率非常高。

22、优选地,所述简单的运算耗时大约为30ms,复杂的运算耗时大约为700-800ms。

23、优选地,所述微服务架构之间的接口采用异步的方式,文件描述符filedescriptor的类型设成noneblock方式;异步流程在执行的过程中,可以释放占用的线程等资源,避免阻塞,等到结果产生再重新获取线程处理,提高响应效率。

24、本专利技术与现有技术相比具有明显的优点和有益效果,具体而言,由上述技术方案可知,在多核cpu运行单线程程序时,把单线程复杂的运算分到cpu其它闲置的内核上进行运算,单线程的主体请求程序用于执行轮询请求,子程序用于执行运算来改善以上问题;一种基于node.js单线程的微服务架构的设计弥补了现有技术的不足,满足工业化设计需求,具有广泛应用的价值。

25、为更清楚地阐述本专利技术的结构特征和功效,下面结合附图与具体实施例来对其进行详细说明。

本文档来自技高网...

【技术保护点】

1.一种基于Node.js单线程的微服务架构,包括:

2.根据权利要求1所述的一种基于Node.js单线程的微服务架构,其特征在于,所述Node.js默认采用的是单线程非阻塞模式,即每一个计算独占CPU,遇到I/O口请求不阻塞后面的运算,当前I/O口完成计算后,以事件的方式通知CPU,CPU继续进行后面的运算。

3.根据权利要求1所述的一种基于Node.js单线程的微服务架构,其特征在于,所述执行运算的操作系统为Window 64、Linux CENTOS或Ubuntu16.04以上;CPU内核四核以上,不使用超线程。

4.根据权利要求1所述的一种基于Node.js单线程的微服务架构,其特征在于,所述轮询请求存在于主体请求程序中,负责不停地调用代码。

5.一种应用于上述权利要求1至4任一项所述基于Node.js单线程的微服务架构的论证方法,其特征在于,包括如下步骤:

6.根据权利要求5所述的论证方法,其特征在于,经过反复测试,将每组数据对比,可以得出结论:向三个微服务请求不同程度的运算,虽然三个微服务同属一台服务器,但彼此之间的运算是独立的,并没有因为某个微服务运算密集而影响其它微服务发出请求。

7.根据权利要求5所述的论证方法,其特征在于,所述简单的运算耗时大约为30MS,复杂的运算耗时一般为700-800MS。

8.根据权利要求5所述的论证方法,其特征在于,所述微服务架构之间的接口采用异步的方式,文件描述符File Descriptor的类型设成none block方式。

...

【技术特征摘要】

1.一种基于node.js单线程的微服务架构,包括:

2.根据权利要求1所述的一种基于node.js单线程的微服务架构,其特征在于,所述node.js默认采用的是单线程非阻塞模式,即每一个计算独占cpu,遇到i/o口请求不阻塞后面的运算,当前i/o口完成计算后,以事件的方式通知cpu,cpu继续进行后面的运算。

3.根据权利要求1所述的一种基于node.js单线程的微服务架构,其特征在于,所述执行运算的操作系统为window 64、linux centos或ubuntu16.04以上;cpu内核四核以上,不使用超线程。

4.根据权利要求1所述的一种基于node.js单线程的微服务架构,其特征在于,所述轮询请求存在于主体请求程序中,负责不停地调用代...

【专利技术属性】
技术研发人员:张翼
申请(专利权)人:深圳市华筑通科技有限公司
类型:发明
国别省市:

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

1