基于disruptor提高业务系统吞吐量方法、装置及介质、服务器制造方法及图纸

技术编号:22595769 阅读:45 留言:0更新日期:2019-11-20 11:36
本发明专利技术涉及通信、运维、过程优化、数据传输优化技术领域,本申请实施例提供的一种基于disruptor提高业务系统吞吐量方法,包括:获取应用程序产生的保险数据,提取保险数据中的关键数据,关键数据包括:保险类型、保险期限、保险交易截止期限、受益人信息;通过disruptor将关键数据封装成与关键数据类型相对应事件类型;将封装成事件类型的关键数据存储在环形队列缓存中。降低了服务器获取数据的时间,使得服务器可以将内部资源主要用于进行数据处理的过程,提高了服务器处理数据的稳定性,避免服务器消耗更多资源用于数据读写的过程,进而提高系统服务器的数据吞吐量。避免多次重复遍历缓存中的数据,在实现数据共享时,同时提高了保险系统数据处理的效率。

Methods, devices, media and servers for improving business system throughput based on disruptor

The invention relates to the technical fields of communication, operation and maintenance, process optimization and data transmission optimization. The embodiment of the application provides a method to improve the throughput of the business system based on the disruptor, including: obtaining the insurance data generated by the application program, extracting the key data in the insurance data, the key data including: insurance type, insurance period, insurance transaction deadline, beneficiary information The key data is encapsulated into the event type corresponding to the key data type by the disruptor, and the key data encapsulated into the event type is stored in the ring queue cache. It reduces the time for the server to acquire data, makes the server mainly use internal resources for data processing, improves the stability of data processing, avoids the server consuming more resources for data reading and writing, and improves the data throughput of the system server. Avoid repeatedly traversing the data in the cache, and improve the efficiency of data processing in the insurance system.

【技术实现步骤摘要】
基于disruptor提高业务系统吞吐量方法、装置及介质、服务器
本专利技术涉及通信、运维、过程优化、数据传输优化
,具体涉及一种基于disruptor提高业务系统吞吐量方法、装置及介质、服务器。
技术介绍
在大规模的数据处理中,为了实现高性能(低延迟、低资源耗用等)系统,如电子商务系统,金融交易系统等。工程师们设计多任务、多线程的架构。目前系统中是应用服务器直接操作数据库,当用户请求量比较大的时候(写数据的操作比较大),还会导致后台服务容易出现假死状态,进一步地导致用户响应时间长。在资源有限的情况下,为了避免资源争夺抢占,常常采用相应的锁,使得资源使用过程安全有序,然而该操作会降低系统的吞吐量,且在资源利用过程中,系统内的单个事件只能被一个消费者消费,导致无法实现系统内资源的共享。
技术实现思路
为克服以上技术问题,特别是目前用户请求量较大,采用锁导致系统吞吐量下降的问题,特提出以下技术方案:本专利技术实施例提供的一种基于disruptor提高业务系统吞吐量方法,包括:获取应用程序产生的保险数据,提取所述保险数据中的关键数据,所述关键数据包括:保险类型、保险期限、保险交易截止期限、受益人信息;基于所述关键数据类型的不同,通过disruptor将不同类型的所述关键数据封装成不同类型的事件类型;将封装成事件类型的所述关键数据存储在环形队列缓存中。可选地,所述基于所述关键数据类型的不同,通过disruptor将不同类型的所述关键数据封装成不同类型的事件类型,包括:基于所述关键数据类型的不同,将不同类型的所述关键数据封装成不同类型的所述事件类型。可选地,所述基于所述关键数据类型的不同,通过disruptor将不同类型的所述关键数据封装成不同类型的事件类型之前,包括:获取所述保险数据中的保险单号,通过disruptor监听同一所述保险单号的所述事件类型。可选地,所述将封装成事件类型的所述关键数据存储在环形队列缓存之后,包括:依据预设事件类型与重要等级之间的关联关系,确定同一保险单号对应的不同重要等级的所述事件类型;根据所述事件类型对应重要等级,对确认能直接发送到服务器的所述事件类型,将所述事件类型发送到服务器;对确认不能直接发送到服务器的所述事件类型,将所述事件类型按照预设周期发送到服务器。可选地,所述将封装成事件类型的所述关键数据存储在环形队列缓存,包括:判断同一所述保险单号的所述事件类型是否完整,当所述事件类型不完整时,将当前缓存到所述环形队列缓存中的所述事件类型形成第一缓存事件类型;监听同一所述保险单号的缓存到所述环形队列的第二缓存事件类型;判断所述第一缓存事件类型和所述第二缓存事件类型构成的所述事件类型是否完整;若完整,则将所述第一缓存事件类型和所述第二缓存事件类型构成的所述事件类型发送至服务器;若不完整,则重复监听同一所述保险单号的缓存到所述环形队列的第二缓存事件类型步骤。可选地,所述将封装成事件类型的所述关键数据存储在环形队列缓存之后,包括:检测各所述保险单号对应缓存的存续时长,在到达所述存续时长对应的时间时,清除缓存在所述环形队列中的所述存续时长对应保险单号的所述事件类型。可选地,所述获取应用程序产生的保险数据,提取所述保险数据中的关键数据之前,包括:获取应用程序中保险业务的保险数据流量,将所述保险数据流量与预设保险数据流量阈值对比,确定存储所述保险数据的所述环形队列缓存。本申请实施例还提供了一种基于disruptor提高业务系统吞吐量装置,包括:提取模块,用于获取应用程序产生的保险数据,提取所述保险数据中的关键数据,所述关键数据包括:保险类型、保险期限、保险交易截止期限、受益人信息;封装模块,用于基于所述关键数据类型的不同,通过disruptor将不同类型的所述关键数据封装成不同类型的事件类型;存储模块,用于将封装成事件类型的所述关键数据存储在环形队列缓存中。可选地,所述封装模块包括:监听模块,用于获取所述保险数据中的保险单号,通过disruptor监听同一所述保险单号的所述关键数据。本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现任一技术方案所述的基于disruptor提高业务系统吞吐量方法。本专利技术实施例还提供了一种服务器,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行根据任一技术方案所述的基于disruptor提高业务系统吞吐量方法的步骤。本专利技术与现有技术相比,具有以下有益效果:1、本申请实施例提供的一种基于disruptor提高业务系统吞吐量方法,包括:获取应用程序产生的保险数据,提取所述保险数据中的关键数据,所述关键数据包括:保险类型、保险期限、保险交易截止期限、受益人信息;基于所述关键数据类型的不同,通过disruptor将不同类型的所述关键数据封装成不同类型的事件类型;将封装成事件类型的所述关键数据存储在环形队列缓存中。将包装成事件类型的关键数据放入disruptor中的ringbuff缓存中,将保险数据中的关键数据包装成事件类型,便于disruptor能够将关键数据主动发送给服务器,以降低服务器获取数据的时间,使得服务器可以将内部资源主要用于进行数据处理的过程,提高了服务器处理数据的稳定性,避免服务器消耗更多资源用于数据读写的过程,进而提高系统服务器的数据吞吐量。由于disruptor的ringbuf缓存可以实现缓存资源的共享,为了快速地获取到保险数据中的关键数据,在获取ringbuff中某一个槽缓存的数据时,可以同时加载ringbuff中其他槽缓存的关键数据,进而实现了关键数据的快速遍历,并达到关键数据的共享,避免多次重复遍历ringbuff中的数据,在实现数据共享时,同时提高了保险系统数据处理的效率。基于所述关键数据类型的不同,将不同类型的所述关键数据封装成不同类型的所述事件类型。基于数据类型的不同,将不同类型的数据包装成不同事件类型,如不同类型的数据缓存长度不同,解决了不同类型数据,缓存不同,有效利用缓存的技术问题。相应的,可以在disruptor中划分多个ringbuff,每一个ringbuff用于存储不同类型的缓存数据的事件类型,进而在数据存储过程中,由于基于不同事件类型进行缓存的划分,进而可以提高数据缓存的速度,便于后期进行相同类型数据的查找,同时避免在一个ringbuff中缓存槽不够的情况,降低事件类型缓存的等待时间。2、本申请实施例提供的一种基于disruptor提高业务系统吞吐量方法,所述将封装成事件类型的所述关键数据存储在环形队列缓存之后,包括:依据预设事件类型与重要等级之间的关联关系,确定同一保险单号对应的不同重要等级的所本文档来自技高网...

