一种无服务器计算同步触发器及其使用方法

文档序号:36509744发布日期:2023-12-29 06:58阅读:37来源:国知局
一种无服务器计算同步触发器及其使用方法

本发明涉及电通信,具体涉及一种无服务器计算同步触发器及其使用方法。


背景技术:

1、无服务器计算是一种按需提供后端服务的云计算服务模式。在无服务器计算中,“应用程序的开发”和“服务器等底层基础设施的管理”被分离开来。开发人员只需要关心应用程序的业务逻辑的开发,而制备、维护、拓展服务器资源等工作则由无服务器计算的提供商自动完成。

2、为了提高资源的利用效率,无服务器计算厂商对服务器资源的管理是按需进行的。即,当应用程序的负载增加时,动态拓展服务器资源;在应用程序的负载减小时,动态减少服务器资源。这种按需进行的动态扩缩容一般基于事件驱动模型实现。开发人员在部署应用程序时,需要在无服务器厂商处配置应用程序响应的事件类型。这些事件包括http请求、消息队列被放入新的消息等。无服务器厂商会在这些事件发生时启动应用程序,根据事件发生的频率拓展或减少应用程序使用的资源量,并在事件长时间无响应时及时关闭应用程序。这种能够响应事件的发生,并动态发出对应用程序进行启动、扩缩容、关闭等请求的结构被称为触发器。无服务器计算中的同步触发器主要用于在接收到客户端请求时,同步地启动应用程序并完成处理客户端请求。当前行业主流的的同步触发器只能工作在http协议下处理以http协议为基础的应用程序,而无法处理其他应用层网络协议;不能主动关闭对应于其他应用层网络协议的应用程序,资源用量大。

3、综上,现有技术存在只能工作在http协议下处理以http协议为基础的应用程序,而无法处理其他应用层网络协议,以及不能主动关闭对应于其他应用层网络协议的应用程序,资源用量大的缺陷。


技术实现思路

1、鉴于上述问题,本发明提供了一种无服务器计算同步触发器及其使用方法,解决了现有技术中只能工作在http协议下处理以http协议为基础的应用程序,而无法处理其他应用层网络协议,以及不能主动关闭对应于其他应用层网络协议的应用程序,资源用量大的问题。

2、本发明提供了一种无服务器计算同步触发器,包括管理模块、数据库模块、内核监听模块、响应模块和应用程序控制模块;其中,

3、管理模块用于处理用户输入,生成http请求发送至响应模块;还用于接收来自响应模块的http响应并将应用程序的配置信息写入数据库模块;

4、数据库模块用于存储应用程序的配置信息;

5、内核监听模块用于监听tcp或udp数据包的流量变化,并将该数据包的流量变化发送至响应模块;

6、响应模块用于根据http请求指导内核监听模块对应用程序进行配置,并返回http响应至管理模块;还用于根据数据包的流量变化来指导应用程序控制模块触发应用程序启动或超时关闭应用程序。

7、进一步地,内核监听模块包括netfilter模块、端口号状态机和超时监听线程;其中,

8、netfilter模块包括netfilter钩子函数,该netfilter钩子函数用于拦截发往端口的tcp和udp的数据包;

9、端口号状态机用于维护每个端口号的内部状态,每个端口号的每种网络协议类型都会对应一个端口号状态机;其中,网络协议指tcp或udp;

10、端口号状态机的状态包括停止状态、启动中状态、启动完成状态和停止中状态;

11、超时监听线程循环地执行对每个端口号状态机的检查;在每个循环中,该线程首先获取当前的时间戳,然后遍历每个端口号状态机,并比较每个端口号状态机最后一个收到数据包的时间戳与当前的时间戳的差值;当该差值大于预设阈值时,判定对应的端口处于不活跃状态,端口号状态机转移到停止中状态。

12、进一步地,端口号状态机默认处于停止状态;

13、当netfilter钩子函数拦截到发往对应端口的tcp或udp类型的数据包时,该端口号状态机转移到启动中状态,并通知响应模块启动对应的应用程序;

14、响应模块启动对应的应用程序后,通知内核监听模块,此时,该端口号状态机转移到启动完成状态;

15、当超时监听线程发现端口长时间无新的数据包输入时,判定该端口处于不活跃状态,端口号状态机转移到停止中状态,同时通知响应模块停止对应的应用程序;此时,若netfilter钩子函数再次拦截到发往该端口的数据包,端口号状态机重新转移到启动完成状态;否则,在响应模块停止应用程序后,通知内核监听模块,端口号状态机重新转移到停止状态。

16、进一步地,端口号状态机对应proc文件,该proc文件用于实现内核监听模块与响应模块之间的通信;当tcp或udp数据包的流量变化时,内核监听模块将包含tcp或udp数据包的流量变化消息的proc文件发送至响应模块。

17、进一步地,响应模块包括控制单元、消息队列和监听单元;其中,

18、控制单元用于被管理模块调用,获取包含有添加或移除指令的http请求,生成对应的添加或移除指令的端口监听事件,并发送到消息队列中;

19、消息队列用于存储添加或移除指令的端口监听事件;

20、监听单元用于监听消息队列中的端口监听事件,还用于通过epoll的方式监听proc文件集合中各proc文件的变化;监听单元用于监听消息队列中是否有新的端口监听事件发生和是否有新的epoll事件发生;

21、当监听到消息队列中有新的端口监听事件发生时,监听单元会根据新的端口监听事件的内容,判断是对端口的添加还是删除,并对应地在通过epoll方式监听的proc文件集合中添加或删除对应的proc文件;

22、当监听到有新的epoll事件发生时,监听单元会遍历所有已经就绪的proc文件,并读取proc文件内容,以获知内核监听模块发送的tcp或udp数据包的流量变化消息。

23、进一步地,管理模块包括前端交互单元和后端服务单元;其中,

24、前端交互单元提供表单交互界面用于接收和验证用户输入,并将合法的用户输入通过http请求发送给后端服务单元;

25、后端服务单元用于处理前端交互单元的http请求并发送至响应模块;还用于接收来自响应模块的http响应,向前端服务单元返回http响应,并将应用程序的配置信息写入数据库模块。

26、进一步地,所述应用程序的配置信息,包括应用程序的名称、应用程序的启动参数、应用程序的端口号和应用程序的网络协议类型。

27、本发明还提供了一种使用上述无服务器计算同步触发器注册应用程序的方法,用d表示待注册的应用程序,包括如下步骤:

28、步骤a1.将d的配置信息发送至管理模块的前端交互单元,经校验,生成包含d的配置信息的http请求并发送给管理模块的后端服务单元;

29、步骤a2.管理模块的后端服务单元分配d的端口号和d的网络协议类型,并将包含d的端口号和d的网络协议类型的http请求发送给响应模块;

30、步骤a3.响应模块的控制单元生成对应的添加指令的端口监听事件并发送到消息队列中;

31、步骤a4.响应模块的监听单元监听到消息队列中的所述添加指令的端口监听事件并读出,向内核监听模块发送创建d的proc文件的请求;

32、步骤a5.内核监听模块新建d的proc文件和d的端口号状态机,将d的端口号状态机设置为停止状态;

33、步骤a6.响应模块的监听单元在内核监听模块新建d的proc文件后,将d的proc文件添加到epoll的proc文件集合中;

34、步骤a7.响应模块向管理模块的后端服务单元返回关于d的http响应;管理模块收到关于d的http响应后,其后端服务单元将d的配置信息写入数据库模块,然后向前端交互单元返回注册成功的http响应,完成注册。

35、本发明还提供了一种使用上述无服务器计算同步触发器触发应用程序启动的方法,待触发的应用程序e对应的端口号为e,收到的是tcp数据包,对应的端口为端口e-tcp,对应的proc文件表示为e的proc文件,对应的端口号状态机表示为端口号状态机e-tcp,使用上述无服务器计算同步触发器触发应用程序启动的方法具体包括如下步骤:

36、步骤b1.完成e的注册;向端口e-tcp发送第一时段的tcp数据包;

37、步骤b2.内核监听模块注册的netfilter钩子函数拦截到发往端口e-tcp的第一时段的tcp数据包,将端口号状态机e-tcp转移到启动中状态,并将等待在e的proc文件的epoll调用唤醒;

38、步骤b3.响应模块中的监听单元监听到epoll调用的返回,并发起对e的proc文件的“read”系统调用;

39、步骤b4.内核监听模块收到响应模块对e的proc文件的“read”系统调用,并返回当前端口号状态机e-tcp的状态值;

40、步骤b5.响应模块的监听单元对e的proc文件的“read”系统调用返回,并得到当前端口号状态机e-tcp的状态值;

41、步骤b6.根据当前端口号状态机e-tcp的状态值,响应模块的监听单元查询数据库模块,获取e的名称和e的启动参数;

42、步骤b7.响应模块将e的名称和e的启动参数发送给应用程序控制模块以启动e;

43、步骤b8.在e启动后,响应模块配置ipvs转发规则,用于将发往端口e-tcp的第二时段的tcp数据包转发到e的实际工作端口;

44、监听单元发起对e的proc文件的“write”系统调用,并写入启动完成的状态值;

45、步骤b9.内核监听模块收到响应模块对e的proc文件的“write”系统调用,并将端口号状态机e-tcp转移到启动完成状态;

46、步骤b10.netfilter钩子函数拦截到发往端口e-tcp的第三时段的tcp数据包,经查询端口号状态机e-tcp并发现其处于启动完成状态,则直接放行该发往端口e-tcp的第三时段的tcp数据包,并将端口e-tcp的最后一次收到tcp数据包的时间戳更新为当前的时间戳;

47、步骤b11.根据步骤b8中配置的ipvs转发规则,发往端口e-tcp的第三时段的tcp数据包将被转发到e的实际监听端口中,完成触发e的启动。

48、本发明还提供了一种使用上述无服务器计算同步触发器超时关闭应用程序的方法,待超时关闭的应用程序f对应的端口号为f,收到的是tcp数据包,对应的端口为端口f-tcp,对应的proc文件表示为f的proc文件,对应的端口号状态机表示为端口号状态机f-tcp,使用上述无服务器计算同步触发器超时关闭应用程序的方法包括如下步骤:

49、步骤c1.内核监听模块的超时监听线程判定端口f-tcp处于不活跃状态,并将其对应的端口号状态机转移到停止中状态,然后将等待在f的proc文件的epoll调用唤醒;

50、步骤c2.响应模块中的监听单元监听到epoll调用的返回,并发起对f的proc文件的“read”系统调用;

51、步骤c3.内核监听模块收到响应模块对f的proc文件的“read”系统调用,返回当前端口号状态机f-tcp的状态值;

52、步骤c4.响应模块的监听单元对f的proc文件的“read”系统调用返回,并得到当前端口号状态机f-tcp的状态值;

53、步骤c5.根据当前端口号状态机f-tcp的状态值,响应模块的监听单元查询数据库模块,获取f的名称;

54、步骤c6.响应模块将f的名称发送给应用程序控制模块以关闭f;

55、步骤c7.在f关闭后,响应模块更新ipvs转发规则;

56、响应模块的监听单元发起对f的proc文件的“write”系统调用,并写入停止状态值;

57、步骤c8.内核监听模块收到响应模块对f的proc文件的“write”系统调用,并将端口号状态机f-tcp转移到停止状态,完成对f的自动超时关闭。

58、与现有技术相比,本发明至少具有现如下有益效果:

59、(1)本发明设计了一种无服务器计算同步触发器机制,在客户端试图与应用程序建立tcp或udp连接时,动态启动应用程序;该触发器机制可以兼容http协议,同时可以适用其他基于tcp或udp的应用层网络协议,适用范围广,处理能力强。

60、(2)本发明为无服务器计算同步触发器提供超时断连机制;当检测到客户端与应用程序长时间无网络数据包交互时,主动关闭应用程序,节约资源用量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1