本发明涉及计算机应用,更为具体而言,涉及确保业务系统与搜索引擎数据一致性的方法、设备、程序产品及存储介质。
背景技术:
1、elasticsearch是一个开源的分布式搜索引擎,它基于apache lucene库构建,专为高性能、实时的全文搜索以及数据分析而设计。elasticsearch通过索引、分片、副本等机制实现了数据的高效存储与快速检索,常用于日志分析、实时监控、电子商务搜索、大数据分析等多个场景。
2、尽管elasticsearch提供了近乎实时的数据检索能力,但在高并发写入或大量数据迁移时,数据从源系统到elasticsearch的同步可能会出现延迟,数据覆盖或丢失,导致最终数据不一致问题。
技术实现思路
1、鉴于上述数据不一致的问题,本发明提供了确保业务系统与搜索引擎数据一致性的方法、设备、程序产品及存储介质。
2、一方面,本发明的实施例涉及一种确保业务系统与搜索引擎数据一致性的方法,包括:
3、接收具有延迟发送功能的消息队列延时发送的待对比数据,所述待对比数据设有预定的延时等级和对比计数;
4、根据业务id查询接收的待对比数据的摘要信息,作为第一摘要信息;
5、将该接收的待对比数据的业务类型和业务id作为key,通过该key查询redis(remote dictionary server,远程字典服务),获得摘要信息,作为第二摘要信息;
6、对比所述第一摘要信息与所述第二摘要信息是否一致,如果二者一致,则从elasticsearch的服务器获取摘要信息,作为第三摘要信息;
7、对比所述第一摘要信息与所述第三摘要信息是否一致,如果二者不一致,则判断所述对比计数是否大于预定值;
8、如果所述对比计数不大于预定值,则将所述第一摘要信息对应的业务数据再次同步到所述elasticsearch的服务器,同时将所述待对比数据的对比计数加一并重新配置延时等级,并将经过重新配置的待对比数据发送至所述消息队列。
9、在一些实施例中,所述方法还包括以下数据同步处理:
10、接收生产者产生的业务数据,将接收的业务数据生成摘要信息;
11、封装待对比数据,并将封装的待对比数据发送至具有延时发送功能的消息队列,其中,所述待对比数据包含摘要信息,并被配置有所述对比计数和所述延时等级;
12、将所述摘要信息存放至redis中;
13、将所述业务数据和所述摘要信息同步至elasticsearch的服务器,其中,通过所述elasticsearch的客户进行业务数据的操作,所述操作后的业务数据也同步至所述elasticsearch的服务器。
14、在一些实施例中,所述方法还包括:如果所述第一摘要信息与所述第二摘要信息不一致,则结束处理。
15、在一些实施例中,所述方法还包括:如果所述第一摘要信息与所述第三摘要信息一致,则删除redis中的所述第二摘要信息,并且结束处理。
16、在一些实施例中,所述方法还包括:如果所述对比计数大于预定值,则对比失败,删除redis中的所述第二摘要信息,并将对比失败的业务数据保存到数据库。
17、在一些实施例中,所述具有延迟发送功能的消息队列包括rocketmq消息队列。rocketmq是apache提供的低延迟、高并发、高可用、高可靠的分布式消息中间件。
18、在一些实施例中,所述接收生产者产生的业务数据包括:
19、将所述生产者产生的业务数据发送至rocketmq消息队列,接收通过该rocketmq消息队列发送的业务数据。
20、在一些实施例中,通过md5信息摘要算法,将接收的业务数据生成摘要信息。
21、在一些实施例中,随着所述对比计数的增加,所述延时等级也增加。
22、在一些实施例中,所述方法还包括:
23、查询用于保存对比失败的业务数据的数据库;
24、如果存在数据,则根据业务数据分组,查询各个业务关联的用户信息表,根据用户信息表的联系方式,发送预警通知。
25、在一些实施例中,可以使用任务调度中心配置定时任务,每隔预定时间例如1小时触发该调度任务,调用系统预警api,通过api执行所述查询操作。
26、另一方面,本发明的实施例涉及一种计算机可读存储介质,所述计算机可读存储介质储存计算机可执行指令,所述计算机可执行指令由处理器执行以实现本发明任意一个实施例所述的方法。
27、另外,本发明的实施例涉及一种计算机设备,其包括存储器和处理器,
28、所述存储器存储有计算机可执行指令,所述处理器执行所述计算机可执行指令以实现本发明任意一个实施例所述的方法。
29、此外,本发明的实施例提供了一种计算机程序产品,其包括计算机程序,所述计算器程序被处理器执行时实现本发明任意一个实施例所述的方法。
30、相比现有技术,本发明具有以下效果和优点:
31、1.提高数据同步的即时性和准确性:通过采用rocketmq消息队列作为中间件的高效同步机制,显著降低了数据从产生到索引的时间延迟,提高了数据的实时性。同时,消息的顺序性和重试机制确保了数据同步的精确无误,即使在网络波动或系统短暂故障情况下,也能最终达到数据的一致性状态,从而提升了业务数据的整体准确性和可靠性。
32、2.增强系统稳定性和可维护性:生产者-消费者模式的引入有效解耦了业务系统与elasticsearch的直接关联,使得双方可以独立升级和维护,提高了系统的稳定性和可扩展性。此外,这种设计减少了直接依赖,使得系统的复杂度管理变得更加容易,降低了维护成本。
33、3.降低数据不一致风险,提升数据治理能力:触发式数据比对机制的实施主动发现并修复数据不一致,避免了由于数据差异导致的决策失误或服务质量下降,增强了数据质量管理。长期运行比对与修复流程,为数据治理提供了有力支持,确保数据资产的健康度和可用性。
34、4.错误处理和监控:提前发现并迅速响应潜在问题,减少数据不一致的窗口期,提升系统整体的稳定性和可靠性。
35、综上所述,本发明通过创新的数据同步机制和数据比对修复策略,不仅显著提高了数据同步的效率和质量,还增强了系统的稳定性和安全性,降低了运营成本,提高了整体的业务连续性和用户体验。
36、本发明实施方式的各个方面、特征、优点等将在下文结合附图进行具体描述。根据以下结合附图的具体描述,本发明的上述方面、特征、优点等将会变得更加清楚。
1.一种确保业务系统与搜索引擎数据一致性的方法,包括:
2.如权利要求1所述的方法,其特征在于,还包括:
3.如权利要求1或2所述的方法,其特征在于,还包括:如果所述第一摘要信息与所述第二摘要信息不一致,则结束处理。
4.如权利要求1或2所述的方法,其特征在于,还包括:如果所述第一摘要信息与所述第三摘要信息一致,则删除redis中的所述第二摘要信息,并且结束处理。
5.如权利要求1或2所述的方法,其特征在于,还包括:如果所述对比计数大于预定值,则对比失败,删除redis中的所述第二摘要信息,并将对比失败的业务数据保存到数据库。
6.如权利要求1所述的方法,其特征在于,所述具有延迟发送功能的消息队列包括rocketmq消息队列。
7.如权利要求2所述的方法,其特征在于,所述接收生产者产生的业务数据包括:
8.如权利要求2所述的方法,其特征在于,通过md5信息摘要算法,将接收的业务数据生成摘要信息。
9.如权利要求1所述的方法,其特征在于,随着所述对比计数的增加,所述延时等级也增加。
10.如权利要求1所述的方法,其特征在于,还包括:
11.一种计算机可读存储介质,所述计算机可读存储介质储存计算机可执行指令,其特征在于,所述计算机可执行指令由处理器执行以实现如权利要求1至10中任一项所述的方法。
12.一种计算机设备,其包括存储器和处理器,
13.一种计算机程序产品,其包括计算机程序,其特征在于,所述计算器程序被处理器执行时实现如权利要求1至10中任一项所述的方法。