【技术保护点】
1.一种基于disruptor提高业务系统吞吐量方法,其特征在于,包括:/n获取应用程序产生的保险数据,提取所述保险数据中的关键数据,所述关键数据包括:保险类型、保险期限、保险交易截止期限、受益人信息;/n基于所述关键数据类型的不同,通过disruptor将不同类型的所述关键数据封装成不同类型的事件类型;/n将封装成事件类型的所述关键数据存储在环形队列缓存中。/n

【技术特征摘要】
1.一种基于disruptor提高业务系统吞吐量方法,其特征在于,包括:
获取应用程序产生的保险数据,提取所述保险数据中的关键数据,所述关键数据包括:保险类型、保险期限、保险交易截止期限、受益人信息;
基于所述关键数据类型的不同,通过disruptor将不同类型的所述关键数据封装成不同类型的事件类型;
将封装成事件类型的所述关键数据存储在环形队列缓存中。


2.根据权利要求1所述的基于disruptor提高业务系统吞吐量方法,其特征在于,所述基于所述关键数据类型的不同,通过disruptor将不同类型的所述关键数据封装成不同类型的事件类型之前,包括:
获取所述保险数据中的保险单号,通过disruptor监听同一所述保险单号的所述关键数据。


3.根据权利要求2所述的基于disruptor提高业务系统吞吐量方法,其特征在于,所述将封装成事件类型的所述关键数据存储在环形队列缓存之后,包括:
依据预设事件类型与重要等级之间的关联关系,确定同一保险单号对应的不同重要等级的所述事件类型;
根据所述事件类型对应重要等级,对确认能直接发送到服务器的所述事件类型,将所述事件类型发送到服务器;
对确认不能直接发送到服务器的所述事件类型,将所述事件类型按照预设周期发送到服务器。


4.根据权利要求2所述的基于disruptor提高业务系统吞吐量方法,其特征在于,所述将封装成事件类型的所述关键数据存储在环形队列缓存,包括:
判断同一所述保险单号的所述事件类型是否完整,当所述事件类型不完整时,将当前缓存到所述环形队列缓存中的所述事件类型形成第一缓存事件类型;
监听同一所述保险单号的缓存到所述环形队列的第二缓存事件类型;
判断所述第一缓存事件类型和所述第二缓存事件类型构成的所述事件类型是否完整;
若完整,则将所述第一缓存事件类型和所述第二缓存事件类型构成的所述事件类型发送至服务器;若不完整,则重复监听同一所述保险单号的缓存到所述环形队列的第二缓存事件类型步骤。


5...

【专利技术属性】
技术研发人员:张健
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:广东;44

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

1