数据同步传输方法、系统、装置和存储介质制造方法及图纸

技术编号:20484220 阅读:26 留言:0更新日期:2019-03-02 18:42
本发明专利技术提供一种数据同步传输方法、系统、装置和存储介质,所述方法包括:消息生产者将生产的消息进行内部封装和投递;消息服务器接收所述消息生产者投递的消息并进行本地分区存储;消息消费者通过所述本地分区存储中每个分区内的消费线程,分别对所述每个分区内的消息进行消费处理。本发明专利技术通过消息服务器将信息从生产者传输到消费者,从而提高大容量网络数据同步传输效率。

【技术实现步骤摘要】
数据同步传输方法、系统、装置和存储介质
本专利技术涉及数据处理领域,具体而言,涉及一种数据同步传输方法、系统、装置和存储介质。
技术介绍
传统的银行项目产品使用单库方案,即全部数据存储于同一个逻辑数据库,随着业务量的增长,数据库中的数据量增长更加迅速,为支持高速业务的发展,必然出现高并发,大数据量的访问场景,使用单库解决方案带来的成本消耗是巨大的,同时由于数据量较大,此时数据库操作会十分耗时,系统的整体处理能力迅速下降。为了提高数据库访问效率,减少数据库访问时间,我行使用数据库的分库分表策略。由于分库分表的存在,必然带来可访问数据的应用服务器在物理部署上有差异。业务系统在记录流水时,出现数据分布于不同数据库的情况。我行的业务系统中,同一份业务数据供多组件使用的情况比较普遍,对数据的同步成为一个亟需解决的问题。在综合考虑当前业界解决方案,考虑各方成本,我们最终选用通过异步消息将流水复制供多方使用数据库的解决方案。当前采用多方数据库共享数据方式,多个组件使用同一个数据库,主业务逻辑处理数据后,由其他组件再进行相应处理,某些同步性要求比较高的组件则使用串行插入多张表的方式实现,这对业务系统的性能造成极大消耗。
技术实现思路
为解决上述技术问题,本专利技术提供一种数据同步传输方法、系统、装置和存储介质,解决当前交易数据一致性差的问题。根据本专利技术实施例的第一方面,提供了一种数据同步传输方法,所述方法包括:消息生产者将生产的消息进行内部封装和投递;消息服务器接收所述消息生产者投递的消息并进行本地分区存储;消息消费者通过所述本地分区存储中每个分区内的消费线程,分别对所述每个分区内的消息进行消费处理。根据本专利技术实施例的第二方面,一种数据同步传输系统,所述系统包括:消息生产者,用于将生产的消息进行内部封装和投递;消息服务器,用于接收所述消息生产者投递的消息并进行本地分区存储;消息消费者,用于通过所述本地分区存储中每个分区内的消费线程,分别对所述每个分区内的消息进行消费处理。根据本专利技术实施例的第三方面,提供一种计算机可读存储介质,所述计算机存储介质包含有计算机程序,其中,所述计算机程序在被一个或多个计算机执行时使得所述一个或多个计算机执行如下操作:所述操作包括如上中任一项所述数据同步传输方法所包含的步骤。根据本专利技术实施例的第四方面,提供一种数据同步传输装置,所述装置包括:存储器,存储有计算机可读指令;处理器,执行所述计算机可读指令以执行如上所述的数据同步传输方法所包含的步骤。实施本专利技术实施例提供的一种数据同步传输方法、系统、装置和存储介质,具有以下优点:可提高数据同步数据传输效率。附图说明图1是本专利技术实施例的一种数据同步传输方法的流程图;图2是本专利技术实施例的一种数据同步传输系统1的结构示意图。具体实施方式为使本专利技术的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。图1是本专利技术实施例的一种数据同步传输方法的流程图,参见图1,所述方法包括:步骤S1,消息生产者将生产的消息进行内部封装和投递;步骤S2,消息服务器接收所述消息生产者投递的消息并进行本地分区存储;步骤S3,消息消费者通过所述本地分区存储中每个分区内的消费线程,分别对所述每个分区内的消息进行消费处理。其中,消息生产者、消息服务器、消息消费者,分别对应业务系统中流水产生方,消息服务器,流水被同步方。在本专利技术的实施方式中,所述将生产的消息进行内部封装包括:将所述消息封装为消息头和消息体,其中,所述消息头用于定义消息关键属性,所述消息体采用序列化字符存储。消息头中定义类如topicName、bizId、msgId、sndTime等关键属性用于追踪一条记录的同步状况。消息体采用序列化的字符方式存储,用以高效传输。在本专利技术的实施方式中,所述本地分区存储包括:所述消息中的指定名称对应指定分区,所述消息服务器根据所述指定分区存储所述消息。消息发送,消息按照用户指定的TOPIC名称,并且根据消息分区KEY投递到指定的TOPIC的相应的分区,并且能保证相同的分区KEY的消息存储在同一个分区内,同一分区的消息将被顺序消费。消息服务器接收到消息后,将消息进行持久化,且每个TOPIC的消息数据按照分区会均匀地分布在不同的服务器上面,并且每条消息会在多台服务器上面进行存储,以防止某台服务器宕机后消息丢失。同一个消费组的消费线程均匀地分布在不同的机器上面,每个消费线程消费一个或多个TOPIC分区的消息,一个分区只能被一个消费线程消费。在本专利技术的实施方式中,所述方法还包括:所述消息服务器接收所述消息生产者投递的消息后,对所述消息进行持久化处理。一条需要同步的消息由业务发生组件产生,通过内部封装,向消息服务器投递,消息服务器收到消息后,进行本地存储化,等待消息消费方进行拉取消费。本专利技术通过消息服务器将信息从生产者传输到消费者,从而提高大容量网络数据同步传输效率。图2是本专利技术实施例的一种数据同步传输系统1的结构示意图,参见图2,所述系统1包括:消息生产者100,用于将生产的消息进行内部封装和投递;消息服务器200,用于接收所述消息生产者投递的消息并进行本地分区存储;消息消费者300,用于通过所述本地分区存储中每个分区内的消费线程,分别对所述每个分区内的消息进行消费处理。其中,消息生产者、消息服务器、消息消费者,分别对应业务系统中流水产生方,消息服务器,流水被同步方。在本专利技术的实施方式中,所述将生产的消息进行内部封装包括:将所述消息封装为消息头和消息体,其中,所述消息头用于定义消息关键属性,所述消息体采用序列化字符存储。消息头中定义类如topicName、bizId、msgId、sndTime等关键属性用于追踪一条记录的同步状况。消息体采用序列化的字符方式存储,用以高效传输。在本专利技术的实施方式中,所述本地分区存储包括:所述消息中的指定名称对应指定分区,所述消息服务器根据所述指定分区存储所述消息。消息发送,消息按照用户指定的TOPIC名称,并且根据消息分区KEY投递到指定的TOPIC的相应的分区,并且能保证相同的分区KEY的消息存储在同一个分区内,同一分区的消息将被顺序消费。消息服务器接收到消息后,将消息进行持久化,且每个TOPIC的消息数据按照分区会均匀地分布在不同的服务器上面,并且每条消息会在多台服务器上面进行存储,以防止某台服务器宕机后消息丢失。同一个消费组的消费线程均匀地分布在不同的机器上面,每个消费线程消费一个或多个TOPIC分区的消息,一个分区只能被一个消费线程消费。在本专利技术的实施方式中,所述消息服务器接收所述消息生产者投递的消息还包括:所述消息服务器接收所述消息生产者投递的消息后,对所述消息进行持久化处理。一条需要同步的消息由业务发生组件产生,通过内部封装,向消息服务器投递,消息服务器收到消息后,进行本地存储化,等待消息消费方进行拉取消费。本专利技术通过消息服务器将信息从生产者传输到消费者,从而提高大容量网络数据同步传输效率。需要说明的是,所述数据同步传输方法的操作包括如上所述的所包含的步骤与上述数据同步传输系统的操作方式相同,具体内容在此不再赘述。另外,本专利技术还提供一种计算机可读存储介质,所述计算机存储介质包含有计算机程序,所述计算机程序在被一个或多个计算机本文档来自技高网...

