第三方商业公共服务平台 非政府政务服务网站

一种实时转账链路下的模式匹配系统发明专利

更新时间:2026-09-21
一种实时转账链路下的模式匹配系统发明专利 专利申请类型:发明专利;
地区:浙江-杭州;
源自:杭州高价值专利检索信息库;

专利名称:一种实时转账链路下的模式匹配系统

专利类型:发明专利

专利申请号:CN202210265897.5

专利申请(专利权)人:浙江邦盛科技股份有限公司
权利人地址:浙江省杭州市西湖区西斗门路3号天堂软件园D幢17层ABCD座

专利发明(设计)人:鲁萍,王雷,陈浩,黄滔,高杨,段明江,余博文

专利摘要:本发明公开了一种实时转账链路下的模式匹配系统,该系统主要分为五个部分:高效的元数据组织和内存管理、快速双向归并排序,乱序数据有序返回、线性化访问和并发控制以及实时匹配。本发明提出的实时交易链路下的模式匹配系统用于解决在金融实时交易转账领域内的复杂乱序交易数据的内存管理,同时保证了高性能、有序、编程便利性和并发下的正确性。由于在基于NFA的模式匹配系统中,要求所有的数据都是按照一定的顺序进行排列。本发明可以减轻托管编程语言中垃圾回收机制的性能开销,可自动管理堆外内存以及在堆外将乱序数据排序,同时在内存中保留最近一段时间的视图结果。

