一种并发数据插入Elasticsearch的排重方法、装置及存储介质制造方法及图纸

技术编号:38773345 阅读:8 留言:0更新日期:2023-09-10 10:46
本发明专利技术提供了一种并发数据插入Elasticsearch的排重方法、装置及存储介质,属于移动通信领域以及人工智能领域;其中包括:获取客户端,客户端发送并发请求到服务端,服务端根据并发要求将所述并发数据上传给消息队列;在服务端部署所述消息队列的消费端,其中消费端接收消息队列中的并发数据,并根据并发数据生成MD5验证值;使用MD5验证值查询mongodb,确认是否有重复数据,若并发数据为重复数据,删除MD5验证值对应的并发数据;若MD5验证值对应的并发数据不为重复数据,将MD5验证值插入到mongodb数据库中,并将MD5验证值对应的并发数据插入Elasticsearch索引,解决了在数据插入过程中数据重复的问题。在数据插入过程中数据重复的问题。在数据插入过程中数据重复的问题。

【技术实现步骤摘要】
一种并发数据插入Elasticsearch的排重方法、装置及存储介质


[0001]本专利技术属于移动通信领域以及人工智能领域,尤其涉及一种并发数据插入Elasticsearch的排重方法、装置及存储介质。

技术介绍

[0002]现阶段针对于处理大并发写入一般采用消息队列+流式技术将数据批量写入存储,即采用kafka+flink对数据进行批量写入存储,但kafka的设计标准是每百万条数据可以丢失一条,存在数据丢失的现象;同时flink一般限定在hadoop集群中执行,应用范围较小。同时现阶段Elasticsearch使用document_id进行去重的字段处理,存在效率和速度低下的问题,同时考虑到Elasticsearch涉及查询、更新、合并和重建索引,在数据量超大的情况,使用document_id进行去重会对Elasticsearch集群性能造成比较大的影响。

技术实现思路