【技术保护点】
1.一种数据同步传输方法,其特征在于,所述方法包括:消息生产者将生产的消息进行内部封装和投递;消息服务器接收所述消息生产者投递的消息并进行本地分区存储;消息消费者通过所述本地分区存储中每个分区内的消费线程,分别对所述每个分区内的消息进行消费处理。

【技术特征摘要】
1.一种数据同步传输方法,其特征在于,所述方法包括:消息生产者将生产的消息进行内部封装和投递;消息服务器接收所述消息生产者投递的消息并进行本地分区存储;消息消费者通过所述本地分区存储中每个分区内的消费线程,分别对所述每个分区内的消息进行消费处理。2.如权利要求1所述方法,其特征在于,所述将生产的消息进行内部封装包括:将所述消息封装为消息头和消息体,其中,所述消息头用于定义消息关键属性,所述消息体采用序列化字符存储。3.如权利要求1所述方法,其特征在于,所述本地分区存储包括:所述消息中的指定名称对应指定分区,所述消息服务器根据所述指定分区存储所述消息。4.如权利要求1-3任一项所述方法,其特征在于,所述方法还包括:所述消息服务器接收所述消息生产者投递的消息后,对所述消息进行持久化处理。5.一种数据同步传输系统,其特征在于,所述系统包括:消息生产者,用于将生产的消息进行内部封装和投递;消息服务器,用于接收所述消息生产者投递的消息并进行本地分区存储;消息消费者,用于通过所述本地分区存储中每个分区内的消费线程,分别...

【专利技术属性】
技术研发人员:邓华伟安兴朝赵钊
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:北京,11

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

1