主权利要求:
1.一种实时转账链路下的模式匹配系统,其特征在于,该系统包括:元数据的组织和内存访问模块、快速双向归并排序模块、乱序数据有序返回模块、线性访问和并发控制模块和实时模式匹配模块;
所述元数据的组织和内存访问模块,该模块用于获取用户的交易流水数据,将交易流水数据通过堆外分配的键值对映射Okv在堆外分配键和值,并在堆上分配元数据;Okv允许用户访问堆外缓冲区中的数据;具体包括堆上元数据键值映射单元、堆内缓冲区单元和管理池单元;
所述堆上元数据键值映射单元用于将Okv的堆上元数据的键映射到值;堆上只存放用户真实交易流水数据的索引,真实交易流水数据的索引被聚合为大块的链接列表;
所述堆内缓冲区单元允许快速访问链接列表,堆内缓冲区单元用于保留预设时间的通过乱序数据有序返回模块排序后的交易流水数据;
所述管理池单元通过Okv管理一个共享池,共享池预先分配了堆外区域;该池支持多个Okv实例;堆外区域实例为Arena实例,每个Arena实例均与单个Okv实例相关联,并在该Arena实例被处理后返回池中;
所述快速双向归并排序模块在用户两次调用Okv相关的接口操作的期间,通过Okv实例将交易流水数据写入到对应的Arena中,快速双向归并排序模块首先是在每一个Arena内根据Key对数据进行分类后排序,在相同的Key中保持所有的数据有序;同时在Arena间进行排序,根据每一个块的链接列表中的最大和最小的元素将Arena重新按从小到大的顺序进行排列;
所述乱序数据有序返回模块获取快速双向归并排序模块排序后的数据,如果用户有查询请求,通过上升扫描和下降扫描完成操作;具体为:上升扫描范围内找到具有相关关键字的第一个块开始,然后使用块内链接列表的entry遍历每个相关块中的entry,所述entry表示链接列表中用户查询的元素集合;仅当查询结果为空时,返回遇到的entry;否则,继续到下一个entry;下降扫描从查找最后一个相关块开始,在每个相关块中,首先在排序的前缀中找到最后一个相关entry,然后从该entry按照查询指标升序扫描链接列表,直到该块中的最后一个相关entry,同时将它遍历的entry保存在堆栈中;
所述线性访问和并发控制模块用于通过put(Key,Value),remove(Key)访问堆外值Value;在堆外缓冲区单元的开头将标头header分配给所有值;线性访问和并发控制模块在header中使用读写锁来确保访问过程自动执行;
所述实时模式匹配模块通过给定交易的模式,生成一个非确定有限状态自动机NFA,具体的查询中有具体的交易记录;在堆外的内存中按照用户交易链路的次序将相应的交易流水数据排列;在返回的有序的数据中按照NFA中的状态去实时匹配交易事件。
2.根据权利要求1所述的一种实时转账链路下的模式匹配系统,其特征在于,所述堆外分配的键值对映射Okv提供了非拷贝应用程序接口Non‑copyAPI,允许程序员直接访问堆外缓冲区,以通过用户提供的lambda函数进行读取和就地更新。
3.根据权利要求1所述的一种实时转账链路下的模式匹配系统,其特征在于,Okv的内部设计了垃圾回收机制GC保证了安全性,不会回收从Okv外部引用的缓冲区空间。
4.根据权利要求1所述的一种实时转账链路下的模式匹配系统,其特征在于,所述堆外分配的键值对映射Okv提供了堆内元数据组织管理,堆外内存分配和堆外数据排序。
5.根据权利要求1所述的一种实时转账链路下的模式匹配系统,其特征在于,所述堆内缓冲区单元保留交易流水数据的时间通过用户自定义实现,且堆内缓冲区单元更新是延迟的,避免写入消耗。
6.根据权利要求1所述的一种实时转账链路下的模式匹配系统,其特征在于,交易流水数据为转账交易流水数据,其格式是[‘时间切片’,‘转出用户名’,‘转入用户名’,‘时间’,‘金额’]。
7.根据权利要求1所述的一种实时转账链路下的模式匹配系统,其特征在于,堆内缓冲区单元的更新和用户的操作关联,如果用户查询所需要的数据在堆内缓冲区单元中,则直接返回交易流水数据给用户;否则,Okv会通过查询真实交易流水数据的索引并遍历堆上元数据键值映射单元的链接列表,返回范围包括用户查询相关键Key的块,将用户查询的结果写入到堆内缓冲区单元。
8.根据权利要求1所述的一种实时转账链路下的模式匹配系统,其特征在于,所述线性访问和并发控制模块中每一个header还包含一个指示堆外值是否被删除的位;如果删除该值,则访问过程执行失败。 说明书 : 一种实时转账链路下的模式匹配系统技术领域[0001] 本发明涉及金融场景下数据的实时模式匹配,具体而言,涉及一种实时转账链路下的模式匹配系统,解决在金融实时转账领域内的复杂乱序交易数据的内存管理,使得可以在毫秒级范围内进行转账链路的模式匹配。背景技术[0002] 复杂事件处理(CEP)是一种新兴的基于事件流的技术,它将系统数据看作是不同类型的事件,事件在这里通常是有意义的状态变化,通过分析事件间的关系,利用过滤、关联、聚合等技术,根据事件间的时序关系和聚合关系定制检测规则,持续地从事件流中查询出符合要求的事件序列,最终分析得到更加复杂的复合事件。CEP适合的场景包括实时风险管理、实时交易分析、网络欺诈、网络攻击、市场趋势分析等等。[0003] 复杂事件处理一般都采用非确定性有限自动机NFA变体模型来处理事件。典型的复杂事件处理系统有SASE,Cayuga以及Esper等。[0004] SASE系统采用了一种基于本地序列操作符以及管道查询的数据流模型,使用关系运算符来定义随后到来的序列,SASE采用了非确定性有限自动机来获取序列事件。SASE提供了一种由EVENT、WHERE、以及WITHIN等组成的规则描述语言,使用逻辑操作符和序列操作来描述事件间的关系。但是SASE语言缺少对聚集操作的支持。SASE+则扩展了SASE语言,提供了迭代和聚集操作的支持。与其他系统不同,SASE不仅会报告用户感兴趣的查询结果,而且会报告匹配此查询的所有事件,这在很大程度上增加了查询的复杂度。SASE的主要局限性在于不能处理层状结构的复杂事件类型,也就是一个查询的结果不能用作另一个查询的输入。同时在复杂网络以及延迟条件下没有办法保证数据按照定义的先后到来组成序列。[0005] 正是由于现有的CEP都是基于NFA以及其变体模型做的处理。而NFA要求数据必须要按一定的次序排列。在现有的金融系统中,很多时候数据由于网络以及延迟等原因,没法按序到达系统,所以为了要达到在金融实施转账的场景下进行模式匹配,需要保证有序的数据,同时又不能够有很大的开销。[0006] 如今,许多系统平台都以Java等托管编程语言实现。尽管最近有一定的提升,垃圾回收机制(GC)仍难以随着托管(堆上)内存的大小而扩展,通常导致利用率低下和性能不可预测。这个缺点导致许多系统采用堆外内存分配器,例如Cassandra,Druid和HBase。但是,这些堆外内存分配器中的大多数都受限于不可变数据,并且避免了实现同步的复杂性。[0007] 假设一个场景,该场景需要找到“过去十分钟时间的,某个账户通过中间账户进行多笔多层转账”的场景模式。显然这是一个金融领域转账链路实时模式匹配的场景,在很短的一个时间间隔内都有转账交易流水进入系统,所以并发量很高,同时会因为网络丢包的原因导致数据乱序到达,为了达到低延时和高效率以及确保数据有序的目标,我们需要把计算的数据放在内存中,显然传统的内存管理受垃圾回收机制(GC)的影响仍难以随着托管(堆上)内存的大小而扩展,会大大提高处理的延时,这是在实时模式匹配场景里没发接受的。同时,在内存里进行排序也会受到内存容量的限制,没法对海量大数据进行排序。假设,我们使用上述提到的Cassandra,Druid和HBase,虽然可以从一定程度上解决这种高延时的想象,但是,这些堆外内存分配器中的大多数都受限于不可变数据,在金融转账链路实时匹配的场景中,数据是会发生变换的,这些堆外内存分配器没法实现并发同步的要求。在大数据实时匹配场景中,存在大量类似问题。[0008] 综上所述,现有的金融实时转账下的模式匹配技术无法同时满足下面的要求:[0009] 1)毫秒级的处理延时;[0010] 2)动态数据的有序并发;[0011] 3)在2)的基础上,保证内存数据的正确性。发明内容[0012] 针对现有的内存管理技术产生的问题,本发明提出了一种实时转账链路下的模式匹配系统,解决在金融实时转账领域内的复杂乱序交易数据的内存管理,使得可以在毫秒级范围内进行转账链路的模式匹配。[0013] 本发明的目的是通过以下技术方案来实现的:一种实时转账链路下的模式匹配系统,该系统包括:元数据的组织和内存访问模块、快速双向归并排序模块、乱序数据有序返回模块、线性访问和并发控制模块和实时模式匹配模块;[0014] 所述元数据的组织和内存访问模块,该模块用于获取用户的交易流水数据,将交易流水数据通过堆外分配的键值对映射Okv在堆外分配键和值,并在堆上分配元数据;Okv允许用户访问堆外缓冲区中的数据;具体包括堆上元数据键值映射单元、堆内缓冲区单元和管理池单元;[0015] 所述堆上元数据键值映射单元用于将Okv的堆上元数据的键映射到值;堆上只存放用户真实交易流水数据的索引,真实交易流水数据的索引被聚合为大块的链接列表;[0016] 所述堆内缓冲区单元允许快速访问链接列表,堆内缓冲区单元用于保留最近一段时间的通过乱序数据有序返回模块排序后的交易流水数据;[0017] 所述管理池单元通过Okv管理一个共享池,共享池预先分配了堆外区域;该池支持多个Okv实例;堆外区域实例为Arena实例,每个Arena实例均与单个Okv实例相关联,并在该Arena实例被处理后返回池中;[0018] 所述快速双向归并排序模块在用户两次调用Okv相关的接口操作的期间,通过Okv实例将交易流水数据写入到对应的Arena中,快速双向归并排序模块首先是在每一个Arena内根据Key对数据进行分类后排序,在相同的Key中保持所有的数据有序;同时在Arena间进行排序,根据每一个块的链接列表中的最大和最小的元素将Arena重新按从小到大的顺序进行排列;[0019] 所述乱序数据有序返回模块获取快速双向归并排序模块排序后的数据,如果用户有查询请求,通过上升扫描和下降扫描完成操作;具体为:上升扫描扫描范围内找到具有相关关键字的第一个块开始,然后使用块内链接列表的entry遍历每个相关块中的entry,所述entry表示链接列表中用户查询的元素集合;仅当查询结果为空时,返回遇到的entry;否则,继续到下一个entry;下降扫描从查找最后一个相关块开始,在每个相关块中,首先在排序的前缀中找到最后一个相关entry,然后从该entry按照查询指标升序扫描链接列表,直到该块中的最后一个相关entry,同时将它遍历的entry保存在堆栈中;[0020] 所述线性访问和并发控制模块用于通过put(Key,Value),remove(Key)访问堆外值Value;在堆外缓冲区单元的开头将标头header分配给所有值;线性访问和并发控制模块在header中使用读写锁来确保访问过程自动执行;[0021] 所述实时模式匹配模块通过给定交易的模式,生成一个非确定有限状态自动机NFA,具体的查询中有具体的交易记录;在堆外的内存中按照用户交易链路的次序将相应的交易流水数据排列;在返回的有序的数据中按照NFA中的状态去实时匹配交易事件。[0022] 进一步地,所述堆外分配的键值对映射Okv提供了非拷贝应用程序接口Non‑copyAPI,允许程序员直接访问堆外缓冲区,以通过用户提供的lambda函数进行读取和就地更新。[0023] 进一步地,Okv的内部设计了垃圾回收机制GC保证了安全性,不会回收可能从Okv外部引用的缓冲区空间。[0024] 进一步地,所述堆外分配的键值对映射Okv提供了堆内元数据组织管理,堆外内存分配和堆外数据排序。[0025] 进一步地,所述堆内缓冲区单元保留交易流水数据的时间通过用户自定义实现,且堆内缓冲区单元更新是延迟的,避免写入消耗。[0026] 进一步地,交易流水数据为转账交易流水数据,其格式是[‘时间切片’,‘转出用户名’,‘转入用户名’,‘时间’,‘金额’]。[0027] 进一步地,堆内缓冲区单元的更新和用户的操作关联,如果用户查询所需要的数据在堆内缓冲区单元中,则直接返回交易流水数据给用户;否则,Okv会通过查询真实交易流水数据的索引并遍历堆上元数据键值映射单元的链接列表,返回范围包括用户查询相关键Key的块,将用户查询的结果写入到堆内缓冲区单元。[0028] 进一步地,所述线性访问和并发控制模块中每一个header还包含一个指示堆外值是否被删除的位;如果删除该值,则访问过程执行失败。[0029] 本发明的有益效果为:[0030] 1.对于堆外存储,因为需要在每个查询或更新中对对象进行序列化和反序列化,所以效率低下。在键和值很大的情况下,成本很高,这在大数据实时处理系统中很常见。为了减轻此成本,Okv提供了新颖的非拷贝应用程序接口(Non‑copyAPI),允许程序员直接访问堆外缓冲区,以通过用户提供的lambda函数进行读取和就地更新。[0031] 2.Okv的内部GC保证了安全性,不会回收可能从Okv外部引用的缓冲区空间。Okv为传统的点访问以及就地更新提供了原子语义(线性化)。[0032] 3.提供了堆内元数据组织管理,堆外内存分配和堆外数据排序。[0033] 4.支持并发性的读写,同时保证正确有序。附图说明[0034] 图1为本发明中内存管理Okv的数据结构和查询方式示意图;[0035] 图2为本发明中上升和下降扫描操作示意图;[0036] 图3为本发明中实时模式匹配模块示意图;[0037] 图4为本发明实施例中转账链路的数据和模式示意图。具体实施方式[0038] 以下结合附图对本发明具体实施方式作进一步详细说明。[0039] 本发明提供了一种实时转账链路下的模式匹配系统,该系统包括:元数据的组织和内存访问模块、快速双向归并排序模块、乱序数据有序返回模块、线性访问和并发控制模块和实时模式匹配模块;[0040] 元数据的组织和内存访问模块:用于获取用户的交易流水数据,用户的数据流入系统的内存后,堆外分配的键值对映射Okv会在堆外分配键和值,并在堆上分配元数据。对于堆外存储,因为需要在每个查询或更新中对对象进行序列化和反序列化,所以效率低下。在键和值很大的情况下,成本很高,这在大数据实时处理系统中很常见。为了减轻此成本,Okv提供了新颖的非拷贝应用程序接口(Non‑copyAPI),允许程序员直接访问堆外缓冲区,以通过用户提供的lambda函数进行读取和就地更新。Okv的内部设计了垃圾回收机制GC保证了安全性,不会回收可能从Okv外部引用的缓冲区空间。Okv为传统的点访问以及就地更新提供了原子语义(线性化)。Okv提供了堆内元数据组织管理,堆外内存分配和堆外数据排序。Okv允许用户安全地访问堆外缓冲区中的数据。具体包括堆上元数据键值映射单元、堆内缓冲区单元和管理池单元;[0041] 堆上元数据键值映射单元用于将Okv的堆上元数据将键映射到值。堆上只存放用户真实转账流水数据的索引,所以不会受堆上分配内存的限制。真实转账流水数据的索引被组织为大块的链接列表(大块连续的Key的范围)。[0042] 堆内缓冲区单元允许快速访问链接列表,使用在堆内Onheap分配一段缓冲区buffer,这个buffer默认用来保留最近一段时间的通过乱序数据有序返回模块排序后的有序转账交易流水数据;转账交易的流水数据的格式是[‘时间切片’,‘转出用户名’,‘转入用户名’,‘时间’,‘金额’]。堆内缓冲区单元保留交易流水数据的时间通过用户自定义实现。可以从图1中看出。这一段特殊的buffer的更新是延迟的,因为是避免写入消耗。buffer的更新是和用户的操作所关联的。一旦用户有了一个新的查询需求,如果查询所需要的数据在buffer中,那么系统就会直接返回转账流水数据给用户。否则,Okv就会通过查询真实交易流水数据的索引并在需要时遍历堆上元数据键值映射单元的链接列表,并返回范围包括用户查询相关键Key的块Chunk,将用户查询的结果写入到这一块buffer中。[0043] Okv提供了一个简单的默认内存管理器,可以被应用程序覆盖。默认管理器适用于实时分析设置,在该设置中,用于读取新数据的动态数据结构存在的时间有限,并且很少删除。Okv的分配器管理着一个共享的大型池(默认为200MB),这些池预先分配了堆外区域。该池支持多个Okv实例。区域实例为Arena实例,每个Arena实例都与单个Okv实例相关联,并在该Arena实例被处理后返回池中。[0044] 快速双向归并排序模块:Okv在管理堆外的内存时会将每个Arena内部的数据按照Key值进行归并排序。快速双向归并排序模块的排序操作一般是在用户两次调用接口的期间。例如,在十分钟内,某银行系统内流入了一百万笔交易流水。这是Okv会将这一百万笔的交易流水数据写入到对应的Arena中,首先是在每一个Arena内对数据进行排序,这时的排序是根据Key来做分类,在相同的Key中保持所有的数据有序。同时在Arena间进行排序,根据每一个块中的最大和最小的元素将Arena重新按从小到大的顺序进行排列。[0045] 乱序数据有序返回模块获取快速双向归并排序模块排序后的数据,如果有用户需要查询指标,比如“最近两分钟的转入某用户的转账流水链路情况”。那么通过上升扫描和下降扫描两次扫描即可完成操作。上升扫描扫描范围内找到具有相关关键字的第一个块开始。然后,它使用块内entry链接列表遍历每个相关块中的entry,并继续到块链接列表中的下一个块。所述entry表示链接列表中用户查询的元素集合;仅当迭代器的值引用即查询结果为空时,迭代器才返回遇到的entry。否则,它将继续到下一个entry。下降扫描从查找最后一个相关块开始。在每个相关块中,它首先在排序的前缀中找到最后一个相关entry,然后从该entry扫描(升序)链接列表,直到该块中的最后一个相关entry,同时将它遍历的entry保存在堆栈中。返回最后一个entry后,它将弹出并返回堆叠的entry。在耗尽堆栈并到达已排序前缀中的entry之后,迭代器将简单地前进至上一个前缀entry(数组中的一个单元格),并在下一个旁路中使用链接列表entry重建堆栈。[0046] 如图2所示。用数字的大小代表一笔转账的发生时间先后,同一个用户的相关转账流水都连接在一个链表上。由于所有的Arena中的数据都是有序的,所以在获取到和此用户相关的块中的数据时,在本例中,可以按照时间去截断数据,返回距此刻两分钟范围内的数据,并将其写入到缓冲区中。同时,此缓冲区具有一定的可复用性,如果某一次查询的数据刚好在缓冲区的范围内,那么就可以直接返回数据,不用做任何的操作。否则,只需要把不在缓冲区部分的数据替换一下,由于堆外的数据是有序的,所以可以直接按上述方法获取堆外数据,并且按照指标的次序插入到缓冲区链表中即可。[0047] 线性访问和并发控制模块:Okv的操作(Scan除外)是可线性化的;也就是说,每个操作都是在其调用和响应之间的某个点原子发生的。Okv允许通过put(Key,Value),remove(Key)等方法原子访问堆外值Value。为此,它在其缓冲区的开头将标头(header)分配给所有值。Okv的默认并发控制机制在header中使用读写锁来确保这些方法自动执行。每一个header还包含一个指示该值是否被删除的位。如果删除该值,则该方法调用失败(返回false)。[0048] 实时模式匹配模块:考虑到如图3的一个场景,是一个实时转账链路的场景。通过给定转账的模式,可以生成一个非确定有限状态自动机NFA,然后在具体的查询中会有具体的转账交易记录。但是由于网络延迟等原因可能是乱序到达的。在这个NFA中,要求A‑>B的转账必须发生在B‑>C的转账之前。所有在堆外的内存中可以按照规定的用户交易链路的次序将转账交易流水数据排列。然后在返回的有序的数据中按照NFA中的状态去实时匹配转账事件。[0049] 具体实施例:本发明将举例对上述一种实时转账链路下的模式匹配系统进行进一步的说明。[0050] 本实施例中需要定义的API如下:[0051] voidput(Key,Value):设置键为Key的值为Value,若Key存在,将新值与键相关联。[0052] voidremove(Key):删除键为key的值,若key不存在,则操作失败。[0053] boolean putIfAbsentComputeIfPresent(Key, Value,Function(OkvWBuffer)):如果键Key不存在,设置键为Key的值为Value。如果键Key存在,则根据传入的Function对Value进行操作。如果删除了该值(由于并发删除),这些操作将返回False。在删除的情况下需要重试。[0054] 本实施例介绍了Okv在金融实时转账下的模式匹配案例。建立了Okv到ApacheDruid的原型集成,ApacheDruid是Java中流行的开源分布式分析数据库。更具体地说,本实施例将目标指向ApacheDruid的增量索引(IncrementalIndex)组件,该数据结构可以吸收新数据,而并行提供查询。数据永远不会从增量索引中删除。增量索引填满后,其数据将重新整理并保存下来,并且被处置。[0055] 假如现在有一个银行的流水交易平台,每天交易的流量巨大,想实时看到用户A和B之间最近十分钟的转账链路情况,A和B之间的转账链路的数据和模式如图4所示。[0056] 为了计算交易流水量,前提就是要进行数据采集,假设本实施例设计的系统在每一次用户访问的时候,可以获取到信息包括:转入账户,转出账户,交易金额,访问时间。数据采集的方式有很多,一般采用埋点的方式,将【转入账户,转出账户,交易金额,访问时间】,形成一条埋点计入日志,然后采用flume或其他组件,将埋点日志收集进入Kafka(根据访问量,设置partition数量)[0057] 数据处理是最关键的阶段,本实施例选用KafkaStreams处理Kafka的流。数据window是实时处理中比较重要的特点,因为需要看到数据的统计结果,所以必须先给数据流划分批次,然后对批中的数据做聚合,KafkaStreams的window比较丰富,包括翻滚时间窗口(Tumblingtimewindow),跳跃时间窗口(Hoppingtimewindow)等等。在本实施例需求中要看到10分钟内的访问量,且同一条数据只能存在于一个窗口中,所以这里选用Tumblingtimewindow。[0058] window都设定好以后,就可以对数据做聚合了,比如分组之后的数据,直接可以做reduce,或count,sum,max,min。在这个场景本实施例做reduce,对记录做count。由于十分钟内的交易流水量很大,可以依赖Okv存储,去做对应的聚合计算。[0059] 本实施例通过用Okv替换内部映射中的JDKConcurrentSkiplistMap来重新实现增量索引。辅助数据结构保持堆中状态。本实施例实现了一个适应层,该层控制内部数据的布局,并为Okv提供适当的lamdba函数,以进行快速双向归并排序,反序列化和原地计算。写入路径利用了Okv的putIfAbsentComputeIfPresent的API来对单个lambda中的多个聚合进行原子更新。[0060] 数据聚合完之后,就需要将数据落地,这是可以选择直接落入存储,然后由Kafka直接接入ApacheDruid。在落入ApacheDruid的时候需要注意,因为ApacheDruid特有的预聚合方式,所以本实施例需要指定维度,指标,聚合时间戳字段以及时间段长度,所以聚合结果中需要带上。最后将本实施例得到的聚合结果按照给定的模式生成的NFA去做事件匹配,然后可以返回最近十分钟内A和B转账链路的情况。最后将本实施例设计的系统和现有的系统进行性能对比,结果如表1所示:[0061] 表1[0062]响应时间(毫秒) 内存占用量(GB)Kafka+KafkaStreams+Okv+Druid 3.5 9.6Kafka+KafkaStreams+Druid 7 67.2[0063] 上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

专利地区:浙江

专利申请日期:2022-03-17

专利公开日期:2024-11-29

专利公告号:CN114841806B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部
搜索
搜本页
欢迎咨询

扫码可加微信,手机访问拨打咨询

欢迎咨询

欢迎咨询
数据加载中...