一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

大规模实时数据流一体化处理、转发和存储方法及系统与流程

2021-10-27 21:40:00 来源:中国专利 TAG:数据流 实时 转发 特别 方法


1.本发明涉及大规模实时数据流处理领域,特别涉及一种大规模实时数据流一体化处理、转发和存储方法及系统。


背景技术:

2.目前,大数据背景下的实时数据面临流量巨大、流速特别快、难以快速计算与存储的问题。
3.1、实时流处理过程如图1所示,数据处理模块所需的数据均来自数据输入缓冲区。当数据进入输入数据缓冲区时,数据处理模块充当消费者的角色,去输入数据缓冲区中消费消息,数据处理模块从输入缓冲区中拿到需要处理的消息时,数据处理模块充当生产者的角色往数据处理结果缓冲区中生产消息。
4.传统流式计算框架的缺陷在于:处理过程中各个阶段的数据位于不同的内存空间中,数据处理的过程中数据本身发生了多次不同内存间的拷贝,这种不同内存空间中的多次数据拷贝需要依赖操作系统的调度,需要操作系统进行多次寻址的操作。频繁的系统调度造成了额外的开销,一方面降低了数据处理的速度,另一方面造成了系统资源的浪费。
5.2、传统高并发数据消费过程如图2所示,在某些应用场景下,会出现多个应用需要同时消费同一个数据流的场景,传统的高并发数据消费技术为每一个需要同一数据流的消费者复制了一个新的流数据,每一个消费者消费的其实是同一个流的复制品。
6.传统高并发数据消费技术的缺陷在于:对于每一个需要这个数据流的消费者总是产生一个新的流,这无疑增加了数据的总流量,这种数据分发方式无疑给网络带宽带来了极大的挑战,极大的增加了系统的建设成本。
7.3、当下主流的数据存储技术莫过于数据库存储技术,以最常用的mysql为例,其结构如图3所示,其本质就是一个文件系统,它将数据保存在不同的表中,用户通过标准sql语句对数据库中的数据进行增加、修改、删除以及查询等操作。
8.数据库存储确实可以适应大部分的存储需要,但是在某些场景下,如高速流的实时存储场景中,数据库存储暴露出了许多的问题。第一,数据库无法将数据实时的卸载到二级存储中,为了保证高的写入速率,我们需要造价昂贵的ssd磁盘阵列作为存储介质,极大的增加了存储系统的造价。第二,数据库的数据迁移消耗很大,当存储空间满时,必须人工进行数据迁移,而且此时无法再向数据库中写入数据。第三,在一些短时存储的场景中使用数据库是没有必要的,在这种场景下使用数据库反而增加了成本。
9.4、高速数据传输技术
10.传统的网络数据传输采用socket进行,socket就是内核中的一块缓冲区,用于缓冲发送的数据和接收的数据,当客户端和服务端建立连接之后,就可以使用对应的socket在网络中进行数据的交换。
11.但是在客户端比较多的高并发场景下,传统socket具有很大的缺陷。第一,当维持的连接中只有少部分连接活跃时,不活跃的连接依然要占用系统资源。其二,每建立一个新
的连接,就要同时创建若干个线程去处理和这个连接相关的事务,而创建线程是一个非常耗时的操作,这一操作势必会影响整个程序的性能。
12.因此,如何改变现有的上述技术缺陷,成为同行从业人员亟待解决的问题。


技术实现要素:

