CN108282529A - 发布和订阅数据的系统、方法和装置 - Google Patents
发布和订阅数据的系统、方法和装置 Download PDFInfo
- Publication number
- CN108282529A CN108282529A CN201810065705.XA CN201810065705A CN108282529A CN 108282529 A CN108282529 A CN 108282529A CN 201810065705 A CN201810065705 A CN 201810065705A CN 108282529 A CN108282529 A CN 108282529A
- Authority
- CN
- China
- Prior art keywords
- data
- publisher server
- location information
- released
- 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/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了发布和订阅数据的系统、方法和装置。该系统的一具体实施方式包括:发布服务器将待发布数据存储到本地,以及将待发布数据的数据标识和存储位置信息发送给控制服务器。控制服务器根据发布服务器标识、所接收到的数据标识和存储位置信息更新对应关系表。订阅服务器向控制服务器发送订阅请求。控制服务器根据对应关系表确定与订阅请求对应的数据所在位置的位置信息,将所确定的位置信息发送给订阅服务器。订阅服务器向位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求。发布服务器获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。该实施方式减少了发布和订阅数据的系统中的资源占用量。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及发布和订阅系统、方法和装置。
背景技术
由于发布和订阅数据的系统中对于数据实时传输的需要,目前大都采用占用大量硬盘和内存资源的实时传输方式来实现发布和订阅数据的系统的数据传输。
发明内容
本申请实施例提出了发布和订阅数据的系统、方法和装置。
第一方面,本申请实施例提供了一种发布和订阅数据的系统,该系统包括:发布服务器、订阅服务器和控制服务器,其中:发布服务器用于:将待发布数据存储到发布服务器本地;将待发布数据的数据标识和存储位置信息发送到控制服务器;以及响应于接收到订阅服务器发送的数据获取请求,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器;控制服务器用于:响应于接收到发布服务器发送的数据标识和存储位置信息,根据发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表,其中,数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系;响应于接收到订阅服务器发送的订阅请求,根据数据位置对应关系表确定与订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给订阅服务器,其中,位置信息包括与订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息;订阅服务器用于:向控制服务器发送订阅请求;以及响应于接收到控制服务器发送的位置信息,向位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求,其中,数据获取请求包括位置信息中的存储位置信息。
在一些实施例中,发布服务器用于将待发布数据存储到发布服务器本地,包括:发布服务器用于:确定待发布数据是发布服务器内存中的数据还是磁盘中的数据;响应于确定待发布数据是发布服务器内存中的数据,将待发布数据存储到发布服务器的本地磁盘中;响应于确定待发布数据是发布服务器磁盘中的数据,将待发布数据从发布服务器的磁盘中加载到发布服务器的内存中。
在一些实施例中,发布服务器用于响应于确定待发布数据是发布服务器内存中的数据,将待发布数据存储到发布服务器的本地磁盘中,包括:将待发布数据划分成至少一条记录;将至少一条记录存储到发布服务器的本地磁盘中的至少一个文件中;用至少一条记录中每条记录的记录标识、所在文件的文件存储路径和该条记录在所在文件中的具体位置,生成索引文件;将所生成的索引文件存储到发布服务器的本地磁盘中。
在一些实施例中,发布服务器还用于:在将待发布数据的数据标识和存储位置信息发送到控制服务器之前,将待发布数据在发布服务器的本地磁盘中的存储路径信息确定为待发布数据的存储位置信息。
在一些实施例中,位置信息还包括:与订阅请求对应的数据的数据标识。
在一些实施例中,数据获取请求还包括位置信息中的数据标识;以及发布服务器用于响应于接收到订阅服务器发送的数据获取请求,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器,包括:发布服务器用于:响应于接收到订阅服务器发送的数据获取请求,在发布服务器本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据;响应于查找到匹配的数据,将所找到的数据发送给订阅服务器;响应于未找到匹配的数据,获取发布服务器本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
第二方面,本申请实施例提供了一种应用于发布和订阅数据的系统中的发布服务器的数据发布方法,该方法包括:将待发布数据存储到发布服务器本地;将待发布数据的数据标识和存储位置信息发送到控制服务器;响应于接收到订阅服务器发送的数据获取请求,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
在一些实施例中,将待发布数据存储到发布服务器本地,包括:确定待发布数据是发布服务器内存中的数据还是磁盘中的数据;响应于确定待发布数据是发布服务器内存中的数据,将待发布数据存储到发布服务器的本地磁盘中;响应于确定待发布数据是发布服务器磁盘中的数据,将待发布数据从发布服务器的磁盘中加载到发布服务器的内存中。
在一些实施例中,将待发布数据存储到发布服务器的本地磁盘中,包括:将待发布数据划分成至少一条记录;将至少一条记录存储到发布服务器的本地磁盘中的至少一个文件中;用至少一条记录中每条记录的记录标识、所在文件的文件存储路径和该条记录在所在文件中的具体位置,生成索引文件;将所生成的索引文件存储到发布服务器的本地磁盘中。
在一些实施例中,在将待发布数据的数据标识和存储位置信息发送到控制服务器之前,方法还包括:将待发布数据在发布服务器的本地磁盘中的存储路径信息确定为待发布数据的存储位置信息。
在一些实施例中,数据获取请求还包括数据标识;以及获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器,包括:在发布服务器本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据;响应于查找到匹配的数据,将所找到的数据发送给订阅服务器;响应于未找到匹配的数据,获取发布服务器本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
第三方面,本申请实施例提供了一种应用于发布和订阅数据的系统中的控制服务器的数据控制方法,该方法包括:响应于接收到发布服务器发送的数据标识和存储位置信息,根据发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表,其中,数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系;响应于接收到订阅服务器发送的订阅请求,根据数据位置对应关系表确定与订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给订阅服务器,其中,位置信息包括与订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息。
第四方面,本申请实施例提供了一种应用于发布和订阅数据的系统中的订阅服务器的数据订阅方法,该方法包括:向控制服务器发送订阅请求;响应于接收到控制服务器发送的位置信息,向位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求,其中,数据获取请求包括位置信息中的存储位置信息。
第五方面,本申请实施例提供了一种应用于发布和订阅数据的系统中的发布服务器的数据发布装置,该装置包括:存储单元,配置用于将待发布数据存储到发布服务器本地;第一发送单元,配置用于将待发布数据的数据标识和存储位置信息发送到控制服务器;获取及发送单元,配置用于响应于接收到订阅服务器发送的数据获取请求,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
在一些实施例中,存储单元包括:确定模块,配置用于确定待发布数据是发布服务器内存中的数据还是磁盘中的数据;存储模块,配置用于响应于确定待发布数据是发布服务器内存中的数据,将待发布数据存储到发布服务器的本地磁盘中;加载模块,配置用于响应于确定待发布数据是发布服务器磁盘中的数据,将待发布数据从发布服务器的磁盘中加载到发布服务器的内存中。
在一些实施例中,存储模块进一步用于:将待发布数据划分成至少一条记录;将至少一条记录存储到发布服务器的本地磁盘中的至少一个文件中;用至少一条记录中每条记录的记录标识、所在文件的文件存储路径和该条记录在所在文件中的具体位置,生成索引文件;将所生成的索引文件存储到发布服务器的本地磁盘中。
在一些实施例中,装置还包括:确定单元,配置用于将待发布数据在发布服务器的本地磁盘中的存储路径信息确定为待发布数据的存储位置信息。
在一些实施例中,数据获取请求还包括数据标识;以及获取及发送单元包括:查找模块,配置用于在发布服务器本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据;第一发送模块,配置用于响应于查找到匹配的数据,将所找到的数据发送给订阅服务器;第二发送模块,配置用于响应于未找到匹配的数据,获取发布服务器本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
第六方面,本申请实施例提供了一种应用于发布和订阅数据的系统中的控制服务器的数据控制装置,该装置包括:更新单元,配置用于响应于接收到发布服务器发送的数据标识和存储位置信息,根据发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表,其中,数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系;确定及发送单元,配置用于响应于接收到订阅服务器发送的订阅请求,根据数据位置对应关系表确定与订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给订阅服务器,其中,位置信息包括与订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息。
第七方面,本申请实施例提供了一种应用于发布和订阅数据的系统中的订阅服务器的数据订阅装置,该装置包括:第二发送单元,配置用于向控制服务器发送订阅请求;第三发送单元,配置用于响应于接收到控制服务器发送的位置信息,向位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求,其中,所述数据获取请求包括位置信息中的存储位置信息。
第八方面,本申请实施例提供了一种发布服务器,该发布服务器包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第二方面中任一实现方式描述的方法。
第九方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现如第二方面中任一实现方式描述的方法。
第十方面,本申请实施例提供了一种发布服务器,该发布服务器包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第三方面中任一实现方式描述的方法。
第十一方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现如第三方面中任一实现方式描述的方法。
第十二方面,本申请实施例提供了一种控制服务器,该控制服务器包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第四方面中任一实现方式描述的方法。
第十三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现如第四方面中任一实现方式描述的方法。
本申请实施例提供的发布和订阅数据的系统、方法和装置,通过采用“单副本”,将待发布数据仅仅存储在发布服务器本地,而不采用“多副本”的存储方式,减少了发布和订阅数据的系统中的资源占用量。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请的发布和订阅数据的系统的示例性系统架构图;
图2A是根据本申请的应用于发布和订阅数据的系统中的发布服务器的数据发布方法的一个实施例的流程图;
图2B是根据本申请的应用于发布和订阅数据的系统中的发布服务器的数据发布方法中步骤201的一个实施例的分解流程图;
图2C是根据本申请的应用于发布和订阅数据的系统中的发布服务器的数据发布方法中步骤203的一个实施例的分解流程图;
图3是根据本申请的应用于发布和订阅数据的系统中的控制服务器的数据控制方法的一个实施例的流程图;
图4是根据本申请的应用于发布和订阅数据的系统中的订阅服务器的数据订阅方法的一个实施例的流程图;
图5是根据本申请的应用于发布和订阅数据的系统中的发布服务器的数据发布装置的一个实施例的流程图;
图6是根据本申请的应用于发布和订阅数据的系统中的控制服务器的数据控制装置的一个实施例的流程图;
图7是根据本申请的应用于发布和订阅数据的系统中的订阅服务器的数据订阅装置的一个实施例的流程图;
图8是适于用来实现本申请实施例的发布服务器、控制服务器或订阅服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了根据本申请的发布和订阅数据的系统的示例性系统架构100。
如图1所示,发布和订阅数据的系统100可以包括发布服务器101、102、103,网络104,控制服务器105和订阅服务器106、107、108。网络104用以在发布服务器101、102、103、控制服务器105和订阅服务器106、107、108之间提供通信链路的介质,网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用发布服务器101、102、103通过网络104与控制服务器105交互,以接收或发送消息等。发布服务器101、102、103上可以安装有各种通讯客户端应用,例如消息发布类应用、网页浏览器等。
用户也可以使用订阅服务器106、107、108通过网络104与控制服务器105交互,以接收或发送消息等。订阅服务器106、107、108上可以安装有各种通讯客户端应用,例如消息订阅类应用、网页浏览器等。
控制服务器105可以是提供各种服务的服务器,例如对发布服务器101、102、103上安装的消息发布类应用提供支持的后台服务器,以及对订阅服务器106、107、108上安装的消息订阅类应用提供支持的后台服务器。
需要说明的是,本申请实施例所提供的应用于发布和订阅数据的系统中的发布服务器的数据发布方法一般由发布服务器101、102、103执行,相应地,应用于发布和订阅数据的系统中的发布服务器的数据发布装置一般设置于发布服务器101、102、103中。本申请实施例所提供的应用于发布和订阅数据的系统中的控制服务器的数据控制方法一般由控制服务器105执行,相应地,应用于发布和订阅数据的系统中的控制服务器的数据控制装置一般设置于控制服务器105中。本申请实施例所提供的应用于发布和订阅数据的系统中的订阅服务器的数据订阅方法一般由订阅服务器106、107、108执行,相应地,应用于发布和订阅数据的系统中的订阅服务器的数据订阅装置一般设置于订阅服务器106、107、108中。
应该理解,图1中的发布服务器、网络、控制服务器和订阅服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的发布服务器、网络、控制服务器和订阅服务器。
在本实施例中,发布服务器可以用于执行以下操作(11)-(13):
(11)、将待发布数据存储到发布服务器本地。
这里,待发布数据可以是各种类型的数据,比如,待发布数据可以是文本、视频、图像、音频、网页等等。
在发布和订阅数据的系统中的数据传输是实时传输,实时传输对时间的要求很高,而分布式系统中的“三副本”的数据传输方法并不适合。因为,实时传输需要的是数据的实时性,即使数据存储到磁盘中几个小时,但是对于订阅者来说,只有最近几秒钟的数据才是有用的,其他的数据已经过时,这时存储在磁盘几小时的数据就浪费了磁盘资源。因此,这里,并不是把待发布数据写入三副本,而仅仅存储到发布服务器本地。
需要说明的是,这里将待发布数据存储到发布服务器本地可以是存储到发布服务器本地的内存或者磁盘中。
在本实施例的一些可选的实现方式中,操作(11)可以如下进行:
首先,可以确定待发布数据是发布服务器内存中的数据还是磁盘中的数据。
作为示例,待发布数据可以是调用API(Application Programming Interface,应用程序编程接口)写入内存的数据。待发布数据也可以是存储在发布服务器本地磁盘中的数据。
其次,如果确定待发布数据是发布服务器内存中的数据,则将待发布数据存储到发布服务器的本地磁盘中。
例如,可以将待发布数据存储到发布服务器的本地磁盘中的一个文件中。
可选地,将待发布数据存储到发布服务器的本地磁盘中可以如下进行:
第一,将待发布数据划分成至少一条记录。
这里,可以采用各种方式将待发布数据划分成至少一条记录。例如,对于文本类型的待发布数据,可以按照每一个回车字符之前的文本形成一条记录。又例如,对于视频或者音频类型的待发布数据可以按照每第一预设数目的视频帧或者音频帧形成一条记录。
第二,将至少一条记录存储到发布服务器的本地磁盘中的至少一个文件中。
这里,可以采用各种方式将至少一条记录划分成至少一份,每份存储到发布服务器的本地磁盘中的一个文件中。例如,可以按照每第二预设数目条记录形成一份,对于最后一份少于第二预设数目条的记录形成一份。
第三,用至少一条记录中每条记录的记录标识、所在文件的文件存储路径和该条记录在所在文件中的具体位置,生成索引文件。
第四,将所生成的索引文件存储到发布服务器的本地磁盘中。
最后,如果待发布数据是发布服务器磁盘中的数据,将待发布数据从发布服务器的磁盘中加载到发布服务器的内存中。
基于上述可选实现方式,发布服务器还可以在执行下述(12)操作之前,将待发布数据在发布服务器的本地磁盘中的存储路径信息确定为待发布数据的存储位置信息。
(12)、将待发布数据的数据标识和存储位置信息发送到控制服务器。
在本实施例中,发布服务器可以首先为待发布数据生成数据标识。这里,待发布数据的数据标识可以是用来唯一指示待发布数据的标识,例如可以是数字和字母的组合。待发布数据的数据标识也可以是待发布数据的消息主题。
然后,发布服务器可以获取待发布数据的存储位置信息。这里,待发布数据的存储位置信息可以是待发布数据在内存中的内存地址和/或待发布数据所存储于的文件的文件名和在所存储于的文件中的位置。
最后,再将所生成的数据标识和所获取的存储位置信息发送给控制服务器。
(13)、响应于接收到订阅服务器发送的数据获取请求,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
在本实施例中,发布服务器可以在接收到订阅服务器发送的数据获取请求的情况下,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
在本实施例的一些可选的实现方式中,从订阅服务器接收到的数据获取请求还可以包括数据标识。
在本实施例的一些可选的实现方式中,操作(13)可以如下进行:
第一,响应于接收到订阅服务器发送的数据获取请求,在发布服务器本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据。
第二,如果查找到匹配的数据,将所找到的数据发送给订阅服务器。
第三,如果未找到匹配的数据,获取发布服务器本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
按照上述可选实现方式,如果发布服务器一直正常运行,那么可以内存中查找到与数据获取请求中的数据标识匹配的数据。如果发布服务器重启(例如,出错后重启),那么发布服务器的本地内存中没有与数据获取请求中的数据标识匹配的数据,则可以在发布服务器本地磁盘中按照所接收到的数据获取请求中的存储位置信息查找数据,从而可以实现即时发布服务器重启后依然可以实现获取到数据并发送给订阅服务器。
在本实施例中,发布服务器用于将待发布数据存储到本地,并将存储在本地的存储位置信息告知控制服务器,以及为订阅服务器提供数据。
在本实施例中,控制服务器可以用于执行以下操作(21)-(22):
(21)、响应于接收到发布服务器发送的数据标识和存储位置信息,根据发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表。
这里,数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系。
(22)、响应于接收到订阅服务器发送的订阅请求,根据数据位置对应关系表确定与订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给订阅服务器。
这里,位置信息可以包括与订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息。
在本实施例中,订阅请求可以包括订阅数据的数据标识,例如订阅数据的数据标识可以是订阅数据的主题,或者订阅数据的具体数据标识。
在本实施例的一些可选的实现方式中,上述位置信息还可以包括与订阅请求对应的数据的数据标识。
即,在本实施例中,控制服务器仅仅用于维护数据和数据来源之间的对应关系,而不再用于存储发布数据以及发送订阅数据给订阅服务器。
在本实施例中,订阅服务器可以用于:执行以下操作(31)-(32):
(31)、向控制服务器发送订阅请求。
由于控制服务器中存储的数据位置对应关系表中存储了不同的数据所在的发布服务器的发布服务器标识、数据标识和存储位置信息之间的对应关系,因此订阅服务器可以将订阅请求发送给控制服务器,这样,控制服务器可以在接收到上述订阅请求后,根据数据位置对应关系表确定与订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给订阅服务器。
(32)、响应于接收到控制服务器发送的位置信息,向位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求。
这里,订阅服务器可以在接收到控制服务器发送的位置信息后,向位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求。其中,上述数据获取请求可以包括上述位置信息中的存储位置信息。这样,发布服务器可以在接收到上述数据获取请求后,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
本申请的上述实施例提供的发布和订阅数据的系统通过将待发布数据存储到发布服务器本地,并通过控制服务器更新发布数据所在的位置信息,继而在不降低实时传输效果的同时减少了网络开销和硬盘存储资源。
继续参考图2,其示出了根据本申请的应用于发布和订阅数据的系统中的发布服务器的数据发布方法的一个实施例的流程200。该数据发布方法,包括以下步骤:
步骤201,将待发布数据存储到本地。
在本实施例中,数据发布方法运行于其上的电子设备(例如图1所示的发布服务器)可以将待发布数据存储到上述电子设备本地。
这里,待发布数据可以是各种类型的数据,比如,待发布数据可以是文本、视频、图像、音频、网页等等。
在发布和订阅数据的系统中的数据传输是实时传输,实时传输对时间的要求很高,而分布式系统中的“三副本”的数据传输方法并不适合。因为,实时传输需要的是数据的实时性,即使数据存储到磁盘中几个小时,但是对于订阅者来说,只有最近几秒钟的数据才是有用的,其他的数据已经过时,这时存储在磁盘几小时的数据就浪费了磁盘资源。因此,这里,并不是把待发布数据写入三副本,而仅仅存储到上述电子设备本地。
需要说明的是,这里将待发布数据存储到上述电子设备本地可以是存储到上述电子设备本地的内存或者磁盘中。
在本实施例的一些可选的实现方式中,步骤201可以包括如图2B所示的子步骤2011到子步骤2013:
子步骤2011,确定待发布数据是内存中的数据还是磁盘中的数据。
作为示例,待发布数据可以是调用API(Application Programming Interface,应用程序编程接口)写入内存的数据。待发布数据也可以是存储在上述电子设备本地磁盘中的数据。
如果确定待发布数据是上述电子设备内存中的数据,则转到子步骤2012,如果确定待发布数据是上述电子设备磁盘中的数据,则转到子步骤2013。
子步骤2012,将待发布数据存储到本地磁盘中。
这里,上述电子设备可以在确定待发布数据是上述电子设备内存中的数据的情况下,将待发布数据存储到上述电子设备的本地磁盘中。
例如,可以将待发布数据存储到发布服务器的本地磁盘中的一个文件中。
可选地,子步骤2012也可以如下进行:
第一,将待发布数据划分成至少一条记录。
这里,可以采用各种方式将待发布数据划分成至少一条记录。例如,对于文本类型的待发布数据,可以按照每一个回车字符之前的文本形成一条记录。又例如,对于视频或者音频类型的待发布数据可以按照每第一预设数目的视频帧或者音频帧形成一条记录。
第二,将至少一条记录存储到发布服务器的本地磁盘中的至少一个文件中。
这里,可以采用各种方式将至少一条记录划分成至少一份,每份存储到发布服务器的本地磁盘中的一个文件中。例如,可以按照每第二预设数目条记录形成一份,对于最后一份少于第二预设数目条的记录形成一份。
第三,用至少一条记录中每条记录的记录标识、所在文件的文件存储路径和该条记录在所在文件中的具体位置,生成索引文件。
第四,将所生成的索引文件存储到发布服务器的本地磁盘中。
经过子步骤2012,可以将存储在上述电子设备本地内存中的待发布数据固化到上述电子设备的本地磁盘中,从而可以在上述电子设备重启后,上述电子设备的本地内存中已经不存在上述待发布数据,但是因为已经将数据固化到上述电子设备的本地磁盘中,可以通过磁盘中存储的待发布数据实现对待发布数据的回放。
子步骤2013,将待发布数据从磁盘中加载到内存中。
这里,上述电子设备可以在确定待发布数据是上述电子设备磁盘中的数据的情况下,由于磁盘中已经将待发布数据进行固化,为此,不再需要固化另外一份数据,而只需要将待发布数据从磁盘中加载到内存中,这是为了在接收到订阅服务器发来的数据获取请求时,可以从内存中获取到数据,从而可以加快数据获取的时间。
基于上述步骤201的可选实现方式,上述电子设备还可以在执行步骤202之前,执行以下操作:将待发布数据在上述电子设备的本地磁盘中的存储路径信息确定为待发布数据的存储位置信息。
步骤202,将待发布数据的数据标识和存储位置信息发送到控制服务器。
在本实施例中,上述电子设备可以首先为待发布数据生成数据标识。这里,待发布数据的数据标识可以是用来唯一指示待发布数据的标识,例如可以是数字和字母的组合。待发布数据的数据标识也可以是待发布数据的消息主题。
然后,上述电子设备可以获取待发布数据的存储位置信息。这里,待发布数据的存储位置信息可以是待发布数据在内存中的内存地址和/或待发布数据所存储于的文件的文件名和在所存储于的文件中的位置。
最后,再将所生成的数据标识和所获取的存储位置信息发送给控制服务器。
步骤203,响应于接收到订阅服务器发送的数据获取请求,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
在本实施例中,上述电子设备可以在接收到订阅服务器发送的数据获取请求的情况下,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
在本实施例的一些可选的实现方式中,从订阅服务器接收到的数据获取请求还可以包括数据标识。
在本实施例的一些可选的实现方式中,步骤203可以包括如图2C所示的子步骤2031到子步骤2033:
子步骤2031,响应于接收到订阅服务器发送的数据获取请求,在本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据。
这里,上述电子设备可以在接收到订阅服务器发送的数据获取请求的情况下,在上述电子设备的本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据。如果查找到匹配的数据,则转到子步骤2032,如果未找到匹配的数据,则转到子步骤2033。
子步骤2032,将所找到的数据发送给订阅服务器。
这里,上述电子设备可以查找到匹配的数据的情况下,将所找到的数据发送给订阅服务器。
子步骤2033,获取本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
这里,上述电子设备可以未找到匹配的数据的情况下,表明上述电子设备的本地内存中不存在匹配的数据,那么就可以获取上述电子设备本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
按照上述可选实现方式,如果上述电子设备一直正常运行,那么可以内存中查找到与数据获取请求中的数据标识匹配的数据。如果上述电子设备重启(例如,出错后重启),那么发布服务器的本地内存中没有与数据获取请求中的数据标识匹配的数据,则可以在上述电子设备本地磁盘中按照所接收到的数据获取请求中的存储位置信息查找数据,从而可以实现即时发布服务器重启后依然可以实现获取到数据并发送给订阅服务器。
本申请的上述实施例提供的方法通过将待发布数据存储到本地,并将存储在本地的存储位置信息告知控制服务器,以及为订阅服务器提供数据,从而不再采用三副本的方式存储待发布数据,减少了磁盘存储空间的要求,以及减少了网络带宽的开销。
继续参考图3,其示出了根据本申请的应应用于发布和订阅数据的系统中的控制服务器的数据控制方法的一个实施例的流程300。该数据控制方法,包括以下步骤:
步骤301,响应于接收到发布服务器发送的数据标识和存储位置信息,根据发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表。
在本实施例中,数据控制方法运行于其上的电子设备(例如图1所示的控制服务器)可以响应于接收到发布服务器发送的数据标识和存储位置信息,根据发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表。其中,上述数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系。
步骤302,响应于接收到订阅服务器发送的订阅请求,根据数据位置对应关系表确定与订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给订阅服务器。
这里,位置信息可以包括与订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息。
在本实施例中,订阅请求可以包括订阅数据的数据标识,例如订阅数据的数据标识可以是订阅数据的主题,或者订阅数据的具体数据标识。
在本实施例的一些可选的实现方式中,上述位置信息还可以包括与订阅请求对应的数据的数据标识。
本申请的上述实施例提供的方法通过维护数据和数据来源之间的对应关系,而不是存储发布数据以及发送订阅数据给订阅服务器,从而减少了控制服务器的磁盘存储空间的需求,并减少了网络带宽的需求。
进一步参考图4,其示出了根据本申请的应应用于发布和订阅数据的系统中的订阅服务器的数据订阅方法的一个实施例的流程400。该数据控订阅方法,包括以下步骤:
步骤401,向控制服务器发送订阅请求。
在本实施例中,数据订阅方法运行于其上的电子设备(例如图1所示的订阅服务器)可以向控制服务器发送订阅请求。
由于控制服务器中存储的数据位置对应关系表中存储了不同的数据所在的发布服务器的发布服务器标识、数据标识和存储位置信息之间的对应关系,因此上述电子设备可以将订阅请求发送给控制服务器,这样,控制服务器可以在接收到上述订阅请求后,根据数据位置对应关系表确定与订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给上述电子设备。
步骤402,响应于接收到控制服务器发送的位置信息,向位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求。
这里,上述电子设备可以在接收到控制服务器发送的位置信息后,向位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求。其中,上述数据获取请求可以包括上述位置信息中的存储位置信息。这样,发布服务器可以在接收到上述数据获取请求后,获取数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给订阅服务器。
本申请的上述实施例提供的方法通过向控制服务器发送订阅请求,并从控制服务器接收位置信息,以及向发布服务器发送数据获取请求,而不是从控制服务器获取订阅的数据,从而直接从发布数据的源头获取数据,减少了磁盘存储空间的要求和网络带宽的开销。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种应用于发布和订阅数据的系统中的发布服务器的数据发布装置的一个实施例,该装置实施例与图2A所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的数据发布装置500包括:存储单元501、第一发送单元502和获取及发送单元503。其中,存储单元501,配置用于将待发布数据存储到所述发布服务器本地;第一发送单元502,配置用于将所述待发布数据的数据标识和存储位置信息发送到控制服务器;获取及发送单元503,配置用于响应于接收到订阅服务器发送的数据获取请求,获取所述数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器。
在本实施例中,数据发布装置500的存储单元501、第一发送单元502和获取及发送单元503的具体处理及其所带来的技术效果可分别参考图2A对应实施例中步骤201、步骤202和步骤203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,所述存储单元501可以包括:确定模块5011,配置用于确定所述待发布数据是所述发布服务器内存中的数据还是磁盘中的数据;存储模块5012,配置用于响应于确定所述待发布数据是所述发布服务器内存中的数据,将所述待发布数据存储到所述发布服务器的本地磁盘中;加载模块5013,配置用于响应于确定所述待发布数据是所述发布服务器磁盘中的数据,将所述待发布数据从所述发布服务器的磁盘中加载到所述发布服务器的内存中。
在本实施例的一些可选的实现方式中,所述存储模块5012可以进一步用于:将所述待发布数据划分成至少一条记录;将所述至少一条记录存储到所述发布服务器的本地磁盘中的至少一个文件中;用所述至少一条记录中每条记录的记录标识、所在文件的文件存储路径和该条记录在所在文件中的具体位置,生成索引文件;将所生成的索引文件存储到所述发布服务器的本地磁盘中。
在本实施例的一些可选的实现方式中,所述装置500还可以包括:确定单元501’,配置用于将所述待发布数据在所述发布服务器的本地磁盘中的存储路径信息确定为所述待发布数据的存储位置信息。
在本实施例的一些可选的实现方式中,所述数据获取请求还可以包括数据标识;以及所述获取及发送单元503可以包括:查找模块5031,配置用于在所述发布服务器本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据;第一发送模块5032,配置用于响应于查找到匹配的数据,将所找到的数据发送给所述订阅服务器;第二发送模块5033,配置用于响应于未找到匹配的数据,获取所述发布服务器本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器。
继续参考图6,作为对上述各图所示方法的实现,本申请提供了一种应用于发布和订阅数据的系统中的控制服务器的数据控制装置的一个实施例,该装置实施例与图3所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的数据控制装置600包括:更新单元601和确定及发送单元602。其中,更新单元601,配置用于响应于接收到发布服务器发送的数据标识和存储位置信息,根据所述发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表,其中,所述数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系;确定及发送单元602,配置用于响应于接收到订阅服务器发送的订阅请求,根据所述数据位置对应关系表确定与所述订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给所述订阅服务器,其中,所述位置信息包括与所述订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息。
在本实施例中,数据控制装置600的更新单元601和确定及发送单元602的具体处理及其所带来的技术效果可分别参考图3对应实施例中步骤301和步骤302的相关说明,在此不再赘述。
进一步参考图7,作为对上述各图所示方法的实现,本申请提供了一种应用于发布和订阅数据的系统中的订阅服务器的数据订阅装置的一个实施例,该装置实施例与图4所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例的数据订阅装置700包括:第二发送单元701和第三发送单元702。其中,第二发送单元701,配置用于向控制服务器发送订阅请求;第三发送单元702,配置用于响应于接收到所述控制服务器发送的位置信息,向所述位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求,其中,所述数据获取请求包括所述位置信息中的存储位置信息。
在本实施例中,数据订阅装置700的第二发送单元701和第三发送单元702的具体处理及其所带来的技术效果可分别参考图4对应实施例中步骤401和步骤402的相关说明,在此不再赘述。
下面参考图8,其示出了适于用来实现本申请实施例的发布服务器、控制服务器或订阅服务器的计算机系统800的结构示意图。图8示出的发布服务器、控制服务器或订阅服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU,Central Processing Unit)801,其可以根据存储在只读存储器(ROM,Read Only Memory)802中的程序或者从存储部分808加载到随机访问存储器(RAM,Random Access Memory)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM802以及RAM 803通过总线804彼此相连。输入/输出(I/O,Input/Output)接口805也连接至总线804。
以下部件连接至I/O接口805:包括硬盘等的存储部分806;以及包括诸如LAN(局域网,Local Area Network)卡、调制解调器等的网络接口卡的通信部分807。通信部分807经由诸如因特网的网络执行通信处理。驱动器808也根据需要连接至I/O接口805。可拆卸介质809,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器808上,以便于从其上读出的计算机程序根据需要被安装入存储部分806。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分807从网络上被下载和安装,和/或从可拆卸介质809被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括存储单元、第一发送单元和获取及发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,存储单元还可以被描述为“存储待发布数据的单元”。又例如,可以描述为:一种处理器包括更新单元和确定及发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,更新单元还可以被描述为“更新数据位置对应关系表的单元”。还例如,可以描述为:一种处理器包括第二发送单元和第三发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第二发送单元还可以被描述为“向发布服务器发送数据获取请求的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:将待发布数据存储到所述发布服务器本地;将所述待发布数据的数据标识和存储位置信息发送到控制服务器;响应于接收到订阅服务器发送的数据获取请求,获取所述数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器。
作为又一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:响应于接收到发布服务器发送的数据标识和存储位置信息,根据所述发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表,其中,所述数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系;响应于接收到订阅服务器发送的订阅请求,根据所述数据位置对应关系表确定与所述订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给所述订阅服务器,其中,所述位置信息包括与所述订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息。
作为还一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:向控制服务器发送订阅请求;响应于接收到所述控制服务器发送的位置信息,向所述位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求,其中,所述数据获取请求包括所述位置信息中的存储位置信息。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (22)
1.一种发布和订阅数据的系统,包括:发布服务器、订阅服务器和控制服务器,其中:
所述发布服务器用于:将待发布数据存储到所述发布服务器本地;将所述待发布数据的数据标识和存储位置信息发送到所述控制服务器;以及响应于接收到所述订阅服务器发送的数据获取请求,获取所述数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器;
所述控制服务器用于:响应于接收到所述发布服务器发送的数据标识和存储位置信息,根据所述发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表,其中,所述数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系;响应于接收到所述订阅服务器发送的订阅请求,根据所述数据位置对应关系表确定与所述订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给所述订阅服务器,其中,所述位置信息包括与所述订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息;
所述订阅服务器用于:向所述控制服务器发送订阅请求;以及响应于接收到所述控制服务器发送的位置信息,向所述位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求,其中,所述数据获取请求包括所述位置信息中的存储位置信息。
2.根据权利要求1所述的系统,其中,所述发布服务器用于将待发布数据存储到所述发布服务器本地,包括:
所述发布服务器用于:确定所述待发布数据是所述发布服务器内存中的数据还是磁盘中的数据;响应于确定所述待发布数据是所述发布服务器内存中的数据,将所述待发布数据存储到所述发布服务器的本地磁盘中;响应于确定所述待发布数据是所述发布服务器磁盘中的数据,将所述待发布数据从所述发布服务器的磁盘中加载到所述发布服务器的内存中。
3.根据权利要求2所述的系统,其中,所述发布服务器用于响应于确定所述待发布数据是所述发布服务器内存中的数据,将所述待发布数据存储到所述发布服务器的本地磁盘中,包括:
将所述待发布数据划分成至少一条记录;
将所述至少一条记录存储到所述发布服务器的本地磁盘中的至少一个文件中;
用所述至少一条记录中每条记录的记录标识、所在文件的文件存储路径和该条记录在所在文件中的具体位置,生成索引文件;
将所生成的索引文件存储到所述发布服务器的本地磁盘中。
4.根据权利要求3所述的系统,其中,所述发布服务器还用于:
在将所述待发布数据的数据标识和存储位置信息发送到所述控制服务器之前,将所述待发布数据在所述发布服务器的本地磁盘中的存储路径信息确定为所述待发布数据的存储位置信息。
5.根据权利要求4所述的系统,其中,所述位置信息还包括:与所述订阅请求对应的数据的数据标识。
6.根据权利要求5所述的系统,其中,所述数据获取请求还包括所述位置信息中的数据标识;以及
所述发布服务器用于响应于接收到所述订阅服务器发送的数据获取请求,获取所述数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器,包括:
所述发布服务器用于:
响应于接收到所述订阅服务器发送的数据获取请求,在所述发布服务器本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据;响应于查找到匹配的数据,将所找到的数据发送给所述订阅服务器;响应于未找到匹配的数据,获取所述发布服务器本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器。
7.一种应用于发布和订阅数据的系统中的发布服务器的数据发布方法,包括:
将待发布数据存储到所述发布服务器本地;
将所述待发布数据的数据标识和存储位置信息发送到控制服务器;
响应于接收到订阅服务器发送的数据获取请求,获取所述数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器。
8.根据权利要求7所述的数据发布方法,其中,所述将待发布数据存储到所述发布服务器本地,包括:
确定所述待发布数据是所述发布服务器内存中的数据还是磁盘中的数据;
响应于确定所述待发布数据是所述发布服务器内存中的数据,将所述待发布数据存储到所述发布服务器的本地磁盘中;
响应于确定所述待发布数据是所述发布服务器磁盘中的数据,将所述待发布数据从所述发布服务器的磁盘中加载到所述发布服务器的内存中。
9.根据权利要求8所述的数据发布方法,其中,所述将所述待发布数据存储到所述发布服务器的本地磁盘中,包括:
将所述待发布数据划分成至少一条记录;
将所述至少一条记录存储到所述发布服务器的本地磁盘中的至少一个文件中;
用所述至少一条记录中每条记录的记录标识、所在文件的文件存储路径和该条记录在所在文件中的具体位置,生成索引文件;
将所生成的索引文件存储到所述发布服务器的本地磁盘中。
10.根据权利要求9所述的数据发布方法,其中,在将所述待发布数据的数据标识和存储位置信息发送到所述控制服务器之前,所述方法还包括:
将所述待发布数据在所述发布服务器的本地磁盘中的存储路径信息确定为所述待发布数据的存储位置信息。
11.根据权利要求10所述的方法,其中,所述数据获取请求还包括数据标识;以及
所述获取所述数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器,包括:
在所述发布服务器本地内存中查找与所接收到的数据获取请求中的数据标识匹配的数据;响应于查找到匹配的数据,将所找到的数据发送给所述订阅服务器;响应于未找到匹配的数据,获取所述发布服务器本地磁盘中所接收到的数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器。
12.一种应用于发布和订阅数据的系统中的控制服务器的数据控制方法,包括:
响应于接收到发布服务器发送的数据标识和存储位置信息,根据所述发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表,其中,所述数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系;
响应于接收到订阅服务器发送的订阅请求,根据所述数据位置对应关系表确定与所述订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给所述订阅服务器,其中,所述位置信息包括与所述订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息。
13.一种应用于发布和订阅数据的系统中的订阅服务器的数据订阅方法,包括:
向控制服务器发送订阅请求;
响应于接收到所述控制服务器发送的位置信息,向所述位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求,其中,所述数据获取请求包括所述位置信息中的存储位置信息。
14.一种应用于发布和订阅数据的系统中的发布服务器的数据发布装置,包括:
存储单元,配置用于将待发布数据存储到所述发布服务器本地;
第一发送单元,配置用于将所述待发布数据的数据标识和存储位置信息发送到控制服务器;
获取及发送单元,配置用于响应于接收到订阅服务器发送的数据获取请求,获取所述数据获取请求中的存储位置信息所指示的数据,并将所获取的数据发送给所述订阅服务器。
15.一种应用于发布和订阅数据的系统中的控制服务器的数据控制装置,包括:
更新单元,配置用于响应于接收到发布服务器发送的数据标识和存储位置信息,根据所述发布服务器的发布服务器标识、所接收到的数据标识和存储位置信息更新数据位置对应关系表,其中,所述数据位置对应关系表用于表征发布服务器标识、数据标识和存储位置信息之间的对应关系;
确定及发送单元,配置用于响应于接收到订阅服务器发送的订阅请求,根据所述数据位置对应关系表确定与所述订阅请求对应的数据所在位置的位置信息,以及将所确定的位置信息发送给所述订阅服务器,其中,所述位置信息包括与所述订阅请求所对应的数据所在发布服务器的发布服务器标识和存储位置信息。
16.一种应用于发布和订阅数据的系统中的订阅服务器的数据订阅装置,包括:
第二发送单元,配置用于向控制服务器发送订阅请求;
第三发送单元,配置用于响应于接收到所述控制服务器发送的位置信息,向所述位置信息中的发布服务器标识所指示的发布服务器发送数据获取请求,其中,所述数据获取请求包括所述位置信息中的存储位置信息。
17.一种发布服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求7-11中任一所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求7-11中任一所述的方法。
19.一种控制服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求12所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求12所述的方法。
21.一种订阅服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求13所述的方法。
22.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求13所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810065705.XA CN108282529B (zh) | 2018-01-23 | 2018-01-23 | 发布和订阅数据的系统、方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810065705.XA CN108282529B (zh) | 2018-01-23 | 2018-01-23 | 发布和订阅数据的系统、方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108282529A true CN108282529A (zh) | 2018-07-13 |
CN108282529B CN108282529B (zh) | 2021-08-24 |
Family
ID=62804819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810065705.XA Active CN108282529B (zh) | 2018-01-23 | 2018-01-23 | 发布和订阅数据的系统、方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108282529B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109278674A (zh) * | 2018-08-31 | 2019-01-29 | 百度在线网络技术(北京)有限公司 | 无人驾驶汽车系统安全检测方法、装置、设备及存储介质 |
CN109634926A (zh) * | 2018-12-11 | 2019-04-16 | 北京金风科创风电设备有限公司 | 存储风电场的数据的方法及系统 |
CN109656902A (zh) * | 2018-10-26 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 一种数据加载方法及系统 |
CN110083629A (zh) * | 2019-04-22 | 2019-08-02 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件订阅的方法及装置 |
CN110097363A (zh) * | 2019-04-12 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件发布、事件订阅的方法及装置 |
CN110196874A (zh) * | 2019-05-31 | 2019-09-03 | 新华三大数据技术有限公司 | 数据订阅方法、装置及服务器 |
CN110413303A (zh) * | 2019-07-23 | 2019-11-05 | 日立楼宇技术(广州)有限公司 | 一种控制器的同步方法、装置、设备和存储介质 |
CN110445869A (zh) * | 2019-08-13 | 2019-11-12 | 中国工商银行股份有限公司 | 一种基于分布式订阅的内容发布方法、终端及服务器 |
CN110971529A (zh) * | 2018-09-28 | 2020-04-07 | 杭州海康威视数字技术股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN111385261A (zh) * | 2018-12-29 | 2020-07-07 | 中国科学院长春光学精密机械与物理研究所 | 仿真通讯方法及仿真通讯平台 |
CN111917814A (zh) * | 2019-05-10 | 2020-11-10 | 北京百度网讯科技有限公司 | 数据发布、订阅方法、装置、设备、系统及可读存储介质 |
CN112055061A (zh) * | 2020-08-21 | 2020-12-08 | 烽火通信科技股份有限公司 | 分布式消息处理方法和设备 |
CN113992669A (zh) * | 2021-10-25 | 2022-01-28 | 哈尔滨理工大学 | 一种工业内可信消息的分布式数据分发方法 |
CN115017191A (zh) * | 2022-04-25 | 2022-09-06 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、服务器及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006072609A2 (en) * | 2005-01-10 | 2006-07-13 | International Business Machines Corporation | Systems with message integration for data exchange, collection, monitoring and/or alerting |
CN101188625A (zh) * | 2007-12-26 | 2008-05-28 | 腾讯科技(深圳)有限公司 | 一种实现资讯内容订阅的方法及系统 |
CN102789491A (zh) * | 2012-07-03 | 2012-11-21 | 河海大学 | 一种可配置的数据订阅和发布系统及其方法 |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN106095789A (zh) * | 2016-05-26 | 2016-11-09 | 努比亚技术有限公司 | 一种消息订阅管理装置及方法 |
CN107395761A (zh) * | 2017-08-29 | 2017-11-24 | 北京大生在线科技有限公司 | 基于订阅的本地发布在线教育监课系统 |
CN107404512A (zh) * | 2016-05-19 | 2017-11-28 | 华为技术有限公司 | 资源订阅方法、资源订阅装置和资源订阅系統 |
-
2018
- 2018-01-23 CN CN201810065705.XA patent/CN108282529B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006072609A2 (en) * | 2005-01-10 | 2006-07-13 | International Business Machines Corporation | Systems with message integration for data exchange, collection, monitoring and/or alerting |
CN101188625A (zh) * | 2007-12-26 | 2008-05-28 | 腾讯科技(深圳)有限公司 | 一种实现资讯内容订阅的方法及系统 |
CN102789491A (zh) * | 2012-07-03 | 2012-11-21 | 河海大学 | 一种可配置的数据订阅和发布系统及其方法 |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN107404512A (zh) * | 2016-05-19 | 2017-11-28 | 华为技术有限公司 | 资源订阅方法、资源订阅装置和资源订阅系統 |
CN106095789A (zh) * | 2016-05-26 | 2016-11-09 | 努比亚技术有限公司 | 一种消息订阅管理装置及方法 |
CN107395761A (zh) * | 2017-08-29 | 2017-11-24 | 北京大生在线科技有限公司 | 基于订阅的本地发布在线教育监课系统 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109278674A (zh) * | 2018-08-31 | 2019-01-29 | 百度在线网络技术(北京)有限公司 | 无人驾驶汽车系统安全检测方法、装置、设备及存储介质 |
CN110971529A (zh) * | 2018-09-28 | 2020-04-07 | 杭州海康威视数字技术股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN109656902A (zh) * | 2018-10-26 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 一种数据加载方法及系统 |
CN109634926A (zh) * | 2018-12-11 | 2019-04-16 | 北京金风科创风电设备有限公司 | 存储风电场的数据的方法及系统 |
CN109634926B (zh) * | 2018-12-11 | 2024-05-17 | 北京金风科创风电设备有限公司 | 存储风电场的数据的方法及系统 |
CN111385261B (zh) * | 2018-12-29 | 2022-10-28 | 中国科学院长春光学精密机械与物理研究所 | 仿真通讯方法及仿真通讯平台 |
CN111385261A (zh) * | 2018-12-29 | 2020-07-07 | 中国科学院长春光学精密机械与物理研究所 | 仿真通讯方法及仿真通讯平台 |
CN110097363A (zh) * | 2019-04-12 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件发布、事件订阅的方法及装置 |
CN110083629B (zh) * | 2019-04-22 | 2024-05-07 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件订阅的方法及装置 |
CN110083629A (zh) * | 2019-04-22 | 2019-08-02 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件订阅的方法及装置 |
CN111917814A (zh) * | 2019-05-10 | 2020-11-10 | 北京百度网讯科技有限公司 | 数据发布、订阅方法、装置、设备、系统及可读存储介质 |
CN110196874A (zh) * | 2019-05-31 | 2019-09-03 | 新华三大数据技术有限公司 | 数据订阅方法、装置及服务器 |
CN110413303A (zh) * | 2019-07-23 | 2019-11-05 | 日立楼宇技术(广州)有限公司 | 一种控制器的同步方法、装置、设备和存储介质 |
CN110445869A (zh) * | 2019-08-13 | 2019-11-12 | 中国工商银行股份有限公司 | 一种基于分布式订阅的内容发布方法、终端及服务器 |
CN110445869B (zh) * | 2019-08-13 | 2022-02-15 | 中国工商银行股份有限公司 | 一种基于分布式订阅的内容发布方法、终端及服务器 |
CN112055061A (zh) * | 2020-08-21 | 2020-12-08 | 烽火通信科技股份有限公司 | 分布式消息处理方法和设备 |
CN113992669A (zh) * | 2021-10-25 | 2022-01-28 | 哈尔滨理工大学 | 一种工业内可信消息的分布式数据分发方法 |
CN115017191A (zh) * | 2022-04-25 | 2022-09-06 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108282529B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108282529A (zh) | 发布和订阅数据的系统、方法和装置 | |
CN109697075A (zh) | 文件更新方法、系统和装置 | |
CN108540831B (zh) | 用于推送信息的方法和装置 | |
CN110262807A (zh) | 集群创建进度日志采集系统、方法和装置 | |
CN109936635A (zh) | 负载均衡方法和装置 | |
CN108965355A (zh) | 用于数据传输的方法、装置及计算机可读存储介质 | |
CN109492013A (zh) | 应用于数据库集群的数据处理方法、装置和系统 | |
CN109525855A (zh) | 用于处理信息的方法和装置 | |
CN109241033A (zh) | 创建实时数据仓库的方法和装置 | |
CN106973081B (zh) | 一种用于发布云资源的方法和装置 | |
CN109359194A (zh) | 用于预测信息类别的方法和装置 | |
CN110019263A (zh) | 信息存储方法和装置 | |
CN108924604A (zh) | 用于播放视频的方法和装置 | |
CN110516984A (zh) | 用于生成配送路径信息的方法和装置 | |
CN109522062A (zh) | 展示数据确定方法、应用客户端及电子设备 | |
CN109873863A (zh) | 服务的异步调用方法和装置 | |
CN109408748A (zh) | 用于处理信息的方法和装置 | |
CN109344330A (zh) | 信息处理方法和装置 | |
CN110460584A (zh) | 访问请求处理方法、装置、电子设备和计算机可读介质 | |
CN109753332A (zh) | 用于展现信息的方法和装置 | |
CN114971786A (zh) | 订单信息管理方法、装置、系统、电子设备和存储介质 | |
CN110365745A (zh) | 数据处理系统、方法、装置、服务器和计算机可读介质 | |
CN109885593A (zh) | 用于处理信息的方法和装置 | |
CN110119386A (zh) | 数据处理方法、数据处理装置、介质和计算设备 | |
CN108880923A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |