本申请涉及软件系统开发中的微服务领域,具体涉及一种多线程数据实时同步方法、设备及介质。
背景技术:
1、在当前软件系统开发中的微服务领域中,存在的微服务架构,将应用程序拆分为一组小型的服务,并且每个服务都专注于完成一个特定的业务功能,并通过轻量级的通信机制相互配合,其中不同的服务对应着不同的业务数据库。
2、随着业务变的越来越复杂,业务数据量也就越来越多,需要多个数据中心或多个节点之间来进行数据的存储和处理,因此就需要一种高可用且高可靠的数据同步服务,以确保多个节点之间的数据保持同步。
3、数据同步服务是指将数据从一个系统复制到另一个系统的过程,在这个过程中的关键要点是保证数据操作的原子性以及顺序一致性,而当前软件系统开发中的微服务领域中,难以实现操作的原子性以及顺序一致性。
技术实现思路
1、为了解决上述问题,本申请提出了一种多线程数据实时同步方法,包括:
2、通过生产者确定业务信息对应的消息数据,将所述消息数据发送到数据同步服务组件;
3、通过所述数据同步服务组件获得所述消息数据对应的生产者消息流水数据,并发布消息定时发送线程的监听事件;
4、启动消息定时发送线程的监听器,通过信号量控制线程数量方式唤醒消息定时发送线程,以定时拉取所述生产者消息流水数据;
5、遍历所述生产者消息流水数据,基于不同的数据类型,将所述消息数据从所述数据同步组件发送到对应消息同步主题的消息队列中,并基于所述消息同步主题更新所述生产者消息流水数据;
6、确定消费者订阅所述消息同步主题,通过所述消费者拉取所述消息同步主题的消息队列中的消息数据,根据所述生产者消息流水数据中的消息发送顺序,对所述消息数据进行消费,并保存消费者消息流水数据。
7、另一方面,本申请还提出一种多线程数据实时同步设备,包括:
8、至少一个处理器;以及,
9、与所述至少一个处理器通信连接的存储器;其中,
10、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如:上述示例所述的多线程数据实时同步方法。
11、另一方面,本申请还提出了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:上述示例所述的多线程数据实时同步方法。
12、通过本申请提出一种多线程数据实时同步方法能够带来如下有益效果:
13、基于分布式消息队列中间件系统来实现多线程数据实时同步,能够实现在微服务系统中,通过分布式锁限制单个实例执行相关操作,防止出现并发问题而导致的数据不一致,同时也控制节点对资源的访问顺序,从而保证数据同步的正确性。
14、并且添加消息定时发送线程,当数据发送出现异常时,消息定时发送线程能对未发送的消息进行补偿发送,直到消息发送成功,最大限度保证了数据同步的可靠性,并保证了数据操作的原子性,以分布式锁的方式进行排他操作,避免出现两个应用服务同时补偿相同数据的错误情况,以保证数据同步的高可用性。
1.一种多线程数据实时同步方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,通过所述消费者拉取所述消息同步主题的消息队列中的消息数据,根据所述生产者消息流水数据中的消息发送顺序,对所述消息数据进行消费,具体包括:
3.根据权利要求2所述的方法,其特征在于,调用消息消费者基本抽象类,根据所述不同的数据类型,查询对应的服务器实现类,具体包括:
4.根据权利要求1所述的方法,其特征在于,遍历所述生产者消息流水数据,基于不同的数据类型,将所述消息数据从所述数据同步组件发送到对应消息同步主题的消息队列中,并基于所述消息同步主题更新所述生产者消息流水数据,具体包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,通过生产者将所述消息数据发送到数据同步服务组件,获得生产者消息流水数据,具体包括:
7.根据权利要求5所述的方法,其特征在于,所述消息数据未正常发送或所述消息定时发送线程异常时,将所述消息数据进行补偿,重新发送到所述对应的消息队列中,具体包括:
8.根据权利要求2所述的方法,其特征在于,获取数据库中的消费流水表,调用消息消费入口服务类,判断当前消息数据在所述消费流水表中是否存在,具体包括:
9.一种多线程数据实时同步设备,其特征在于,包括:
10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:权利要求1-8中任一项权利要求所述的多线程数据实时同步方法。