13.本发明的目的在于,为了解决上述现有技术存在的不足之处,提出大规模实时数据流一体化处理、转发和存储方法及系统。
14.为实现上述目的,本发明采取的技术方案为:
15.第一方面,本发明实施例提供一种预制构件质量信息化监造、管控及追溯系统,包括:
16.实时流处理步骤:根据实时数据流的规模,将位于不同内存空间中的数据缓冲区整合到一块完整的内存空间中;将所述完整的内存空间的首地址保存到一个共享指针变量中,并划分为若干个子空间,根据指针的偏移来获取各个子空间的数据;
17.高速数据传输步骤:通过监听机制只监听有事件发生的连接;引入线程池技术,对线程进行统一的管理,在程序初始化同时建立一个线程池,预先创建一系列工作线程等待任务的使用;
18.高速数据同步存储步骤:根据当前场景下需要保存数据的时间长短,选择对应的数据存储介质。
19.进一步地,所述高速数据同步存储步骤,包括:
20.在短期存储场景下,采用内存文件系统进行存储;根据内存空间的大小和实时数据流的规模,确定查询周期;删除在查询周期内未被读写操作过的数据;
21.在长期存储场景下,先将数据写入写缓存中,当写缓存容量超过缓存预设阈值时,写入容灾存储设备同时写入一级ssd磁盘;当所述一级ssd磁盘的利用率超过ssd预设阈值时,将老数据拷贝到二级机械磁盘,同时清除一级ssd磁盘上的相应数据。
22.进一步地,还包括:
23.高并发数据消费步骤:为每个消费者维护一个游标以记录当前消费者消费消息的位置;当消费者成功消费一条消息时,所述消费者对应的游标就指向下一条未消费的消息;当一个新的消费者建立时,游标的初始位置设置为没有删除的最早的消息处,而且只有当所有消费者的游标都到达同一个位置时才能将这个位置之前的消息删除,保证每一个消费者都能消费一个流中的所有消息。
24.进一步地,还包括:
25.跨地域复制步骤:将其中一部分数据跨越两个数据中心做备份,有两个生产者在两个数据中心发布消息到同一数据通道,同时这两个数据中心中有两个消费者消费同一通道中的消息,当消息由本数据中心的生产者发布成功后,会立即复制到其他两个数据中心。
26.进一步地,还包括:
27.弹性反压步骤:当发送队列的长度超过长度阈值时,发送端停止向发送队列中继续发送数据;直到下游处理完多余的数据后,再继续发送数据。
28.进一步地,所述高速数据传输步骤,还包括:根据每一个用户需求分配系统资源并调整数据传输过程中的属性,所述属性包括:用户的发送速率、最大消费者数量和最大消费
的数据通道数量。
29.第二方面,本发明实施例还提供大规模实时数据流一体化处理、转发和存储系统,包括:
30.数据高速处理业务模块,用于根据实时数据流的规模,将位于不同内存空间中的数据缓冲区整合到一块完整的内存空间中;将所述完整的内存空间的首地址保存到一个共享指针变量中,并划分为若干个子空间,根据指针的偏移来获取各个子空间的数据;
31.高速数据转发业务模块,用于通过监听机制只监听有事件发生的连接;引入线程池技术,对线程进行统一的管理,在程序初始化同时建立一个线程池,预先创建一系列工作线程等待任务的使用;
32.高速数据实时存储业务模块,用于根据当前场景下需要保存数据的时间长短,选择对应的数据存储介质。
33.进一步地,所述数据高速处理业务模块,包括:
34.数据接入缓冲模块,用于将接入的数据进行缓存,等待后续的数据高速处理模块进行使用;当缓存占用率达到预设的阈值时,将已经处理过的数据及时逐出缓存;
35.数据高速处理模块,用于实时的从所述数据接入缓冲模块中取出数据,读取到内部的缓冲区中,进行实时处理;当数据处理结束后,将数据处理后的结果,从内部的缓冲区加载到数据发送缓冲模块中;
36.数据发送缓冲模块,用于接收所述数据高速处理模块的处理结果,等待后续的所述数据高速转发业务模块将数据按需求进行分发,分发过后的数据将会及时的从缓存中逐出;
37.处理结果反馈模块,用于反馈所述数据高速处理模块的每次数据处理结果;当数据处理失败,则将处理失败发生的时间点,数据通道编号,错误原因写入到错误日志中进行保存。
38.进一步地,所述高速数据转发业务模块,包括:
39.数据发送模块,用于从所述数据发送缓冲模块中读取数据,将读取到的数据送入数据接收模块,然后将数据送入相应的数据发送队列中,最后经由网络传输至数据接收端;
40.数据接收模块,用于从网络中将数据接收到本地缓存中,并解析接收数据的索引,同时将接收到的数据和索引进行持久化存储;
41.数据转发对外接口,用于供应用方的程序从所述数据接收模块中的接收队列调用数据;当所述接收队列中无可用的数据,则向所述数据接收模块的接收队列请求数据,请求数据时程序阻塞等待有新的数据压入队列;当所述接收队列中可用的数据条数小于队列阈值时,则向所述数据接收模块请求数据;
42.用户资源管理模块,用于根据每一个用户需求分配系统资源并调整数据传输过程中的属性,所述属性包括:用户的发送速率、最大消费者数量和最大消费的数据通道数量。
43.进一步地,所述高速数据实时存储业务模块,包括:
44.一级存储管理模块,用于管理一级ssd磁盘;在长期存储场景下,先将数据写入写缓存中,当写缓存容量超过缓存预设阈值时,写入容灾存储设备同时写入一级ssd磁盘,当所述一级ssd磁盘的利用率超过ssd预设阈值时,将老数据拷贝到二级机械磁盘,同时清除一级ssd磁盘上的相应数据;
45.二级存储管理模块,用于管理二级机械磁盘,配合所述一级存储管理模块完成数据卸载,并且在二级机械磁盘存储容量达到容量阈值时发出警告;
46.短时存储管理模块,用于在短期存储场景下,采用内存文件系统进行存储;根据内存空间的大小和实时数据流的规模,确定查询周期;删除在查询周期内未被读写操作过的数据;
47.存储模式选择模块,用于根据当前场景下需要保存数据的时间长短,选择对应的一级存储管理模块、二级存储管理模块或短时存储管理模块;
48.数据容灾模块,用于根据预设的副本数量,在将数据写入本地存储设备时,同时将数据写入多个不同的存储设备中去,当本地存储设备发生故障如磁盘损坏而发生数据丢失时,数据容灾模块会继续将数据写入其他存储设备中去;
49.数据恢复模块,用于当设备故障解除后,进行数据恢复,将本地存储设备的数据与备用存储设备的数据进行同步;
50.数据查询模块,用于提供存储数据查询业务;
51.数据清除模块,用于释放存储空间。
52.与现有技术相比,本发明具有如下有益效果:
53.1.针对传统实时无状态流处理技术存在的缺陷,设计了一个新的实时无状态流处理框架,在这个框架中,将原本位于不同内存空间中的数据缓冲区整合到一块完整的内存空间中,再把这个整体的内存空间划分为若干个子空间,分别给不同的处理环节使用,处理过程中可以依靠指针的偏移来获取各个部分的数据,从而减少了操作系统频繁寻址所浪费的时间,大大提高了数据处理的速度和效率。
54.2.针对传统高并发数据消费技术存在的缺陷,设计了一个新的数据消费机制,为每个消费者维护一个游标,用于标记当前消费者消费到的数据位置,只有当所有消费者都消费到同一位置时,这一位置之前的数据才会被永久的从系统中删除,通过这种方式,避免了数据流的复制,同时保证了每个消费者都能消费到同一各数据流中的所有数据。
55.3.针对传统数据库存储技术在实时高速流存储场景下存在的缺陷,设计了一个新的存储系统,在这个新的系统中,引入了数据存储模式选择模块,可以根据当前场景下需要保存数据的时间长短,选择数据存储的介质。在短时存储情况下,可以采用内存文件系统进行存储,在长期存储情况下,使用ssd磁盘阵列作为一级存储,保证较高的写入速率,同时引入机械磁盘阵列作为二级存储,当一级存储容量将满时,将一部分老数据从一级存储卸载到便宜的二级存储中去,以降低存储成本。
56.4.针对传统socket通信中存在的问题,引入了高效的事件监听机制,对于所有维持的连接,只监听有事件发生的连接,对于那些不活跃的连接则不予以响应,以降低不活跃的连接对系统资源的消耗。其次,引入了线程池技术,对线程进行统一的管理,在程序初始化同时建立一个线程池,预先创建一系列工作线程等待任务的使用,避免了在程序运行过程中即时创建线程导致的系统性能下降。
附图说明
57.图1为现有技术中实时流处理过程示意图。
58.图2为传统高并发数据消费过程示意图。
59.图3为现有技术中mysql存储结构图。
60.图4为本发明实施例一提供的大规模实时数据流一体化处理、转发和存储方法流程图。
61.图5为本发明实施例一提供的实时流处理示意图。
62.图6为本发明实施例一提供的高并发数据消费流程示意图。
63.图7为本发明实施例一提供的高速数据同步存储流程示意图。
64.图8为本发明实施例一提供的跨地域复制流程示意图。
65.图9为本发明实施例一提供的大规模实时数据流的弹性反压流程示意图。
66.图10为本发明实施例一提供的高速传输以及资源控制流程示意图。
67.图11为本发明实施例一提供的大规模实时数据流一体化处理、转发和存储方法执行示意图。
68.图12为本发明实施例二提供的大规模实时数据流一体化处理、转发和存储系统的总体架构图。
69.图13为本发明实施例二提供的数据处理传输一般流程图。
具体实施方式
70.为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
71.在本发明的描述中,需要说明的是,术语“上”、“下”、“内”、“外”“前端”、“后端”、“两端”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
72.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
73.实施例一:
74.本发明实施例提供大规模实时数据流一体化处理、转发和存储方法,包括:
75.实时流处理步骤:根据实时数据流的规模,将位于不同内存空间中的数据缓冲区整合到一块完整的内存空间中;将所述完整的内存空间的首地址保存到一个共享指针变量中,并划分为若干个子空间,根据指针的偏移来获取各个子空间的数据;
76.高速数据传输步骤:通过监听机制只监听有事件发生的连接;引入线程池技术,对线程进行统一的管理,在程序初始化同时建立一个线程池,预先创建一系列工作线程等待任务的使用;
77.高速数据同步存储步骤:根据当前场景下需要保存数据的时间长短,选择对应的数据存储介质。
78.下面分别对本发明实施例一所述涉及的技术或步骤进行详细的说明:
79.1、实时流处理步骤,为了实现高效的无状态流处理技术,就要将原有的多块内存空间合并为一块。为了达到这个目的,首先根据要处理数据的规模,在内存中开辟一块足够大的空间,接着把这片空间的首地址保存到一个共享的指针变量中,保证处理过程中任意一个环节都可以访问到这个指针变量,接着根据各个环节具体所需的内存空间的大小将内存划分为若干个子区间,数据处理时,通过访问共享指针变量加上子区间的偏移量,先将数据写入预先分配好的子区间中,然后使用同样的方法从子区间中读取需要的数据,最后再将计算结束后的数据输出到输出缓冲区中去;具体结构如图5所示。
80.2、参照图1所示,该方法还包括高并发数据消费步骤;
81.为了实现高并发数据消费技术,为每个消费者维护一个游标以记录当前消费者消费消息的位置。每当消费者成功消费一条消息时,这个消费者对应的游标就指向下一条未消费的消息。每当一个新的消费者建立时,游标的初始位置应该设置为没有删除的最早的消息处,而且只有当所有消费者的游标都到达同一个位置时才能将这个位置之前的消息删除,这样保证了每一个消费者都能消费一个流中的所有消息,具体如图6所示。
82.3、高速数据同步存储步骤:
83.在数据存储时间要求比较短的情况下,则没有必要使用造价高昂的ssd磁盘阵列来存储数据。在这种场景下,使用内存作为存储载体是一个不错的选择,首先,使用内存作为存储载体可以保证高速的写入速度,其次,现在已经有许多的内存文件系统如tmpfs、ramfs等可以使用。
84.在这种短期存储场景下,可以采用内存文件系统如tmpfs来短暂的保存数据,同时建立一个后台服务用于管理内存文件系统中存储的数据,这个管理服务的作用就是定时查看内存文件系统的使用情况,及时清除比较老的数据以释放内存空间,防止内存空间溢出导致的系统崩溃,具体做法是,根据内存空间的大小和数据的规模,确定一个时间间隔,每隔一段时间查询文件系统中在这段时间内没有进行过读写操作的文件,将这种文件认定为比较老的数据,然后直接将这些文件清除即可。
85.对于长期存储来说,首先要保证高的读写速率,其次要保证较好的数据容灾和恢复能力,最后需要节约系统建设的成本。为了达到以上目的,当接收到数据写入请求之后,在数据写入磁盘之前,先将数据写入写缓存之中,当数据成功写入写缓存之后直接返回处理下一个请求,只有当写缓存容量超过预设阈值时才真正将数据写入磁盘,以保证高速的写入效率,在读取数据时先从读写缓存中查找需要的数据,如果没有找到数据则说明发生了缓存丢失现象,此时需要从磁盘读取数据,在从磁盘读取数据的同时,将一部分数据从磁盘预读到读缓存中,以加快下次缓存丢失时的数据读取速度,通过这种双缓存的方式保证了存储系统较高的读写速率。
86.为了确保数据的容灾能力,在数据写入本地的存储设备之前必须要保证数据已经写入容灾存储设备中,所以在数据写入本地存储设备之前,应该先将数据写入容灾设备中。当数据发生丢失时,可以从容灾存储设备中查找相应数据,最后等待故障恢复之后将数据进行同步,保持各个设备之间数据的一致性。
87.最后,为了节约系统搭建的成本,需要将数据实时卸载到便宜的二级存储设备(机械磁盘)中去,具体做法是,开启一个后台程序,实时监控一级存储设备(ssd磁盘)的空间利用率,当一级存储设备的利用率超过预设的阈值时,将老数据拷贝到二级存储设备(机械磁
盘)中去,同时清除一级存储设备(ssd磁盘)上相应的数据,释放一级存储设备(ssd磁盘)的空间,具体如图7所示。
88.4、参照图1所示,该方法还包括跨地域复制步骤:
89.在生产环境中,常常会涉及到跨多个数据中心的需求,例如生产环境中会使用多个数据中心做数据备份防止服务无法正常运行。本实施例中设计了一种跨地域复制数据的方法,它在保证数据稳定可靠的同时,为用户提供了便捷的操作和管理。
90.如图8所示,有两个数据中心,其中一部分数据跨越了两个数据中心做备份,有两个生产者在两个数据中心发布消息到同一数据通道,同时这两个数据中心中有两个消费者消费同一通道中的消息,当消息由本数据中心的生产者发布成功后,会立即复制到其他两个数据中心。消息复制完成后,消费者不仅可以收到本数据中心产生的消息,也可以收到从其他数据中心复制过来的消息。
91.具体的实现方式是:在一个数据中心中的生产者发布消息后,同时在同一个数据中心中会开启一个额外的消费者和一个额外的生产者,这个消费者实时的消费消息,消费完成后再由额外的生产者负责将数据传输到远端。
92.5、参照图1所示,该方法还包括弹性反压步骤:
93.大规模实时数据流的弹性反压流程,如图9所示。
94.反压通常产生于这样的场景:短时负载高峰导致系统接收数据的速率远高于它处理数据的速率。许多日常问题都会导致反压,例如,垃圾回收停顿可能会导致流入的数据快速堆积,或者遇到大促或秒杀活动导致流量陡增。反压如果不能得到正确的处理,可能会导致资源耗尽甚至系统崩溃。
95.为了解决生产中的反压问题,本发明实施例提出了一种弹性反压方式,可以根据下游的消费速度自动调整上游的发送速率,具体做法如图9所示,当发送队列的长度超过阈值时,发送端会感知到这一情况,停止向发送队列中继续发送数据,直到下游处理完多余的数据后,才继续发送数据,使得接收速率与下游的处理速率匹配。
96.6、高速数据传输步骤:
97.如图10所示,为了实现高速传输技术,首先需要建立一个合理的事件监听机制,只需要对那些活跃的连接做出响应,而忽略那些暂时不活跃的连接,从而达到降低cpu利用率的目的。其次,为了减少每次建立单独的发送线程时对程序性能的影响,在数据传输开始前先建立一个线程池,用于执行从缓冲区读取数据、处理数据和发送数据的任务,避免在程序运行过程时创建线程导致性能下降。
98.同时为了合理的分配系统资源,对于每一个用户,可以根据用户地需求为其分配系统资源并调整数据传输过程中的一些属性,例如:可以限制某一个用户的发送速率,最大消费者数量和最大可以消费的数据通道数量,这样就可以针对不通用户的需求为其合理的分配资源。
99.具体做法是:将具有不同的用户在逻辑上进行隔离。不同求的用户之间不共享数据传输配置,为每一个独立的用户创建一套独立的配置,将用户与配置的对应关系进行持久化保存,这样在用户离线后或者是服务重启后,这种对应关系依然存在。
100.本发明实施例提供的大规模实时数据流一体化处理、转发和存储方法,如图11所示,数据中心1和数据中心2各有一个数据源,该数据源发出的数据通过高速数据传输步骤
分发数据,在这个过程中这个数据流可以通过高并发数据消费步骤提供给多个用户使用,同时通过高速数据传输步骤中的资源控制技术控制分配给每个用户的资源。
101.在数据传输的过程中,通过高速数据同步存储步骤将数据同步写入存储系统中,同时进行通过实时流处理步骤对流数据进行处理。而实时流处理步骤和高速数据传输步骤都依赖弹性反压步骤解决生产环境中的反压问题。
102.对于不同的数据中心,可以通过跨地域复制步骤将任何一个数据中心中产生的数据实时同步到另一个数据中心,使另一个数据中心的用户也可以接收到同样的数据。
103.本发明实施例提供的方法中实时流处理步骤、高速数据传输步骤和高速数据同步存储步骤相比于现有的流处理、转发和存储技术具有明显的优势,加快了实时流处理的速度,单路流处理速度不小于7gb/s,可以应用于高达几百gb/s的应用场景的数据处理环节中。
104.解决了高并发数据消费中的流复制的问题,大大降低了高并发场景中对网络带宽的要求。可以在总速率高达几百gb/s的应用场景下保证零丢包率可以将端到端延迟控制在1ms以内,同时支持单路数据通道不小于7gb/s的数据传输速率。
105.可以适应多种存储场景的需要,支持高达几百gb/s的写入速率,支持高达几百tb的实时大容量存储,同时也大大降低了存储的成本。
106.实施例二:
107.本发明实施例还提供大规模实时数据流一体化处理、转发和存储系统,参照图12所示,包括:
108.数据高速处理业务模块,用于根据实时数据流的规模,将位于不同内存空间中的数据缓冲区整合到一块完整的内存空间中;将所述完整的内存空间的首地址保存到一个共享指针变量中,并划分为若干个子空间,根据指针的偏移来获取各个子空间的数据;
109.高速数据转发业务模块,用于通过监听机制只监听有事件发生的连接;引入线程池技术,对线程进行统一的管理,在程序初始化同时建立一个线程池,预先创建一系列工作线程等待任务的使用;
110.高速数据实时存储业务模块,用于根据当前场景下需要保存数据的时间长短,选择对应的数据存储介质。
111.如图12所示,最底层为基础设施层,包括主机系统、存储系统、网络系统和系统中的软件,这些基础设施是整个平台建设的硬件支撑,所有服务和核心业务都依赖于这些基础设施,可以说这些基础设施是整个平台建设的基石。
112.在基础设施层之上,是整个平台的服务层,服务层为平台上的核心业务提供了支撑。一级和二级存储服务、数据查询服务和数据容灾、恢复服务为数据存储业务提供了支撑,而数据高速处理服务、网络通信服务和用户资源管理服务为数据高速转发业务和数据高速处理业务提供了强而有力的支撑。可以说,服务层中所有服务的稳定运行就是核心业务正常开展的有力保障。
113.在服务层之上,就是整个平台的核心业务层,本实施例中提到的大规模实时数据流传输系统的核心业务主要由三大块组成,分别是:数据高速处理业务模块、高速数据转发业务模块、高速数据实时存储业务模块。每一个具体的业务模块由多个功能模块组成。
114.1.数据高速处理业务模块
115.组成:数据接入缓冲模块、数据高速处理模块、数据发送缓冲模块和处理结果反馈模块。
116.各模块功能:
117.数据接入缓冲模块:
118.用于将接入的数据进行缓存,等待后续的数据高速处理模块进行使用,并且该模块可以定时的对缓存占用率进行检查,当缓存占用率达到预设的阈值时,可以将已经处理过的数据及时逐出缓存,防止过期数据长时间占据缓存空间进而导致缓存溢出。
119.数据高速处理模块:
120.实时的从数据接入缓冲模块中取出一定量的数据,将这些数据读取到该模块内部的缓冲区中,随后对缓冲区中的数据进行实时处理,当数据处理结束之后,将数据处理后的结果,从模块内的缓冲区加载到数据发送缓冲模块中。
121.数据发送缓冲模块:
122.用于接收数据高速处理模块的数据实时处理的结果,等待后续的数据高速转发业务模块将数据按需求进行分发,分发过后的数据将会及时的从缓存中逐出,以防止缓存的溢出。
123.处理结果反馈模块:
124.主要用于反馈每次数据处理的结果,若本次数据处理成功,则不做出任何反应。但是如果本次数据处理失败,则该模块会将这次数据处理的具体信息,例如数据处理失败发生的时间点,数据通道编号,错误原因等写入到错误日志中进行保存,错误日志会长期存储在磁盘上,方便维护人员进行查错。
125.2.高速数据转发业务模块
126.组成:数据发送模块、数据接收模块、数据转发对外接口和用户资源管理模块。
127.各模块功能:
128.数据发送模块:
129.从数据发送缓冲模块中读取数据,将读取到的数据送入数据接收模块,然后将数据送入相应的数据发送队列中,最后经由网络传输至数据接收端。
130.数据接收模块:
131.数据接收模块从网络中将数据接收到本地缓存中,并解析接收数据的索引,同时将接收到的数据和索引进行持久化存储,本地缓存的大小超过预设的阈值时,也会将缓存中的数据逐出缓存,以释放缓存空间。应用方程序中的数据接收接口发生一次调用时,会从数据接收模块中请求数据,数据接收模块首先会从接收缓存中寻找需要的数据,如果缓存中存在需要的数据,则数据接收模块将需要的数据送入数据接收接口中的接收队列中。如果缓存发生丢失,会从实时存储系统中寻找相应的数据返回给数据接收模块,然后再将数据送入接收接口中的接收队列里等待使用。
132.数据转发对外接口:
133.应用方的程序可以通过调用数据接收接口来接收数据,程序中每次调用一次接收接口,就会从相应的接收队列中请求一条数据,如果接收队列中有可以获取的数据,则直接将一条数据弹出队列,交由应用程序使用,如果队列中没有可用的数据,则向数据接收模块请求数据,请求数据时,程序将会阻塞等待有新的数据压入队列中。同时为了尽量减少等待
数据的情况发生,程序每隔一段时间会检测接收队列中数据的条数,如果队列中可用的数据条数小于队列长度的一半,则直接向数据接收模块请求数据,使得队列中大部分时间是有数据存在的,极大的提高了程序运行的效率,防止程序运行时阻塞的情况发生。
134.用户资源管理模块:
135.在实际的应用场景中,一个平台需要服务于多个用户,所以要求一个平台具有同时为多个用户提供服务的能力。用户对于平台有着相同的视图,每个用户对于数据的要求又不尽相同。
136.所以,为了合理的分配系统资源,对于每一个用户,可以根据用户需求为其分配系统资源并调整数据传输过程中的一些属性,例如:可以限制发送给某一个用户的数据速率,最大消费者数量和最大可以消费的数据通道数量,这样就可以针对不同用户的需求为其合理的分配资源。
137.3.高速数据实时存储业务模块
138.组成:一级存储管理模块、二级存储管理模块、短时存储管理模块、存储模式选择模块、数据容灾模块、数据恢复模块、数据查询模块和数据清除模块。
139.各模块功能:
140.一级存储管理模块、二级存储管理模块、短时存储管理模块:
141.这些模块分别用于管理高速的ssd阵列、大容量机械磁盘阵列和内存文件系统,对于一级存储管理模块来说,其主要功能是处理到达一级存储系统上的读写请求,一级存储管理模块接收到数据写入请求之后,为了保证写入的速率,首先会将数据和索引写入写缓存中,当写缓存的容量超过预设阈值时触发刷盘操作,将缓存中的数据刷入磁盘中,将索引送入索引数据库中,同时将数据逐出缓存,释放缓存空间。当一级存储管理模块收到数据读取请求之后,首先会从读、写缓存中查找需要的数据,如果找到需要的数据,则直接把需要的数据返回,如果缓存丢失,则遍历索引查询数据是否存在,若索引存在,则从磁盘读取相应的数据,并且将一部分数据预读在读缓存中,加速后续的读取过程。同时,一级存储管理模块定时查看一级存储的容量使用情况,当容量超过阈值时,将老数据卸载到二级存储上。
142.二级存储管理模块主要功能是配合一级存储管理模块完成数据卸载,并且在二级存储容量将满时发出警告。
143.对于短时存储管理模块来说,其作用主要是及时删除较老的数据,保证内存文件系统有足够的空间接收数据,维持存储系统的稳定。
144.存储模式选择模块:
145.如果应用场景要求存储的时间比较短,可以将数据存入内存文件系统中,使用内存作为临时的文件系统,可以节约使用磁盘的成本,同时提供极高的写入速率,在这种模式下,可以调节数据的保存时间,为了保证内存不溢出,超过保存时间的数据则会从内存文件系统中删除,换言之,内存文件系统中只会保留较新的数据。如果应用场景要求的存储时间比较长的情况下,存储模式选择模块则会将数据写入外置的ssd磁盘阵列中,ssd磁盘阵列可以提供媲美内存的写入速度,同时提供几十个tb的存储容量。如果数据量特别大,使用ssd存储会大量增加存储的成本,存储模式选择模块支持设置数据迁移阈值,阈值可以是存储空间的使用率,或者是数据存储的时间,当外置磁盘阵列的容量或者数据存储时间超过这个阈值时,会触发数据迁移机制,将数据迁移到较为便宜的二级存储中去,同时释放ssd
磁盘阵列上的空间,一般使用容量巨大的机械磁盘阵列作为二级存储。
146.数据容灾模块:
147.根据预设的副本数量,在将数据写入本地存储设备时,同时将数据写入多个不同的存储设备中去,当本地存储设备发生故障如磁盘损坏而发生数据丢失时,数据容灾模块会继续将数据写入其他存储设备中去,当收到读取数据的请求时,可以从多个副本中寻找对应的数据,找到数据后将数据发送给需求方。
148.数据恢复模块:
149.当设备故障解除后,可以进行数据的恢复,将本地存储设备的数据与备用存储设备的数据进行同步,保证各个存储设备上的数据具有一致性。
150.数据查询模块:
151.主要提供存储数据查询业务,当数据查询模块接收到数据查询请求后,会从当前的本地存储中查询符合条件的数据,如果成功查询到数据,则会将查询到的数据返回给需要数据的请求方。
152.数据清除模块:
153.数据清除模块主要是针对数据存储管理没有正确释放相应的存储空间这种场景设计的。当发生这种情况时,为了保证系统稳定运行,需要手动释放相应的存储空间,这时可以通过数据清除模块手动释放存储空间,保证系统的正常运行。
154.最上层就是使用这个平台的应用,根据实际的应用场景,这些应用可以大致的分为三大类,一类是需要对数据进行处理的数据处理应用方,这些应用主要是与对外的接口进行交互,通过调用对外接口,这些应用可以在不关心数据存储和数据处理细节的情况下开展自己的业务。第二类应用需要进行数据的采集,这类应用主要与数据存储业务中的数据查询模块进行交互,从而获取到存储系统中存储的数据,然后开展下面的业务。第三类应用是需要将数据传输过程中的性能指标和传输状态进行分析,这类应用主要是与实时监控服务进行交互,通过与实时监控服务进行交互可以获取数据传输处理过程当中的一些指标和状态,例如数据的发送接收速率、端到端延迟和丢包率等,这些应用在获取这些指标后,可以利用这些指标进行实时的分析,可以对当前系统的整体运行情况做出合理的评价。
155.以图13数据处理传输一般流程图为例:
156.数据接入后通过数据接入缓冲模块进行缓冲,随后数据高速处理模块从数据接入缓冲模块中获取数据并进行数据压缩等数据处理,如果数据处理失败,则会激活处理结果反馈模块,将失败原因和错误发生时间等信息写入日志文件中进行保存,若数据处理成功,则将处理完成之后的数据送入数据发送缓冲模块。
157.当数据发送缓冲模块的缓冲区中有数据时,数据发送模块则会从数据发送缓冲模块中获取数据,再根据用户资源管理模块中提供的用户需求,限制不同用户使用的资源,如发送速率的大小等。明确每个用户的资源需求后,再将数据按照用户的需求通过网络转发给各个用户。
158.当用户通过数据转发对外接口请求接收数据时,数据接收模块会将相应的数据推送给用户,用户接收到消息的同时,根据存储模式选择模块预先设置的存储模式,将收到的数据同步存入相应的存储系统中。如果此时选择的是短时存储管理模块,则会将数据存入内存文件系统中,将数据存入内存文件系统之前,首先会判断内存文件系统的存储容量是
否超过预设的阈值,如果超过阈值则清除较老的数据后再将新的数据存入,如果未超过阈值则直接将数据存入内存文件系统中。如果此时选择的是长期存储模式,那么在数据存入本地的存储设备之前,会将数据先写入其他存储设备中做容灾备份,当数据成功存入灾备存储节点后,才会将数据写入本地存储设备。在写入本地存储设备之前,也会检查一级存储设备的容量是否超过阈值,若容量超过阈值,则会触发数据卸载机制,将一级存储中的老数据迁移到更加便宜的大容量二级存储中去。
159.数据接收模块收到用户的请求之后,首先从数据接收缓存中查找需要的数据,如果数据在缓存中则直接将缓存中的数据返回给用户,如果缓存丢失,则会首先从本地存储中尝试获取相应的数据,如果本地存储中找到需要的数据,则将数据返回,否则将继续从其他容灾数据节点中尝试查找数据,并且在数据找到后进行数据同步,保证所有存储节点上的数据具有一致性。
160.而随着物联网技术的飞速发展,物联网数据传输和处理具有速度快、数据规模大以及实时性要求强的特点,同时面对不同用户的不同需求,要求物联网系统具有较高的灵活性,加之物联网数据对丢包率和传输过程中的顺序性具有十分严格的要求,甚至在某些场景下要求数据丢包率为零。正因为物联网数据传输和处理具有十分严格的要求,使得现有的实时流处理系统难以满足针对物联网场景的数据处理和传输的需求。
161.而本发明实施例提供的大规模实时数据流一体化处理、转发和存储系统,所提出的实时流一体化处理、转发和存储技术,十分符合物联网数据传输与处理的任务需求,兼具高速的处理速度,高速、稳定和灵活的转发和存储策略,是进行物联网数据传输和处理的不二选择。
162.以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