一种基于网络状态机的本地持久化方法与流程

文档序号:29933131发布日期:2022-05-07 13:09阅读:151来源:国知局
一种基于网络状态机的本地持久化方法与流程

1.本发明涉及大数据技术领域,具体为一种基于网络状态机的本地持久化方法。


背景技术:

2.通过对感知器的上下行通道搭建成现有的通行中间件,具有高度定制化功能,能够自由的扩展接入与分发系统,以及管理系统的高可用性能。已有的解决案例是用过源源不断的其他持久化系统,比如关系数据库、非关系数据库、缓存中间件的服务做数据中转。引入太多中间件,不利于整体服务的稳定性。如果当前服务进入一个孤立状态,很难保证其数据不丢失特。


技术实现要素:

3.(一)解决的技术问题
4.针对现有技术的不足,本发明提供了一种基于网络状态机的本地持久化方法。
5.(二)技术方案
6.为实现上述目的,本发明提供如下技术方案:一种基于网络状态机的本地持久化方法,包括以下步骤:
7.s1:准备阶段,网络状态机处于等待连接状态;
8.s2:客户端代理将数据写入本地磁盘文件中;
9.s3:网络状态机进入半打开状态;
10.s4:本地持久化文件读取并发送机制;
11.s5:网络状态机进入并行状态;
12.s6:客户端代理将数据发送到网络分发服务端上;
13.s7:删除读取完毕的文件;
14.s8:网络状态机会进入正常状态。
15.优选的,所述s1和s2步骤中,当服务刚启动时,状态机处于等待连接状态,此时接收外部数据,并通过客户端代理将数据写入本地磁盘文件中。
16.优选的,所述s3和s4步骤中,当网络接收客户端与网络分发服务端建立网络通道后,网络状态机进入半打开状态,此时通过状态机调度服务,尝试本地持久化文件读取并发送机制。
17.优选的,所述s5和s6步骤中,当本地化文件读取并发送成功后,网络状态机进入并行状态;
18.此时所有的后续数据会不停的通过客户端代理直接发送到网络分发服务端上;
19.网络状态机调度的读取线程也不停的读取当前持久化文件,并且通过客户端代理将数据发送到网络分发服务端上。
20.优选的,所述s7和s8步骤中,当我们后续的文件都读取完毕,会将读取完毕的文件删除,已节约磁盘空间,此时网络状态机会进入正常状态,所有的后续数据会不停的通过客
户端代理直接发送到网络分发服务端上。
21.优选的,网络接收客户端与网络分发服务端是多对多关系,同一个客户端会对应多个服务端,同理多个服务端会对应多个客户端,当其中一个客户端与服务端的连接状态断开时,并不会使网络状态机进入静默状态。
22.优选的,当前的客户端对应的所有网络分发服务端都断开连接了,那么才会使网络状态机进入静默状态,所有当前的数据会通过客户端代理写入本地磁盘。
23.优选的,网络状态机会通过调度服务去尝试重新建立网络接收客户端与网络分发服务端的连接通道,此时网络状态机重新进入等待连接状态。
24.(三)有益效果
25.与现有技术相比,本发明提供了一种基于网络状态机的本地持久化方法,具备以下有益效果:
26.1、该基于网络状态机的本地持久化方法,本方案可以支撑整个中间件服务在孤岛状态下正常的运行,防止因为多个中间件与其他系统服务的宕机而导致连锁雪崩状态。突出本机治理,弱化对其他服务的依赖。真正意义实现高性能、高可用、高扩展模式。
27.2、该基于网络状态机的本地持久化方法,自研通讯中间件中使用,为了在网络状态不稳定,服务不稳定的情况下,防止服务之间连接通道断开后,数据丢失问题。
附图说明
28.图1为本发明流程解析结构示意图;
29.图2为本发明网络状态机的本地持久化方法流程框架图;
30.图3为本发明分发者系统流程框架图。
具体实施方式
31.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
32.请参阅图1-3,一种基于网络状态机的本地持久化方法,包括以下步骤:
33.s1:准备阶段,网络状态机处于等待连接状态;s2:客户端代理将数据写入本地磁盘文件中;当服务刚启动时,状态机处于等待连接状态,此时接收外部数据,并通过客户端代理将数据写入本地磁盘文件中。
34.s3:网络状态机进入半打开状态;s4:本地持久化文件读取并发送机制;当网络接收客户端与网络分发服务端建立网络通道后,网络状态机进入半打开状态,此时通过状态机调度服务,尝试本地持久化文件读取并发送机制,网络接收客户端与网络分发服务端是多对多关系,同一个客户端会对应多个服务端,同理多个服务端会对应多个客户端,当其中一个客户端与服务端的连接状态断开时,并不会使网络状态机进入静默状态,当前的客户端对应的所有网络分发服务端都断开连接了,那么才会使网络状态机进入静默状态,所有当前的数据会通过客户端代理写入本地磁盘。
35.s5:网络状态机进入并行状态:s6:客户端代理将数据发送到网络分发服务端上;所述s5和s6步骤中,当本地化文件读取并发送成功后,网络状态机进入并行状态;
36.此时所有的后续数据会不停的通过客户端代理直接发送到网络分发服务端上;
37.网络状态机调度的读取线程也不停的读取当前持久化文件,并且通过客户端代理将数据发送到网络分发服务端上。
38.s7:删除读取完毕的文件;s8:网络状态机会进入正常状态;当后续的文件都读取完毕,会将读取完毕的文件删除,已节约磁盘空间,此时网络状态机会进入正常状态,所有的后续数据会不停的通过客户端代理直接发送到网络分发服务端上。
39.网络状态机会通过调度服务去尝试重新建立网络接收客户端与网络分发服务端的连接通道,此时网络状态机重新进入等待连接状态。
40.所述网络状态机上连接有控制器,所述控制器控制网络状态机的运行状态,所述网络状态机上设置有请求处理程序,网络状态机与请求处理程序双向连接,所述请求处理程序上连接有波段模块、设备模块、请求模块和netty 服务器模块,波段模块、设备模块、请求模块和netty服务器模块依次相连,所述请求处理程序上连接有客户端代理,所述客户端代理上连接到客户端口上,所述客户端与网络状态机相连,所述网络状态机、请求处理程序、客户端代理和客户端口依次相连并呈环形。
41.所述客户端口上双向连接有分发者系统,所述客户端代理上设置有本地磁盘写入模块,所述客户端代理上通过本地磁盘写入模块连接有本地磁盘备忘录,所述本地磁盘备忘录包括有故障恢复模块、写入io线程模块、磁盘文件1、磁盘文件2,所述故障恢复模块通过本地磁盘写入模块与客户端代理相连接,所述故障恢复模块连接到写入io线程模块,并拉取请求写入io线程,写入io线程模块分别连接到磁盘文件1、磁盘文件2,当写入io线程模块故障并降级后写入到磁盘文件1内,当写入io线程模块请求写入新文件时写入到磁盘文件2内,所述磁盘文件1、磁盘文件2分别连接有读取io线程模块,两个io线程模块分别读取磁盘文件1、磁盘文件2内的数据,磁盘文件1通过io线程模块并使用调用请求的方式连接到请求处理程序上,磁盘文件2通过io线程模块与正常数据流并行的方式连接到请求处理程序上。
42.所述分发者系统上包括有管理线程服务器,客户端口与管理线程服务器相连接,所述管理线程服务器上连接有信息获取模块,分发者系统通过信息获取模块以及管理线程服务器,从客户端口上获取信息,所述信息获取模块上连接有数据库、时间轮计时器、开源流处理平台,信息获取模块获取的信息分别传输到数据库、时间轮计时器、开源流处理平台,数据库、时间轮计时器、开源流处理平台连接有响应机制模块,数据库、时间轮计时器、开源流处理平台通过响应机制模块对信息获取模块获取的信息进行响应,所述响应机制模块与数据库双向连接,通过响应机制模块数据库、时间轮计时器、开源流处理平台响应后储存到数据库内,所述响应机制模块连接有管理通道模块,响应后的数据信息通过管理通道模块输送到客户端口上。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1