本申请涉及数据处理领域及数字医疗领域,尤其涉及一种多es集群的文档数据处理方法、装置、设备及存储介质。
背景技术:
1、随着移动互联网的深入发展,用户增长达到一定规模后,不少企业都会面高并发业务和临海量数据的挑战,尤其是数字医疗领域的数据处理,医疗数据的保存和变更要安全且高效,才能保证医疗系统的可靠性和安全性。
2、而传统的单机房数据处理架构在机器容量上存在瓶颈,在一些极端场景下,有可能所有服务器都出现故障,例如机房断电、机房火灾、地震等这些不可抗拒因素会导致系统所有服务器都故障从而导致医疗服务业务(比如在线问诊、病理分析、病例备案、药品统计以及辅助医疗等)整体瘫痪,使得医疗数据(如个人健康档案、处方、检查报告等)无法得到快速、准确地处理,严重影响医疗服务效率,甚至延误患者的诊断和治疗,造成医疗事故等。所以,为了满足中心业务连续性,增强抗风险能力,通常采用多活架构系统提供数据服务。
3、多活系统需要建立多个机房,每个机房都是一个独立的es集群。在多机房集群架构中,在对集群中的文档数据进行变更时,跨机房之间的数据通信会因为时延过长导致集群之间的节点数据通行超时,进而误触发分片迁移,从而占用大量的i/o,影响数据通信效率;而如果在分片迁移时没有配置副本分片,数据没有备份,则会导致服务不能用,从而导致文档数据更新失败。另外,es集群建立在多个机房上时,还会出现“脑裂”问题,当存在机房不可用时,会存在选主失败的情况,从而影响es集群之间的数据通信效率。
4、因此,如何解决目前多es集群的文档数据更新效率低下成为亟待解决的技术问题。
技术实现思路
1、本申请提供了一种多es集群的文档数据处理方法、装置、设备及存储介质,旨在提高多es集群的文档数据更新效率。
2、第一方面,本申请提供一种多es集群的文档数据处理方法,用于代理服务系统,所述代理服务系统包括代理服务、消息队列和消费者,其中,所述代理服务用于接收业务请求,所述消息队列用于缓存请求消息,所述消费者用于执行多es集群的文档更新,所述多es集群的文档数据处理方法包括以下步骤:
3、在所述代理服务接收到业务服务发送的目标文档的变更写请求时,生成文档变更消息,其中,所述变更写请求包括所述目标文档的文档id;
4、基于所述文档id,确定所述目标文档在所述消息队列中对应的存储分区,并基于所述存储分区,存储所述文档变更消息;
5、在所述消费者执行存储于所述消息队列中的所述文档变更消息时,将所述文档变更写请求异步写入至少两个所述es集群中,以实现对所述目标文档的变更。
6、第二方面,本申请还提供一种多es集群的文档数据处理装置,所述多es集群的文档数据处理装置包括:
7、文档变更消息生成模块,用于在所述代理服务接收到业务服务发送的目标文档的变更写请求时,生成文档变更消息,其中,所述变更写请求包括所述目标文档的文档id;
8、消息队列模块,用于基于所述文档id,确定所述目标文档在所述消息队列中对应的存储分区,并基于所述存储分区,存储所述文档变更消息;
9、文档变更模块,用于在所述消费者执行存储于所述消息队列中的所述文档变更消息时,将所述文档变更写请求异步写入至少两个所述es集群中,以实现对所述目标文档的变更。
10、第三方面,本申请还提供一种计算机设备,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上述的多es集群的文档数据处理方法的步骤。
11、第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上述的多es集群的文档数据处理方法的步骤。
12、本申请提供一种多es集群的文档数据处理方法、装置、设备及存储介质,本申请方法通过代理服务接收业务服务发送的变更写请求,并将变更写请求封装成消息的形式,存储到消息队列中,以保证同一文档的变更有序性;根据变更写请求中的文档id,确定目标文档在消息队列中对应的存储分区,从而通过目标文档对应的存储分区存储变更请求消息,保证不同文档的独立性,避免文档更新失败时对其他文档更新进程的影响,提高文档数据更新的效率;在消费者执行文档变更消息时,消费者可以将文档变更写请求异步应用在多个es集群中,依次对各es集群中的目标文档进行变更,而不需要对多es集群进行数据同步变更,由此,可以避免多es集群多机房部署时造成的数据通信延时问题,从而提高多es集群的文档数据变更效率。
1.一种多es集群的文档数据处理方法,其特征在于,用于代理服务系统,所述代理服务系统包括代理服务、消息队列和消费者,其中,所述代理服务用于接收业务请求,所述消息队列用于缓存请求消息,所述消费者用于执行多es集群的文档更新,所述方法包括:
2.根据权利要求1所述的多es集群的文档数据处理方法,其特征在于,所述代理服务系统还包括数据库,所述数据库用于存储更新数据;
3.根据权利要求2所述的多es集群的文档数据处理方法,其特征在于,所述在所述消费者执行存储于所述消息队列中的所述文档变更消息时,将所述文档变更写请求异步写入至少两个所述es集群中,以实现对所述目标文档的变更之后,还包括:
4.根据所述权利要求2所述的多es集群的文档数据处理方法,其特征在于,所述在所述消费者执行存储于所述消息队列中的所述文档变更消息时,将所述文档变更写请求异步写入至少两个所述es集群中,以实现对所述目标文档的变更之后,还包括:
5.根据权利要求4所述的多es集群的文档数据处理方法,其特征在于,所述变更失败信息包括所述文档id和异常因素,所述异常因素包括网络、超时和节点。
6.根据权利要求1所述的多es集群的文档数据处理方法,其特征在于,所述在所述代理服务接收到业务服务发送的目标文档的变更写请求时,生成文档变更消息,包括:
7.根据权利要求6所述的多es集群的文档数据处理方法,其特征在于,所述在所述消费者执行存储于所述消息队列中的所述文档变更消息时,将所述文档变更写请求异步写入至少两个所述es集群中,以实现对所述目标文档的变更之后,还包括:
8.一种多es集群的文档数据处理装置,其特征在于,所述多es集群的文档数据处理装置包括:
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一项所述的多es集群的文档数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的多es集群的文档数据处理方法的步骤。