[0003]为了至少在一定程度上克服相关技术中数据批量写入存储存在数据丢失以及在数据去重方面,并没有考虑到效率和速度的问题,本申请提供了一种并发数据插入Elasticsearch的排重方法、装置及存储介质。
[0004]本申请的方案如下:根据本公开实施例的一方面,提供了一种并发数据插入Elasticsearch的排重方法,包括:步骤S1、获取客户端,所述客户端发送并发请求到服务端,所述服务端根据所述并发请求将并发数据上传给消息队列;步骤S2、通过消费端接收所述消息队列中的所述并发数据,并根据所述并发数据生成MD5验证值;步骤S3、所述服务端根据所述MD5验证值查询mongodb数据库,若所述MD5验证值对应的并发数据为重复数据,则删除所述MD5验证值对应的并发数据;若所述MD5验证值对应的并发数据不为重复数据,将所述MD5验证值插入到所述mongodb数据库中,并将所述MD5验证值对应的并发数据插入Elasticsearch索引;步骤S4、判断所述并发数据插入Elasticsearch索引是否成功,当所述并发数据插入Elasticsearch索引成功时,完成数据插入操作。
[0005]根据本公开实施例的另一方面,判断所述并发数据插入Elasticsearch索引是否成功,还包括:当所述并发数据插入Elasticsearch索引失败时,将所述并发数据重新上传到消息队列,并改用延时消费队列方式,延迟将所述并发数据插入Elasticsearch索引。
[0006]根据本公开实施例的另一方面,所述服务端根据所述并发请求将并发数据上传给消息队列,包括:
所述消息队列中将所述消息队列的处理方式从同步处理更改为异步处理;其中,所述消息队列引入rabbitmq,当所述并发数据通过所述客户端发送所述并发请求到所述服务端,所述服务端先根据所述并发要求将所述并发数据上传给消息队列,并通知所述客户端,告知所述客户端所述并发信息已经在处理,所述客户端可以继续提交并发数据给服务器,不需要等待数据添加到 Elasticsearch以后在请求,即将所述消息队列的处理方式从同步处理更改为异步处理。
[0007]根据本公开实施例的另一方面,所述mongodb数据库包括:第一集合,所述第一集合中只存在一个主键字段,应用于保存所述MD5验证值。
[0008]根据本公开实施例的另一方面,所述服务端根据所述MD5验证值查询mongodb数据库,包括:所述mongodb数据库应用于判断所述并发数据是否重复;在所述并发数据插入Elasticsearch索引之前,根据所述并发数据生成MD5验证值;查询所述mongodb数据库中是否存在所述MD5验证值;若存在所述MD5验证值,所述MD5验证值对应的并发数据是重复数据,则删除所述MD5验证值对应的并发数据;若不存在所述MD5验证值,所述MD5验证值对应的并发数据不是重复数据,则将所述MD5验证值插入到所述mongodb数据库中,并将所述MD5验证值对应的并发数据插入Elasticsearch索引。
[0009]根据本公开实施例的另一方面,所述延时消费队列包括:所述延时消费队列用于存放需要在指定时间被处理的元素的队列;当所述并发数据插入Elasticsearch索引失败时,将所述并发数据重新上传到延时消费队列,所述延时消费队列的消费端接收所述并发数据并根据时间周期直接插入Elasticsearch索引。
[0010]根据本公开实施例的另一方面,所述延时消费队列中的时间周期为10分钟。
[0011]根据本公开实施例的一方面,提供了一种并发数据插入Elasticsearch的排重装置,其特征在于,包括:并发数据上传模块:获取客户端,所述客户端发送并发请求到服务端,所述服务端根据所述并发要求将所述并发数据上传给消息队列;MD5验证值获取模块:在所述服务端部署所述消息队列的消费端,其中所述消费端接收所述消息队列中的所述并发数据,并根据所述并发数据生成MD5验证值;并发数据插入Elasticsearch索引模块:所述服务端根据所述MD5验证值查询mongodb数据库,若所述MD5验证值对应的并发数据为重复数据,则不将所述MD5验证值对应的并发数据插入Elasticsearch索引,并删除所述MD5验证值对应的并发数据;若所述MD5验证值对应的并发数据不为重复数据,将所述MD5验证值插入到所述mongodb数据库中,并将所述MD5验证值对应的并发数据插入Elasticsearch索引;延时消费队列模块:当所述并发数据插入Elasticsearch索引成功时,完成数据插入操作;当所述并发数据插入Elasticsearch索引失败时,返回步骤S1,将所述并发数据重新上传到消息队列,并改用延时消费队列方式,延迟将所述并发数据插入Elasticsearch索
引。
[0012]根据本公开实施例的一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现上述任一项所述的并发数据插入Elasticsearch的排重方法。
[0013]本申请提供的技术方案可以包括以下有益效果:本公开实施例引入了rabbitmq解决并发问题,其中当数据通过客户端并发请到服务端的时候,服务端先将数据写入到消息队列中,然后直接放回客户端,通知客户端,告知客户端该信息已经在处理,客户端可以继续提交信息给服务器,不需要等待数据添加到 Elasticsearch 以后在请求,相当于把并发数据改为异步数据写入;同时引入mongodb解决数据重复问题,并且在Elasticsearch 写入失败以后,使用rabbitmq的延时队列进行数据补偿机制,确保了并发数据可以100%的插入到数据库中,不会丢数据的现象,同时摒弃了传统的hadoop 集群,大大降低硬件成本。
[0014]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0015]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种并发数据插入Elasticsearch的排重方法,其特征在于,包括:步骤S1、获取客户端,所述客户端发送并发请求到服务端,所述服务端根据所述并发请求将并发数据上传给消息队列;步骤S2、通过消费端接收所述消息队列中的所述并发数据,并根据所述并发数据生成MD5验证值;步骤S3、所述服务端根据所述MD5验证值查询mongodb数据库,若所述MD5验证值对应的并发数据为重复数据,则删除所述MD5验证值对应的并发数据;若所述MD5验证值对应的并发数据不为重复数据,将所述MD5验证值插入到所述mongodb数据库中,并将所述MD5验证值对应的并发数据插入Elasticsearch索引;步骤S4、判断所述并发数据插入Elasticsearch索引是否成功,当所述并发数据插入Elasticsearch索引成功时,完成数据插入操作。2.根据权利要求1所述的方法,其特征在于,判断所述并发数据插入Elasticsearch索引是否成功,还包括:当所述并发数据插入Elasticsearch索引失败时,将所述并发数据重新上传到消息队列,并改用延时消费队列方式,延迟将所述并发数据插入Elasticsearch索引。3.根据权利要求1所述的方法,其特征在于,所述服务端根据所述并发请求将并发数据上传给消息队列,包括:所述消息队列中将所述消息队列的处理方式从同步处理更改为异步处理;其中,所述消息队列引入rabbitmq,当所述并发数据通过所述客户端发送所述并发请求到所述服务端,所述服务端先根据所述并发要求将所述并发数据上传给消息队列,并通知所述客户端,告知所述客户端所述并发信息已经在处理,所述客户端可以继续提交并发数据给服务器,不需要等待数据添加到 Elasticsearch以后在请求,即将所述消息队列的处理方式从同步处理更改为异步处理。4.根据权利要求1所述的方法,其特征在于,所述mongodb数据库包括:第一集合,所述第一集合中只存在一个主键字段,应用于保存所述MD5验证值。5.根据权利要求4所述的方法,其特征在于,所述服务端根据所述MD5验证值查询mongodb数据库,包括:所述mongodb数据库应用于判断所述并发数据是否重复;在所述并发数据插入Elasticsearch索引之前,根据所述并发数据生成MD5验证值;查询所述mongodb数据库中是否存在所述MD5验...

【专利技术属性】
技术研发人员:田旭翟浩然
申请(专利权)人:北京联云天下科技有限公司
类型:发明
国别省市:

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

1