本公开涉及计算机、金融科技,具体涉及一种消息调用和消息发送方法、装置、设备、介质和程序产品。
背景技术:
1、随着技术的转型和发展,同一企业内部往往存在多个业务系统。由于不同业务系统的实现方式不同,导致多个不同业务系统之间无法相互兼容,可能存在不同业务系统之间的数据无法依赖的问题。
2、在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题,传统技术中,短期内由一个业务系统向另一个业务系统全部迁移重写数据的工作量太大。且只要有数据产生变更,就需要进行数据的迁移重写,加大了工作量且造成了不必要的资源浪费。
技术实现思路
1、鉴于上述问题,本公开提供了一种消息调用和消息发送方法、装置、设备、介质和程序产品。
2、根据本公开的第一个方面,提供了一种消息调用方法,包括:
3、监控消息中间件中目标分区的消息变更动态,消息变更动态用于表征目标分区中的消息是否发生变更;
4、在目标分区中的消息发生变更情况下,从目标分区中获取已发生变更的多条初始业务消息,其中,多条初始业务消息是由第二业务系统生成并发送给目标分区的,第二业务系统为第一业务系统的上游业务系统;
5、基于第一预定规则,从多条初始业务消息中确定与第一业务系统中的至少一个第一待处理业务相关联的m个目标业务消息;
6、从目标分区中调用m个目标业务消息。
7、根据本公开的实施例,第一预定规则包括业务消息与第一待处理业务的对应关系,
8、基于第一预定规则,从多条初始业务消息中确定与第一业务系统中的至少一个第一待处理业务相关联的m个目标业务消息,包括:
9、判断每条初始业务消息是否为执行第一待处理业务所需要的业务消息;
10、在至少一条初始业务消息为执行第一待处理业务所需要的业务消息的情况下,将至少一条初始业务消息确定为目标业务消息。
11、根据本公开的实施例,第一业务系统中包含多个第一容器,多个第一待处理业务执行在多个第一容器上;
12、从目标分区中调用m个目标业务消息,包括:
13、响应于由第一负载均衡器发送的指令,将目标分区中的m个目标业务消息调用至不同的第一容器上,用于实现在第一业务系统中执行多个第一待处理业务时的负载均衡。
14、根据本公开的实施例,消息调用方法还包括:
15、根据m个目标业务消息,执行至少一个第一待处理业务。
16、根据本公开的实施例,根据m个目标业务消息,执行至少一个第一待处理业务,包括:
17、根据调用m个目标业务消息的标识信息和时间戳,获取执行至少一个第一待处理业务的分布式锁;
18、在成功获取分布式锁的情况下,执行至少一个第一待处理业务;
19、在未成功获取分布式锁的情况下,将m个目标业务消息写入至消息失败补偿表,其中,消息失败补偿表存储于第一业务系统中。
20、本公开的第二方面提供了一种消息发送方法,包括:
21、响应于执行第二待处理业务的业务请求,执行第二待处理业务;
22、根据第二待处理业务的执行结果,生成多条初始业务消息;
23、向消息中间件的目标分区发送多条初始业务消息。
24、根据本公开的实施例,消息发送方法还包括:
25、接收来自目标分区对多条初始业务消息的反馈信息;
26、根据反馈信息,确定发送结果。
27、根据本公开的实施例,根据反馈信息,确定发送结果,包括:
28、在没有接收到反馈信息的情况下,重新向目标分区发送至少一条初始业务消息;
29、在接收到反馈信息的情况下,判断反馈信息为发送成功或发送失败。
30、根据本公开的实施例,在接收到反馈信息的情况下,判断反馈信息为发送成功或发送失败,包括:
31、在反馈信息为发送失败的情况下,将至少一条初始业务消息写入至消息失败补偿表,其中,消息失败补偿表存储于第二业务系统中;
32、在预定时间内,重新向目标分区发送存储于消息失败补偿表中的至少一条初始业务消息。
33、根据本公开的实施例,第二业务系统中包含多个第二容器,多个第二待处理业务执行在多个第二容器上,
34、在执行第二待处理业务之前,消息发送方法还包括:
35、响应于由第二负载均衡器发送的指令,将多个第二待处理业务分配至不同的第二容器上,用于实现在第二业务系统中执行多个第二待处理业务时的负载均衡。
36、本公开的第三方面提供了一种消息调用装置,包括:
37、监控模块,用于监控消息中间件中目标分区的消息变更动态,消息变更动态用于表征目标分区中的消息是否发生变更;
38、获取模块,用于在目标分区中的消息发生变更情况下,从目标分区中获取已发生变更的多条初始业务消息,其中,多条初始业务消息是由第二业务系统生成并发送给目标分区的,第二业务系统为第一业务系统的上游业务系统;以及
39、第一确定模块,用于基于第一预定规则,从多条初始业务消息中确定与第一业务系统中的至少一个第一待处理业务相关联的m个目标业务消息。
40、调用模块,用于从目标分区中调用m个目标业务消息。
41、本公开的第四方面提供了一种消息发送装置,包括:
42、第二执行模块,用于响应于执行第二待处理业务的业务请求,执行第二待处理业务;
43、生成模块,用于根据第二待处理业务的执行结果,生成多条初始业务消息;以及
44、发送模块,用于向消息中间件的目标分区发送多条初始业务消息。
45、本公开的第五方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,其中,上述一个或多个处理器执行上述一个或多个计算机程序以实现上述方法的步骤。
46、本公开的第六方面还提供了一种计算机可读存储介质,其上存储有计算机程序或指令,上述计算机程序或指令被处理器执行时实现上述方法的步骤。
47、本公开的第七方面还提供了一种计算机程序产品,包括计算机程序或指令,上述计算机程序或指令被处理器执行时实现上述方法的步骤。
48、根据本公开的实施例,通过采用消息中间件,实现了第二业务系统与第一业务系统之间的连接,将第一业务系统作为消息消费者,通过监控消息中间件中目标分区,以及时获得分区中的消息变更动态,实现对上游系统(第二业务系统)消息的获取;进一步地,采用预先配置在系统中的第一预定规则对初始业务消息进行筛选和判别,以确定多条初始业务消息中与执行第一待处理业务相关联目标业务消息,仅对相关联的初始业务消息进行调用,既为第一待处理业务提供数据基础,又降低了第一业务系统调用消息的工作量,间接提升第一业务系统消息处理速率,以及进一步地,无需将与第一待处理业务不相关的初始业务消息调用至第一业务系统,减少第一业务系统的内存消耗。
49、根据本公开的实施例,通过采用消息中间件,实现了第一业务系统与第二业务系统之间的连接,将第二业务系统作为消息生产者,通过向消息中间件中目标分区发送消息,使得通过消息中间件的方式传递第二业务系统中的消息,以使得第二业务系统能够及时获得分区中的消息,实现对上游系统(第二业务系统)消息的获取;进一步地,通过配置在消息中间件上的负载均衡器来实现在消息中间件的分区中的负载均衡,避免某些分区过载而其他分区空闲,以及减少消息丢失的风险。
1.一种消息调用方法,其特征在于,所述消息调用方法应用于第一业务系统,所述第一业务系统作为消息消费者,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一预定规则包括业务消息与第一待处理业务的对应关系,
3.根据权利要求1所述的方法,其特征在于,所述第一业务系统中包含多个第一容器,多个第一待处理业务执行在所述多个第一容器上;
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,根据所述m个目标业务消息,执行所述至少一个第一待处理业务,包括:
6.一种消息发送方法,其特征在于,所述消息发送方法应用于第二业务系统,所述第二业务系统作为消息生产者,所述方法包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,根据所述反馈信息,确定发送结果,包括:
9.根据权利要求8所述的方法,其特征在于,在接收到所述反馈信息的情况下,判断所述反馈信息为发送成功或发送失败,包括:
10.根据权利要求6所述的方法,其特征在于,所述第二业务系统中包含多个第二容器,多个第二待处理业务执行在所述多个第二容器上,
11.一种消息调用装置,其特征在于,所述装置包括:
12.一种消息发送装置,其特征在于,所述装置包括:
13.一种电子设备,包括:
14.一种计算机可读存储介质,其上存储有计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现根据权利要求1~10中任一项所述方法的步骤。
15.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现根据权利要求1~10中任一项所述方法的步骤。