CN108347477A - 数据发送方法、装置以及服务器 - Google Patents
数据发送方法、装置以及服务器 Download PDFInfo
- Publication number
- CN108347477A CN108347477A CN201810069141.7A CN201810069141A CN108347477A CN 108347477 A CN108347477 A CN 108347477A CN 201810069141 A CN201810069141 A CN 201810069141A CN 108347477 A CN108347477 A CN 108347477A
- Authority
- CN
- China
- Prior art keywords
- data
- sent
- message queue
- orderly
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种数据发送方法、装置以及服务器。所述方法包括:所述服务器接收多个待发送数据,其中每个待发送数据中包括一个有序标记;根据待发送数据中的有序标记,将所述多个待发送数据分割为一个或多个数据包,其中具有相同有序标记的待发送数据分割到同一个数据包,具有不同有序标记的待发送数据分割到不同数据包;将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,其中,同一个数据包中的待发送数据按照接收的先后顺序放入同一个消息队列。本方法使得当服务器将多个数据包放入多个消息队列时,数据同步过程中的发送可以多链路进行,提高了同步效率。
Description
技术领域
本申请涉及数据同步领域,更具体地,涉及一种数据发送方法、装置以及服务器。
背景技术
出于数据安全备份或提高各地用户的访问速度等目的,一些互联网站会在不同地点部署多个站点。其中每个站点为一台服务器或者由多台服务器所组成的集群。这些站点之间会保持数据同步,以使得其中所存储的部分数据内容或者全部数据内容一致。
在数据同步中,为了保证同步的顺序性,将数据采用单线程形式进行数据同步,同步效率低。
发明内容
鉴于上述问题,本申请提出了数据发送方法、装置以及服务器,以改善在数据同步过程中,同步效率低的问题。
第一方面,本申请提供了一种数据发送方法,应用于跨机房数据同步***,所述跨机房数据同步***包括消息队列装置以及服务器;所述消息队列装置包括多个消息队列,所述服务器用于将待发送数据处理后放入到所述多个消息队列中的至少一个消息队列中,所述多个消息队列为用于数据发送的先进先出队列;所述方法包括:所述服务器接收多个待发送数据,其中每个待发送数据中包括一个有序标记;根据待发送数据中的有序标记,将所述多个待发送数据分割为一个或多个数据包,其中具有相同有序标记的待发送数据分割到同一个数据包,具有不同有序标记的待发送数据分割到不同数据包;将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,其中,同一个数据包中的待发送数据按照接收的先后顺序放入同一个消息队列。
第二方面,本申请提供了一种数据发送装置,运行于跨机房同步***中的服务器,所述跨机房数据同步***包括消息队列装置以及服务器;所述消息队列装置包括多个消息队列,所述服务器用于将待发送数据处理后放入到所述多个消息队列中的至少一个消息队列中,所述多个消息队列为用于数据发送的先进先出队列;所述数据发送装置包括:数据接收模块,用于接收多个待发送数据,其中每个待发送数据中包括一个有序标记;数据分割模块,用于根据待发送数据中的有序标记,将所述多个待发送数据分割为一个或多个数据包,其中具有相同有序标记的待发送数据分割到同一个数据包,具有不同有序标记的待发送数据分割到不同数据包;入队模块,用于将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,其中,同一个数据包中的待发送数据按照接收的先后顺序放入同一个消息队列。
第三方面,本申请提供了一种服务器,包括一个或多个处理器以及存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请提供了一种具有处理器可执行的程序代码的计算机可读存储介质,所述程序代码使所述处理器执行上述的方法。
本申请提供的一种数据发送方法、装置以及服务器,在跨机房数据同步***中,消息队列装置中包括多个用于数据发送的先进先出的消息队列,服务器接收到待发送数据后,根据待发送数据中的有序标记进行数据包分割,将多个待发送数据分割为一个或多个数据包。并且,将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,因此,当将多个数据包放入多个消息队列,数据从多个消息队列并行发送,提高发送效率,从而提高了该跨机房数据同步***中的数据同步效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提出的一种跨机房数据同步***的环境示意图;
图2示出了本申请提出的一种跨机房数据同步***的结构框图;
图3示出了本申请提出的一种数据发送方法流程图;
图4示出了本申请提出的另一种数据发送方法流程图;
图5示出了本申请提出的一种数据发送装置的结构框图;
图6示出了本申请的用于执行根据本申请实施例的数据发送方法的服务器的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
通常互联网公司会部署多个分布在不同区域站点,有时为了保证所部署的不同站点之间的数据相同或者站点中的部分数据相同,会在不同的站点之间进行数据同步。例如,为了便于用户在接入到每个站点时都能进行用户登录,不同的站点之间会同步所有用户的用户名和密码等登录信息。
通常一个站点是建设在一个机房之中的,所以当在不同的站点之间进行数据同步时,也可以看作是在不同的机房之间进行数据同步。发明人发现,在数据同步中,由于为了保证同步的顺序性,通常将数据以单线程的形式进行同步,单线程同步过程中,数据单链路发送,同步速率低。
因此,发明人提出了本申请中的数据发送方法,将接收到的待发送数据根据有序标记分割,若有序标记为多个,则可以分割为多个数据包,多个数据包可以放入多个消息队列,以使数据从多个消息队列有序发送,从而可以多线程多链路进行数据发送,提高发送效率。
下面先对本申请提供的数据发送方法、装置所运行于的一种跨机房数据同步***的环境进行介绍。
如图1所示,图1所示的跨机房数据同步***100中包括第一机房110以及第二机房120。第一机房110与第二机房120通过网络130进行数据交互。在第一机房110中部署有服务器111以及第一机房110中的消息队列装置112。在第二机房120中部署有数据迁移设备121、消息队列装置122以及服务器123。其中,需要说明的是,如图2所示,消息队列装置112以及消息队列装置122在数据同步过程中均可以包括多个消息队列,而在同步过程中,消息队列中包括有数据包。消息队列装置112以及消息队列装置122中消息队列可以数量相同,且一一对应,消息队列装置112的消息队列中的数据包由数据迁移设备等价迁移到消息队列装置122的消息队列中。
其中,消息队列是一种应用程序对应用程序间传输消息的通道。应用程序通过写和检索出入队列的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。常见消息队列有rabbitmq,rocketmq,kafka等。
请再结合图2所示,在第一机房110中,服务器111中运行有SDK(SoftwareDevelopment Kit)组件,该SDK组件可以订阅数据生产方所产生的业务数据,将该业务数据写入到第一机房110中的消息队列装置112。在第二机房120中,数据迁移设备121可以将第一机房110中的消息队列装置112的数据迁移到消息队列装置122,而服务器123可以从消息队列装置122中读取数据进行处理。业务方通过接入数据同步所提供的SDK,将数据送入SDK即可完成将数据迁移至目标机房的消息队列装置。若业务方需要同步mysql、redis数据,只需要提供对应mysql、redis数据源所在地址即可,成型的业务程序已经提供,可以直接使用。其中,作为一种方式,在服务器123中运行有一个管理节点以及多个处理节点,例如,图2中的mater node为管理节点,receive node为处理节点。而ETCD负责选举管理节点作为处理节点以及协调多个处理节点处理消息队列中的数据。
下面再以从第一机房110同步数据到第二机房120为例说明下同步过程中的数据传输流程。在这种情况下,第一机房110则为业务数据发送方的源机房,第二机房120则为业务数据接收方的目标机房。第一机房110中服务器111运行的SDK组件,将接收到的业务数据封装为数据包,并以异步线程的方式将数据包写入到消息队列装置112中的消息队列中。而目标机房的数据迁移设备121预先订阅有消息队列装置112中的数据,当数据迁移设备121检测到消息队列装置112中的消息队列有数据包写入时,则将该消息队列中的数据包迁移到第二机房120的消息队列装置122中的消息队列中。则第二机房120的服务器123再从消息队列装置122中的消息队列中读取待处理的目标数据包进行处理,从而完成数据从第一机房110到第二机房120的同步。其中,对数据包进行处理包括对数据包的合法性进行校验以及将数据包所携带的信息内容写入到服务器123本地。
需要说明的是,消息队列装置112可以由一台物理设备,例如一台服务器来承载,也可以有多台物理设备来承载,例如,多台服务器来承载。对于消息队列装置122也是如此。再者,当数据迁移设备121由一台服务器来实现时,且消息队列装置122也由一个物理设备来承载时,可以将消息队列装置122部署在数据迁移设备121中,即由一台服务器来实现数据迁移设备121和消息队列装置122的功能。
下面将结合附图具体描述本申请的实施例。
请参阅图3,本申请提供的一种数据发送方法,应用于跨机房数据同步***,本申请实施例主要应用于该***中的第一机房中。具体的,如上所述,所述跨机房数据同步***包括消息队列装置以及服务器;所述消息队列装置包括多个消息队列,所述服务器用于将待发送数据处理后放入到所述多个消息队列中的至少一个消息队列中,所述多个消息队列为用于数据发送的先进先出队列;所述方法包括:
步骤S110:所述服务器接收多个待发送数据,其中每个待发送数据中包括一个有序标记。
服务器接收待发送数据,在每个待发送数据中,包括该待发送数据对应的有序标记,不同的待发送数据之间可以具有相同的有序标记,也可以具有不同的有序标记。
步骤S120:根据待发送数据中的有序标记,将所述多个待发送数据分割为一个或多个数据包,其中具有相同有序标记的待发送数据分割到同一个数据包,具有不同有序标记的待发送数据分割到不同数据包。
将多个待发送数据进行分割,以获得相互之间可以并行发送的数据包。具体的,根据待发送数据中的有序标记对多个待发送数据进行分割,具有相同有序标记的待发送数据分割到同一个数据包中,具有不同有序标记的待发送数据分割到不同的数据包中。若多个待发送数据对应的多个有序标记均相同时,则分割后获得一个数据包。若多个待发送数据对应的多个有序标记中有不同的有序标记,则分割后获得的数据包的数量大于一个,具体获得的数据包的数量等于有序标记的不同数,例如,多个待发送数据中,存在的有序标记包括A、B、C三种不同,则分割后获得的数据包为3个,其中一个数据包中的数据为有序标记为A的待发送数据,另一个数据包中的数据为有序标记为B的待发送数据,再另一个数据包中的数据为有序标记为C的待发送数据。
步骤S130:将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,其中,同一个数据包中的待发送数据按照接收的先后顺序放入同一个消息队列。
将数据包放入消息队列装置的消息队列中。其中,若分割获得的数据包为一个数据包,则该一个数据包放入多个消息队列中的一个消息队列。若待发送数据分割为多个数据包,则向多于一个的消息队列分别放入一个或多个数据包,也就是说,将多个数据包分别放入消息队列中,放入有数据包的消息队列的不止一个。
本申请提供的一种数据发送方法,服务器根据接收到的待发送数据中的有序标记,将多个待发送数据分割,具有相同有序标记的待发送数据分割到同一个数据包,具有不同有序标记的待发送数据分割到不同数据包,因此,根据有序标记的不同数,得到对应数量的数据包。将获得的数据包放入多个消息队列中的至少一个,当数据包的数量大于一个,放入数据包的消息队列的数量不止一个,则将数据包中的数据进行发送的消息队列不止一个,实现消息的多线程并行发送,提供发送效率。
请参阅图4,本申请实施例提供的一种数据发送方法,应用于跨机房数据同步***,所述跨机房数据同步***包括消息队列装置以及服务器;所述消息队列装置包括多个消息队列,所述服务器用于将待发送数据处理后放入到所述多个消息队列中的至少一个消息队列中,所述多个消息队列为用于数据发送的先进先出队列;所述方法包括:
步骤S210:所述服务器接收多个待发送数据,其中每个待发送数据中包括一个有序标记。
服务器接收到的待发送数据可以是服务器订阅的生产方所产生的业务数据,可以一条链路到达服务器,到达服务器的该一条链路的待发送数据有序,也就是说,在该一条链路上的待发送数据,到达服务器具有不同的先后顺序。
到达服务器的所有数据中,部分数据之间需要有序发送,即有序同步到目标机房,部分数据之间的同步顺序不限制。其中,每个待发送数据具有有序标记,具有相同有序标记的待发送数据之间,为需要有序同步的数据。
该有序标记可以在待发送数据的数据结构中的某一字段,如,该有序标记可以是路由字段(routingKey)。具体的,可以是,业务方产生设置有路由字段的业务数据,例如,当前为支付业务,根据同步数据的特点,可以将订单号作为路由字段,同一个订单号的数据因为拥有相同的路由字段,就会实现同订单号的有序性。若不设置路由字段,默认按照表做路由字段,即同一个表的数据会有同一个路由字段,不同的表具有不同的路由字段。
步骤S220:分别获取所述多个待发送数据中有序标记相同的待发送数据。
步骤S230:将具有相同有序标记的待发送数据按接收的先后顺序排列后作为一个数据包,获得一个或多个数据包。
将接收到的待发送数据根据有序标记分割为一个或多个数据包。首先,可以从接收到的多个待发送数据中分别获取具有相同有序标记的数据,例如,在多个待发送数据中,对应的有序标记包括A、B、C,则分别获取有序标记为A的待发送数据,有序标记为B的待发送数据,有序标记为C的待发送数据。
具体获取方式可以是,从接收到有序的一条链路的待发送数据中,直接获取各个有序标记对应的待发送数据。也可以是,将有序的一条链路的待发送数据打散,再从打散的待发送数据中分别获取有序标记相同的待发送数据。
其次,可以是将获取的具有同一个有序标记的待发送数据按接收的先后顺序排列,并进行封装。其中,同一个有序标记对应的待发送数据封装为一个数据包,并且可以给封装好的数据包加上有序标记,该有序标记为该数据包对应的有序标记。例如,有序标记为路由字段,设置数据中的订单号作为路由字段,在将数据打散重组时,会将数据中含有相同订单号的数据按照前后顺序排列,封装为该订单号对应的数据包。
步骤S240:将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,其中,同一个数据包中的待发送数据按照接收的先后顺序放入同一个消息队列。
将获得的数据包放入消息队列装置中的消息队列。数据包放入消息队列时,其中的待发送数据以数据包的封装顺序放入,即按照服务器接收待发送数据时的各个待发送数据之间的先后顺序放入同一个消息队列。
若获得的数据包的数量大于一,可以向多于一个的消息队列中放入数据包,以通过多个消息队列实现多链路数据同步。具体的,若数据包的数量小于或等于消息队列的数量,可以将各个数据包分别放入不同的消息队列,若数据包的数量大于消息队列的数量,可以使放入各个消息队列的数据包的数量尽量均衡,以使消息队列均衡发送数据包,提高同步效率。
具体的,可以是,多个消息队列中分别放入的数据包的数量差不超过一,即任意两个消息队列中放入数据包的数量差不超过一个,使数据更均衡散列到各个消息队列。
例如,可以通过分片算法queueName=crc16(routingKey)%256将数据包放入消息队列。其中,消息队列可以根据数量进行编号,如若有256个消息队列,则分别编号为0至255,queueName表示消息队列的编号。有序标记以序号进行表示,如1、2、3等等以此类推,routingkey表示数据包对应的有序标记。则根据数据包的有序标记对消息队列数量取余后得到余值,以与该余值相等的编号对应的消息队列作为该数据包需要放入的消息队列。如有序标记为257对应的数据包,对消息队列数量256取余后得到的值为1,则将该数据包放入编号为1的消息队列。路由字段可实现动态变化,从而实现在同步过程中路由的动态切换,更方便业务的业务场景变化。
本申请实施例提供的数据发送方法,服务器将接收到的待发送数据根据有序标记封装成对应的有序标记不同的数据包,每个数据包中的待发送数据具有有序性。并且,将获得的数据包放入消息队列装置中的消息队列。当获得的数据包的数量为多个,则将数据包均衡放入各个消息队列,通过多个消息队列对待发送数据进行发送,在数据迁移设备将第一机房消息队列装置中消息队列的数据迁移到第二机房消息队列装置的消息队列中时,将消息队列中的待发送数据等价迁移,保证了同一有序标记的数据之间的有序性,且提高消息同步的效率。并且,消息队列装置中,若消息队列的数量发送变化,每个消息队列中放入的数据包数量对应变化,实现动态扩容缩容。
如图5所示,本申请实施例提供了一种数据发送装置300,运行于跨机房同步***中的服务器,所述跨机房数据同步***包括消息队列装置以及服务器;所述消息队列装置包括多个消息队列,所述服务器用于将待发送数据处理后放入到所述多个消息队列中的至少一个消息队列中,所述多个消息队列为用于数据发送的先进先出队列。其中,该服务器以及消息队列装置可以是跨机房同步***的第一机房中的服务器以及消息队列装置。具体的,该数据发送装置300可以包括:
数据接收模块310,用于接收多个待发送数据,其中每个待发送数据中包括一个有序标记;数据分割模块320,用于根据待发送数据中的有序标记,将所述多个待发送数据分割为一个或多个数据包,其中具有相同有序标记的待发送数据分割到同一个数据包,具有不同有序标记的待发送数据分割到不同数据包;入队模块330,用于将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,其中,同一个数据包中的待发送数据按照接收的先后顺序放入同一个消息队列。
其中,有序标记可以是路由字段。数据分割模块320可以用于将具有相同有序标记的待发送数据按接收的先后顺序排列后作为一个数据包。
若待发送数据分割为多个数据包,所述入队模块330用于将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列包括:向多于一个的消息队列分别放入一个或多个数据包。
作为一种实施方式,入队模块330向多个消息队列中分别放入的数据包的数量差不超过一。
请参阅图6,基于上述的数据发送方法、装置,本申请还提供一种服务器140,该服务器140可以作为图1中所示的***的服务器111或者服务器123,也可以为承载消息队列装置122或者消息队列装置112的物理设备,还可以作为图1中的数据迁移设备121。
需要说明的是,当消息队列装置112或者消息队列装置122均设立在一个设备上时,消息队列装置112运行在一个服务器140中,消息队列装置122也是运行在一个服务器140中。而当消息队列装置112或者消息队列装置122是分布在多个物理设备时,则消息队列装置112是分布在多个服务器140中,消息队列装置122也是分布在多个服务器140中。
该服务器140包括一个或多个(图中仅示出一个)处理器222、存储器224、网络模块228以及外设接口230。
本领域普通技术人员可以理解,相对于所述处理器222来说,所有其他的组件均属于外设,所述处理器222与这些外设之间通过多个外设接口230相耦合。所述外设接口230可基于以下标准实现:通用异步接收/发送装置(Universal Asynchronous Receiver/Transmitter,UART)、通用输入/输出(General Purpose Input Output,GPIO)、串行外设接口(Serial Peripheral Interface,SPI)、内部集成电路(Inter-Integrated Circuit,I2C),但不并限于上述标准。在一些实例中,所述外设接口230可仅包括总线。此外,这些控制器还可以从所述外设接口230中脱离出来,而集成于所述处理器222内或者相应的外设内。
所述存储器224可用于存储软件程序以及模块,所述处理器222通过运行存储在所述存储器224内的软件程序以及模块,从而执行各种功能应用以及数据处理。所述存储器224可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,所述存储器224可进一步包括相对于所述处理器222远程设置的存储器。此外,存储器224还可以存储一些待处理的数据。例如,当消息队列装置112或者消息队列装置122是由服务器140来承载时,存储器224可以存储消息队列中的数据。
所述网络模块228用于接收以及发送网络数据,以实现和其他设备之间通过网络进行数据交互。
外设接口230用于服务器140与外部设备通过有线的方式进行通信。该外设接口可以是USB接口或者RS232接口等。
上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(服务器),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。例如,该程序在执行时,执行的内容为前述内容中步骤S110到步骤S130的内容。此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据发送方法,其特征在于,应用于跨机房数据同步***,所述跨机房数据同步***包括消息队列装置以及服务器;所述消息队列装置包括多个消息队列,所述服务器用于将待发送数据处理后放入到所述多个消息队列中的至少一个消息队列中,所述多个消息队列为用于数据发送的先进先出队列;所述方法包括:
所述服务器接收多个待发送数据,其中每个待发送数据中包括一个有序标记;
根据待发送数据中的有序标记,将所述多个待发送数据分割为一个或多个数据包,其中具有相同有序标记的待发送数据分割到同一个数据包,具有不同有序标记的待发送数据分割到不同数据包;
将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,其中,同一个数据包中的待发送数据按照接收的先后顺序放入同一个消息队列。
2.根据权利要求1所述的方法,其特征在于,根据待发送数据对应的有序标记,将所述多个待发送数据分割为一个或多个数据包包括:
将具有相同有序标记的待发送数据按接收的先后顺序排列后作为一个数据包。
3.根据权利要求1所述的方法,其特征在于,若待发送数据分割为多个数据包,所述将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列包括:向多于一个的消息队列分别放入一个或多个数据包。
4.根据权利要求3所述的方法,其特征在于,所述将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列的步骤中,所述多个消息队列中分别放入的数据包的数量差不超过一。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述有序标记为路由字段。
6.一种数据发送装置,其特征在于,运行于跨机房同步***中的服务器,所述跨机房数据同步***包括消息队列装置以及服务器;所述消息队列装置包括多个消息队列,所述服务器用于将待发送数据处理后放入到所述多个消息队列中的至少一个消息队列中,所述多个消息队列为用于数据发送的先进先出队列;所述数据发送装置包括:
数据接收模块,用于接收多个待发送数据,其中每个待发送数据中包括一个有序标记;
数据分割模块,用于根据待发送数据中的有序标记,将所述多个待发送数据分割为一个或多个数据包,其中具有相同有序标记的待发送数据分割到同一个数据包,具有不同有序标记的待发送数据分割到不同数据包;
入队模块,用于将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列,其中,同一个数据包中的待发送数据按照接收的先后顺序放入同一个消息队列。
7.根据权利要求6所述的装置,其特征在于,数据分割模块用于将具有相同有序标记的待发送数据按接收的先后顺序排列后作为一个数据包。
8.根据权利要求6所述的装置,其特征在于,若待发送数据分割为多个数据包,所述入队模块用于将所述一个或多个数据包放入所述多个消息队列中的至少一个消息队列包括:向多于一个的消息队列分别放入一个或多个数据包。
9.一种服务器,其特征在于,包括一个或多个处理器以及存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行权利要求1-5任一所述的方法。
10.一种具有处理器可执行的程序代码的计算机可读存储介质,其特征在于,所述程序代码使所述处理器执行权利要求1-5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810069141.7A CN108347477B (zh) | 2018-01-24 | 2018-01-24 | 数据发送方法、装置以及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810069141.7A CN108347477B (zh) | 2018-01-24 | 2018-01-24 | 数据发送方法、装置以及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108347477A true CN108347477A (zh) | 2018-07-31 |
CN108347477B CN108347477B (zh) | 2020-04-21 |
Family
ID=62960644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810069141.7A Active CN108347477B (zh) | 2018-01-24 | 2018-01-24 | 数据发送方法、装置以及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108347477B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109309729A (zh) * | 2018-10-29 | 2019-02-05 | 杭州安恒信息技术股份有限公司 | 一种大流量下更快的传输数据的方法和装置 |
CN110636016A (zh) * | 2019-08-08 | 2019-12-31 | 西安万像电子科技有限公司 | 数据传输方法及*** |
CN110968433A (zh) * | 2018-09-29 | 2020-04-07 | 北京京东尚科信息技术有限公司 | 信息处理方法、***和电子设备 |
CN111026813A (zh) * | 2019-12-18 | 2020-04-17 | 紫光云(南京)数字技术有限公司 | 一种基于MySQL的高可用准实时数据同步方法 |
CN111475315A (zh) * | 2020-04-09 | 2020-07-31 | 广州华多网络科技有限公司 | 服务器及订阅通知推送控制、执行方法 |
CN112052104A (zh) * | 2020-09-01 | 2020-12-08 | 掌阅科技股份有限公司 | 基于多机房实现的消息队列的管理方法及电子设备 |
CN112068972A (zh) * | 2020-09-01 | 2020-12-11 | 掌阅科技股份有限公司 | 基于多机房实现的消息队列的消费方法及电子设备 |
CN112468407A (zh) * | 2020-12-15 | 2021-03-09 | 东莞中国科学院云计算产业技术创新与育成中心 | 数据分包传输方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139732A (zh) * | 2011-11-24 | 2013-06-05 | 方正国际软件有限公司 | 一种改进的短信发送方法及*** |
WO2016010594A1 (en) * | 2014-07-18 | 2016-01-21 | Jive Communications, Inc. | Datacenter event stream processing in a network-based communication system |
CN105471630A (zh) * | 2015-11-18 | 2016-04-06 | 武汉日电光通信工业有限公司 | 大容量分组传送***下的北向***消息分发***及方法 |
CN106204189A (zh) * | 2016-06-24 | 2016-12-07 | 武汉合创源科技有限公司 | 一种订单处理方法及*** |
CN107241281A (zh) * | 2017-05-27 | 2017-10-10 | 上海东土远景工业科技有限公司 | 一种数据处理方法及其装置 |
CN107295036A (zh) * | 2016-03-31 | 2017-10-24 | 华为技术有限公司 | 一种数据发送方法及数据合并设备 |
-
2018
- 2018-01-24 CN CN201810069141.7A patent/CN108347477B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139732A (zh) * | 2011-11-24 | 2013-06-05 | 方正国际软件有限公司 | 一种改进的短信发送方法及*** |
WO2016010594A1 (en) * | 2014-07-18 | 2016-01-21 | Jive Communications, Inc. | Datacenter event stream processing in a network-based communication system |
CN105471630A (zh) * | 2015-11-18 | 2016-04-06 | 武汉日电光通信工业有限公司 | 大容量分组传送***下的北向***消息分发***及方法 |
CN107295036A (zh) * | 2016-03-31 | 2017-10-24 | 华为技术有限公司 | 一种数据发送方法及数据合并设备 |
CN106204189A (zh) * | 2016-06-24 | 2016-12-07 | 武汉合创源科技有限公司 | 一种订单处理方法及*** |
CN107241281A (zh) * | 2017-05-27 | 2017-10-10 | 上海东土远景工业科技有限公司 | 一种数据处理方法及其装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968433A (zh) * | 2018-09-29 | 2020-04-07 | 北京京东尚科信息技术有限公司 | 信息处理方法、***和电子设备 |
CN109309729A (zh) * | 2018-10-29 | 2019-02-05 | 杭州安恒信息技术股份有限公司 | 一种大流量下更快的传输数据的方法和装置 |
CN110636016A (zh) * | 2019-08-08 | 2019-12-31 | 西安万像电子科技有限公司 | 数据传输方法及*** |
CN110636016B (zh) * | 2019-08-08 | 2023-09-29 | 西安万像电子科技有限公司 | 数据传输方法及*** |
CN111026813A (zh) * | 2019-12-18 | 2020-04-17 | 紫光云(南京)数字技术有限公司 | 一种基于MySQL的高可用准实时数据同步方法 |
CN111475315A (zh) * | 2020-04-09 | 2020-07-31 | 广州华多网络科技有限公司 | 服务器及订阅通知推送控制、执行方法 |
CN111475315B (zh) * | 2020-04-09 | 2024-04-16 | 广州方硅信息技术有限公司 | 服务器及订阅通知推送控制、执行方法 |
CN112052104A (zh) * | 2020-09-01 | 2020-12-08 | 掌阅科技股份有限公司 | 基于多机房实现的消息队列的管理方法及电子设备 |
CN112068972A (zh) * | 2020-09-01 | 2020-12-11 | 掌阅科技股份有限公司 | 基于多机房实现的消息队列的消费方法及电子设备 |
CN112468407A (zh) * | 2020-12-15 | 2021-03-09 | 东莞中国科学院云计算产业技术创新与育成中心 | 数据分包传输方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108347477B (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108347477A (zh) | 数据发送方法、装置以及服务器 | |
CN108256002B (zh) | 跨机房数据同步方法、装置、***以及服务器 | |
US9389903B2 (en) | Method, system and apparatus for creating virtual machine | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
WO2019085816A1 (zh) | 业务数据传输方法及装置 | |
CN110019125B (zh) | 数据库管理的方法和装置 | |
CN108347476A (zh) | 跨机房数据同步方法、装置以及服务器 | |
CN105979007A (zh) | 加速资源处理方法、装置及网络功能虚拟化*** | |
CN105302497A (zh) | 一种缓存管理方法与*** | |
CN105183585B (zh) | 一种数据备份方法及装置 | |
KR101903058B1 (ko) | 셀 스케쥴링 방법 및 장치 | |
CN109327428A (zh) | 一种报文传输方法、装置、网络侧设备及存储介质 | |
CN109565447A (zh) | 网络功能处理方法及相关设备 | |
CN112822060A (zh) | 主机网络的构建方法、装置、***、介质和主机 | |
CN104506330A (zh) | 一种消息同步方法和*** | |
CN105743816A (zh) | 一种链路聚合方法及装置 | |
CN105190530A (zh) | 传输硬件渲染的图形数据 | |
CN108093077B (zh) | 异常处理方法、装置以及服务器 | |
CN107920136B (zh) | 数据同步控制方法、装置以及服务器 | |
CN103282888A (zh) | 数据处理方法、图像处理器gpu及第一节点设备 | |
US11405766B2 (en) | Connecting computer processing systems and transmitting data | |
US11357020B2 (en) | Connecting computer processing systems and transmitting data | |
US11290575B2 (en) | Connecting computer processing systems and transmitting data | |
CN107395765B (zh) | 一种分布式文件***、网络通信方法、平台及其创建方法 | |
CN106330492A (zh) | 一种配置用户设备转发表的方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., Ltd. Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |