发明内容
为了解决现有技术中的上述问题,即为了解决如何实现车辆可靠且安全地获取数据的技术问题。为此目的,本发明提供了一种远程数据获取方法及***。
在第一方面,本发明中第一种数据获取方法包括如下步骤:
分布式存储***将预先获取的目标数据发送至CDN服务器,并接收所述CDN服务器根据所述目标数据反馈的下载标识符;
接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符,以使所述客户端能够根据所述下载标识符获取所述CDN服务器中存储的相应目标数据。
进一步地,本发明提供的一个优选技术方案为:
所述分布式存储***包括主控节点和多个受控节点;“分布式存储***将预先获取的目标数据发送至CDN服务器,并接收所述CDN服务器根据所述目标数据反馈的下载标识符”的步骤包括:
某个所述受控节点获取目标数据并将其发送至所述CDN服务器;
接收所述CDN服务器根据所述目标数据反馈的下载标识符;
向所述主控节点发送任务完成信息,以使所述主控节点能够根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所有受控节点。
进一步地,本发明提供的一个优选技术方案为:
“某个所述受控节点获取目标数据并将其发送至所述CDN服务器”的步骤包括:
接收所述主控节点发送的目标数据下载指令,并根据所接收的目标数据下载指令,向相应的业务端发送第二数据下载请求信息;
接收所述业务端根据所述第二数据下载请求信息反馈的目标数据,并将所接收的目标数据发送至所述CDN服务器。
进一步地,本发明提供的一个优选技术方案为:
“接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符”的步骤包括:
某个所述受控节点接收并根据所述第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号。
进一步地,本发明提供的一个优选技术方案为:
“某个所述受控节点接收并根据所述第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号”的步骤包括:
若目标数据为地图数据,则所述受控节点根据当前存储的目标数据所属区域信息与所述第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至所述客户端。
进一步地,本发明提供的一个优选技术方案为:
所述方法还包括:
所述受控节点接收并存储所述主控节点所发送的下载标识符和相应目标数据的数据版本号之后,向所述主控节点发送预设的响应信息,以使所述主控节点能够在收到所有受控节点反馈的响应信息后,将所述下载标识符和相应目标数据的数据版本号存储至特定区域;
在此情况下,当所述受控节点重新启动时,能够通过查询所述特定区域获取所述下载标识符和相应目标数据的数据版本号。
进一步地,本发明提供的一个优选技术方案为:
所述方法还包括:
所述主控节点基于预设的受控节点信息表,并根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所述受控节点信息表中的所有受控节点;
其中,所述受控节点信息表的更新方法包括:所述主控节点监听受控节点注册状态,并根据监听结果在所述受控节点信息表中增加或删除相应的受控节点信息。
进一步地,本发明提供的一个优选技术方案为:
所述方法还包括:
所述主控节点在未接收到任务完成信息的情况下,对当前存储的数据版本号和业务端中的数据版本号进行比对,
根据比对结果确定当前获取失败的目标数据的数据版本号;
根据所确定的数据版本号,重新向所述受控节点发送目标数据下载指令,以使所述受控节点根据所述目标数据下载指令获取所述当前获取失败的目标数据。
进一步地,本发明提供的一个优选技术方案为:
所述方法还包括:
所述主控节点根据当前存储的数据版本号进行目标数据超期检测,并根据检测结果向所述受控节点发送删除指令,以使所述受控节点能够根据所述删除指令删除相应目标数据的下载标识符。
进一步地,本发明提供的一个优选技术方案为:
所述分布式存储***为基于ETCD算法构建的存储***。
在第二方面,本发明中第二种数据获取方法包括如下步骤:
分布式存储***获取目标数据,并将所获取的目标数据发送至CDN服务器,以及接收所述CDN服务器根据所述目标数据反馈的下载标识符;
所述分布式存储***接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符;
所述客户端根据所述下载标识符向所述CDN服务器发送第三数据下载请求信息,并接收所述CDN服务器根据所述第三数据下载请求信息反馈的目标数据。
进一步地,本发明提供的一个优选技术方案为:
所述分布式存储***包括主控节点和多个受控节点;“分布式存储***获取目标数据,并将所获取的目标数据发送至CDN服务器”的步骤包括:
某个所述受控节点接收所述主控节点发送的目标数据下载指令,并根据所接收的目标数据下载指令,向相应的业务端发送第二数据下载请求信息;
接收所述业务端根据所述第二数据下载请求信息反馈的目标数据,并将所接收的目标数据发送至所述CDN服务器。
进一步地,本发明提供的一个优选技术方案为:
“接收所述CDN服务器根据所述目标数据反馈的下载标识符”的步骤包括:
所述受控节点接收所述CDN服务器根据目标数据反馈的下载标识符;
向所述主控节点发送任务完成信息,以使所述主控节点能够根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所有受控节点。
进一步地,本发明提供的一个优选技术方案为:
“所述分布式存储***接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符”的步骤包括:
某个所述受控节点接收并根据所述第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号。
进一步地,本发明提供的一个优选技术方案为:
“某个所述受控节点接收并根据所述第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号”的步骤包括:
若目标数据为地图数据,则所述受控节点根据当前存储的目标数据所属区域信息与所述第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至所述客户端。
进一步地,本发明提供的一个优选技术方案为:
所述方法还包括:
所述受控节点接收并存储所述主控节点所发送的下载标识符和相应目标数据的数据版本号之后,向所述主控节点发送预设的响应信息,以使所述主控节点能够在收到所有受控节点反馈的响应信息后,将所述下载标识符和相应目标数据的数据版本号存储至特定区域;
在此情况下,当所述受控节点重新启动时,能够通过查询所述特定区域获取所述下载标识符和相应目标数据的数据版本号。
进一步地,本发明提供的一个优选技术方案为:
所述方法还包括:
所述主控节点基于预设的受控节点信息表,并根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所述受控节点信息表中的所有受控节点;
其中,所述受控节点信息表的更新方法包括:所述主控节点监听受控节点注册状态,并根据监听结果在所述受控节点信息表中增加或删除相应的受控节点信息。
进一步地,本发明提供的一个优选技术方案为:
所述方法还包括:
所述主控节点在未接收到任务完成信息的情况下,对当前存储的数据版本号和业务端中的数据版本号进行比对,
根据比对结果确定当前获取失败的目标数据的数据版本号;
根据所确定的数据版本号,重新向所述受控节点发送目标数据下载指令,以使所述受控节点根据所述目标数据下载指令获取所述当前获取失败的目标数据。
进一步地,本发明提供的一个优选技术方案为:
所述方法还包括:
所述主控节点根据当前存储的数据版本号进行目标数据超期检测,并根据检测结果向所述受控节点发送删除指令,以使所述受控节点能够根据所述删除指令删除相应目标数据的下载标识符。
进一步地,本发明提供的一个优选技术方案为:
所述分布式存储***为基于ETCD算法构建的存储***。
在第三方面,本发明中的数据获取***包括分布式存储***;
所述分布式存储***,配置为将预先获取的目标数据发送至CDN服务器,并接收所述CDN服务器根据所述目标数据反馈的下载标识符;以及接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符,以使所述客户端能够根据所述下载标识符获取所述CDN服务器中存储的相应目标数据。
进一步地,本发明提供的一个优选技术方案为:
所述分布式存储***包括主控节点和多个受控节点;
所述受控节点,配置为向所述CDN服务器发送目标数据并在收到所述CDN服务器根据所述目标数据反馈的下载标识符后,向所述主控节点发送任务完成信息;
所述主控节点,配置为根据所述受控节点所发送的任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所有受控节点。
进一步地,本发明提供的一个优选技术方案为:
所述受控节点,进一步配置为执行如下操作:
接收所述主控节点发送的目标数据下载指令,并根据所接收的目标数据下载指令,向相应的业务端发送第二数据下载请求信息;
接收所述业务端根据所述第二数据下载请求信息反馈的目标数据,并将所接收的目标数据发送至所述CDN服务器。
进一步地,本发明提供的一个优选技术方案为:
所述受控节点,进一步配置为接收并根据第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号。
进一步地,本发明提供的一个优选技术方案为:
所述受控节点,配置为当目标数据为地图数据时,根据当前存储的目标数据所属区域信息与所述第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至所述客户端。
进一步地,本发明提供的一个优选技术方案为:
所述受控节点,进一步配置为接收并存储所述主控节点所发送的下载标识符和相应目标数据的数据版本号之后,向所述主控节点发送预设的响应信息;
所述主控节点,进一步配置为在收到所有受控节点反馈的响应信息后,将所述下载标识符和相应目标数据的数据版本号存储至特定区域;在此情况下,所述受控节点配置为在重新启动时通过查询所述特定区域获取所述下载标识符和相应目标数据的数据版本号。
进一步地,本发明提供的一个优选技术方案为:
所述主控节点,进一步配置为基于预设的受控节点信息表,并根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所述受控节点信息表中的所有受控节点;
其中,所述受控节点信息表的更新方法包括:所述主控节点监听受控节点注册状态,并根据监听结果在所述受控节点信息表中增加或删除相应的受控节点信息。
进一步地,本发明提供的一个优选技术方案为:
所述主控节点,进一步配置为根据当前存储的数据版本号进行目标数据超期检测,并根据检测结果向所述受控节点发送删除指令,以使所述受控节点能够根据所述删除指令删除相应目标数据的下载标识符。
进一步地,本发明提供的一个优选技术方案为:
所述主控节点,进一步配置为在未接收到任务完成信息的情况下执行如下操作:
对当前存储的数据版本号和业务端中的数据版本号进行比对;
根据比对结果确定当前获取失败的目标数据的数据版本号;
根据所确定的数据版本号,重新向所述受控节点发送目标数据下载指令,以使所述受控节点根据所述目标数据下载指令获取所述当前获取失败的目标数据。
进一步地,本发明提供的一个优选技术方案为:
所述分布式存储***为基于ETCD算法构建的存储***。
第四方面,本发明中的存储装置存储有多条程序,所述程序适于由处理器加载并执行以实现上述技术方案所述的数据获取方法。
第五方面,本发明中的控制装置包括:
处理器,适于执行各条程序;
存储设备,适于存储多条程序;
所述程序适于由处理器加载并执行以实现上述技术方案所述的数据获取方法。
方案1、一种数据获取方法,其特征在于,所述方法包括:
分布式存储***将预先获取的目标数据发送至CDN服务器,并接收所述CDN服务器根据所述目标数据反馈的下载标识符;
接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符,以使所述客户端能够根据所述下载标识符获取所述CDN服务器中存储的相应目标数据。
方案2、根据方案1所述的数据获取方法,其特征在于,所述分布式存储***包括主控节点和多个受控节点;“分布式存储***将预先获取的目标数据发送至CDN服务器,并接收所述CDN服务器根据所述目标数据反馈的下载标识符”的步骤包括:
某个所述受控节点获取目标数据并将其发送至所述CDN服务器;
接收所述CDN服务器根据所述目标数据反馈的下载标识符;
向所述主控节点发送任务完成信息,以使所述主控节点能够根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所有受控节点。
方案3、根据方案2所述的数据获取方法,其特征在于,“某个所述受控节点获取目标数据并将其发送至所述CDN服务器”的步骤包括:
接收所述主控节点发送的目标数据下载指令,并根据所接收的目标数据下载指令,向相应的业务端发送第二数据下载请求信息;
接收所述业务端根据所述第二数据下载请求信息反馈的目标数据,并将所接收的目标数据发送至所述CDN服务器。
方案4、根据方案2所述的数据获取方法,其特征在于,“接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符”的步骤包括:
某个所述受控节点接收并根据所述第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号。
方案5、根据方案4所述的数据获取方法,其特征在于,“某个所述受控节点接收并根据所述第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号”的步骤包括:
若目标数据为地图数据,则所述受控节点根据当前存储的目标数据所属区域信息与所述第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至所述客户端。
方案6、根据方案2-5任一项所述的数据获取方法,其特征在于,所述方法还包括:
所述受控节点接收并存储所述主控节点所发送的下载标识符和相应目标数据的数据版本号之后,向所述主控节点发送预设的响应信息,以使所述主控节点能够在收到所有受控节点反馈的响应信息后,将所述下载标识符和相应目标数据的数据版本号存储至特定区域;
在此情况下,当所述受控节点重新启动时,能够通过查询所述特定区域获取所述下载标识符和相应目标数据的数据版本号。
方案7、根据方案2-5任一项所述的数据获取方法,其特征在于,所述方法还包括:
所述主控节点基于预设的受控节点信息表,并根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所述受控节点信息表中的所有受控节点;
其中,所述受控节点信息表的更新方法包括:所述主控节点监听受控节点注册状态,并根据监听结果在所述受控节点信息表中增加或删除相应的受控节点信息。
方案8、根据方案2-5任一项所述的数据获取方法,其特征在于,所述方法还包括:
所述主控节点在未接收到任务完成信息的情况下,对当前存储的数据版本号和业务端中的数据版本号进行比对,
根据比对结果确定当前获取失败的目标数据的数据版本号;
根据所确定的数据版本号,重新向所述受控节点发送目标数据下载指令,以使所述受控节点根据所述目标数据下载指令获取所述当前获取失败的目标数据。
方案9、根据方案2-5任一项所述的数据获取方法,其特征在于,所述方法还包括:
所述主控节点根据当前存储的数据版本号进行目标数据超期检测,并根据检测结果向所述受控节点发送删除指令,以使所述受控节点能够根据所述删除指令删除相应目标数据的下载标识符。
方案10、根据方案1-5任一项所述的数据获取方法,其特征在于,
所述分布式存储***为基于ETCD算法构建的存储***。
方案11、一种数据获取方法,其特征在于,所述方法包括:
分布式存储***获取目标数据,并将所获取的目标数据发送至CDN服务器,以及接收所述CDN服务器根据所述目标数据反馈的下载标识符;
所述分布式存储***接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符;
所述客户端根据所述下载标识符向所述CDN服务器发送第三数据下载请求信息,并接收所述CDN服务器根据所述第三数据下载请求信息反馈的目标数据。
方案12、根据方案11所述的数据获取方法,其特征在于,所述分布式存储***包括主控节点和多个受控节点;“分布式存储***获取目标数据,并将所获取的目标数据发送至CDN服务器”的步骤包括:
某个所述受控节点接收所述主控节点发送的目标数据下载指令,并根据所接收的目标数据下载指令,向相应的业务端发送第二数据下载请求信息;
接收所述业务端根据所述第二数据下载请求信息反馈的目标数据,并将所接收的目标数据发送至所述CDN服务器。
方案13、根据方案12所述的数据获取方法,其特征在于,“接收所述CDN服务器根据所述目标数据反馈的下载标识符”的步骤包括:
所述受控节点接收所述CDN服务器根据目标数据反馈的下载标识符;
向所述主控节点发送任务完成信息,以使所述主控节点能够根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所有受控节点。
方案14、根据方案12所述的数据获取方法,其特征在于,“所述分布式存储***接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符”的步骤包括:
某个所述受控节点接收并根据所述第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号。
方案15、根据方案14所述的数据获取方法,其特征在于,“某个所述受控节点接收并根据所述第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号”的步骤包括:
若目标数据为地图数据,则所述受控节点根据当前存储的目标数据所属区域信息与所述第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至所述客户端。
方案16、根据方案13所述的数据获取方法,其特征在于,所述方法还包括:
所述受控节点接收并存储所述主控节点所发送的下载标识符和相应目标数据的数据版本号之后,向所述主控节点发送预设的响应信息,以使所述主控节点能够在收到所有受控节点反馈的响应信息后,将所述下载标识符和相应目标数据的数据版本号存储至特定区域;
在此情况下,当所述受控节点重新启动时,能够通过查询所述特定区域获取所述下载标识符和相应目标数据的数据版本号。
方案17、根据方案16所述的数据获取方法,其特征在于,所述方法还包括:
所述主控节点基于预设的受控节点信息表,并根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所述受控节点信息表中的所有受控节点;
其中,所述受控节点信息表的更新方法包括:所述主控节点监听受控节点注册状态,并根据监听结果在所述受控节点信息表中增加或删除相应的受控节点信息。
方案18、根据方案16所述的数据获取方法,其特征在于,所述方法还包括:
所述主控节点在未接收到任务完成信息的情况下,对当前存储的数据版本号和业务端中的数据版本号进行比对,
根据比对结果确定当前获取失败的目标数据的数据版本号;
根据所确定的数据版本号,重新向所述受控节点发送目标数据下载指令,以使所述受控节点根据所述目标数据下载指令获取所述当前获取失败的目标数据。
方案19、根据方案13-18任一项所述的数据获取方法,其特征在于,所述方法还包括:
所述主控节点根据当前存储的数据版本号进行目标数据超期检测,并根据检测结果向所述受控节点发送删除指令,以使所述受控节点能够根据所述删除指令删除相应目标数据的下载标识符。
方案20、根据方案11-18任一项所述的数据获取方法,其特征在于,
所述分布式存储***为基于ETCD算法构建的存储***。
方案21、一种数据获取***,其特征在于,所述数据获取***包括分布式存储***;
所述分布式存储***,配置为将预先获取的目标数据发送至CDN服务器,并接收所述CDN服务器根据所述目标数据反馈的下载标识符;以及接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向所述客户端发送相应的下载标识符,以使所述客户端能够根据所述下载标识符获取所述CDN服务器中存储的相应目标数据。
方案22、根据方案20所述的数据获取***,其特征在于,所述分布式存储***包括主控节点和多个受控节点;
所述受控节点,配置为向所述CDN服务器发送目标数据并在收到所述CDN服务器根据所述目标数据反馈的下载标识符后,向所述主控节点发送任务完成信息;
所述主控节点,配置为根据所述受控节点所发送的任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所有受控节点。
方案23、根据方案22所述的数据获取***,其特征在于,
所述受控节点,进一步配置为执行如下操作:
接收所述主控节点发送的目标数据下载指令,并根据所接收的目标数据下载指令,向相应的业务端发送第二数据下载请求信息;
接收所述业务端根据所述第二数据下载请求信息反馈的目标数据,并将所接收的目标数据发送至所述CDN服务器。
方案24、根据方案22所述的数据获取***,其特征在于,
所述受控节点,进一步配置为接收并根据第一数据下载请求信息向所述客户端发送相应目标数据的下载标识符和数据版本号。
方案25、根据方案24所述的数据获取***,其特征在于,
所述受控节点,配置为当目标数据为地图数据时,根据当前存储的目标数据所属区域信息与所述第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至所述客户端。
方案26、根据方案22-25任一项所述的数据获取***,其特征在于,
所述受控节点,进一步配置为接收并存储所述主控节点所发送的下载标识符和相应目标数据的数据版本号之后,向所述主控节点发送预设的响应信息;
所述主控节点,进一步配置为在收到所有受控节点反馈的响应信息后,将所述下载标识符和相应目标数据的数据版本号存储至特定区域;在此情况下,所述受控节点配置为在重新启动时通过查询所述特定区域获取所述下载标识符和相应目标数据的数据版本号。
方案27、根据方案22-25任一项所述的数据获取***,其特征在于,
所述主控节点,进一步配置为基于预设的受控节点信息表,并根据所述任务完成信息,将所述下载标识符和相应目标数据的数据版本号发送至所述受控节点信息表中的所有受控节点;
其中,所述受控节点信息表的更新方法包括:所述主控节点监听受控节点注册状态,并根据监听结果在所述受控节点信息表中增加或删除相应的受控节点信息。
方案28、根据方案22-25任一项所述的数据获取***,其特征在于,
所述主控节点,进一步配置为根据当前存储的数据版本号进行目标数据超期检测,并根据检测结果向所述受控节点发送删除指令,以使所述受控节点能够根据所述删除指令删除相应目标数据的下载标识符。
方案29、根据方案22-25任一项所述的数据获取***,其特征在于,
所述主控节点,进一步配置为在未接收到任务完成信息的情况下执行如下操作:
对当前存储的数据版本号和业务端中的数据版本号进行比对;
根据比对结果确定当前获取失败的目标数据的数据版本号;
根据所确定的数据版本号,重新向所述受控节点发送目标数据下载指令,以使所述受控节点根据所述目标数据下载指令获取所述当前获取失败的目标数据。
方案30、根据方案21-25任一项所述的数据获取***,其特征在于,
所述分布式存储***为基于ETCD算法构建的存储***。
方案31、一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行以实现方案1-20任一项所述的数据获取方法。
方案32、一种控制装置,包括:
处理器,适于执行各条程序;
存储设备,适于存储多条程序;
其特征在于,所述程序适于由处理器加载并执行以实现方案1-20任一项所述的数据获取方法。
与最接近的现有技术相比,上述技术方案至少具有以下有益效果:
1、本发明中的数据获取方法,利用分布式存储***提前将客户端需要的目标数据下载至CDN服务器(内容分发网络中节点服务器)并接收CDN服务器反馈的下载标识符(目标数据在内容分发网络中的下载地址)。基于节点竞选机制,当分布式存储***中的主控节点失效(若节点为独立的物理服务器,其可能由于故障而宕机)时,受控节点可以立即进行主控节点竞选,从而保证分布式存储***能够可靠运行。
2、本发明的分布式存储***中,其主控节点可以在某个受控节点完成数据下载与上传任务(受控节点从业务端下载目标数据与将目标数据发送至CDN服务器)后,将目标数据的相关信息(下载标识符和相应目标数据的数据版本号)发送至所有受控节点,保证每个受控节点的存储数据具有较高的一致性,使得客户端查询任意一个节点时,都可以得到其所需要目标数据的相关信息。
3、本发明的分布式存储***中,由于每个受控节点的通信带宽有限,当分布式存储***无法满足当前所有客户端的数据下载需求时,可以在分布式存储***中增设新的受控节点来提高分布式存储***的信息处理能力,而受控节点作为主控节点的从属节点,其增减并不会影响主控节点和其他受控节点的正常运行,因此无需暂停分布式存储***,即可增减受控节点(若节点为独立的物理服务器,主控节点监听到分布式存储***中注册新服务器后,立即在受控节点信息表中增加该服务器的相关信息,从而完成受控节点的增加)。
4、本发明的分布式存储***中,其受控节点可以在接收并存储主控节点所发送目标数据的相关信息(下载标识符和相应目标数据的数据版本号)后,向主控节点发送响应信息,进而主控节点能够在收到所有受控节点反馈的响应信息后,将目标数据的相关信息存储至特定区域。基于此,当受控节点重新启动或分布式存储***重新启动时,受控节点可以通过查询特定区域获取目标数据的相关信息。
5、本发明的分布式存储***中,其主控节点可以进行目标数据超期检测,并根据检测结果向受控节点发送删除指令,以使受控节点能够根据删除指令删除相应目标数据的相关信息(下载标识符和相应目标数据的数据版本号),减轻受控节点的数据存储压力,进而提高其运行速度。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
首先需要说明的是,本发明中的分布式存储***是基于ETCD算法、Zookeeper算法或Paxos算法等算法构建的分布式存储***,CDN服务器是预设的内容分发网络(ContentDelivery Network,CDN)中的节点服务器,该节点服务器能够分别与分布式存储***和客户端通信。客户端指的是能够实现特定功能的操控***,在某些情况下,可能直接指代该操控***的控制器。例如,客户端可以为车辆内预置的车机端。
为了清楚描述本发明中数据获取方法的实施过程,下面以基于ETCD算法构建的分布式存储***为例,并结合附图对该分布式存储***作进一步说明。
本发明中的分布式存储***包括多个节点,并且基于ETCD算法的节点竞选机制,每个节点均可以竞争为主控节点,当某个节点竞争成功后,其他节点均作为受控节点(即主控节点的从属节点),主控节点可以控制所有受控节点同时执行某个特定操作,如获取或删除特定数据,从而保证这些受控节点具有较强的一致性。
参照附图1,图1示例性示出了本实施例中分布式存储***某个节点的状态机切换过程。如图1所示,在分布式存储***的初始状态,每个节点均为受控节点,若某个节点成功竞选为主控节点,则该节点可以立即由受控节点状态切换至主控节点状态,其他节点在监听到已竞选出主控节点后继续维持在受控节点状态。在此情况下,当主控节点发生故障时也会立即切换至受控节点状态,其他节点再次进行主控节点竞选。
需要说明的是,分布式存储***中的节点可以为控制节点,并可配置为能够执行并实现特定计算机程序的计算机可读存储介质或独立的物理服务器。并且,分布式存储***中的节点数量N至少为2。在本实施例的一个优选实施方案中,分布式存储***中的节点数量N为大于或等于3的正奇数。
本领域技术人员能够理解的是,虽然本发明仅公开了一种基于ETCD算法构建的分布式存储***,但是本发明的保护范围显然不局限于这一具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以采用Zookeeper算法或Paxos算法等能够保证分布式***具备高一致性的算法构建分布式存储***,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
下面结合附图,对本实施例中一种数据获取方法进行说明。
参照附图2,图2示例性示出了本实施例中第一种数据获取方法的主要步骤。如图2所示,本实施例中的数据获取方法可以包括如下步骤:
步骤S101:主控节点向业务端发送数据查询指令。
具体地,本实施例中业务端指的是能够与分布式存储***通信,并向分布式存储***发送特定数据的终端。例如,客户端为车机端时,业务端可以为能够提供导航地图数据或天气数据等数据的服务器或服务器集群。车机端可通过分布式存储***获取来自该业务端的所需特定数据。
本实施例中主控节点可以采用实时查询的方式向业务端发送数据查询指令,进而保证分布式存储***可以快速获取业务端中的特定数据。可选的,主控节点还可以采用定时查询的方式向业务端发送数据查询指令,以减轻带宽压力。
步骤S102:业务端根据数据查询指令,向主控节点发送数据版本号。
具体地,本实施例中业务端接收到数据查询指令后,检测业务端本地是否存储有该数据查询指令所指定的特定数据,若检测到该特定数据,则将该特定数据的数据版本号发送至主控节点。例如,当数据查询指令为查询数据版本号2.0以上的导航地图数据时,若业务端检测到本地存储有数据版本号2.1和数据版本号2.2的导航地图数据,则将数据版本号2.1和数据版本号2.2发送至主控节点。
步骤S103:主控节点根据数据版本号向受控节点发送目标数据下载指令。
具体地,本实施例中当主控节点接收到多个数据版本号时,可以向多个受控节点发送目标数据下载指令,以使每个受控节点根据各自的目标数据下载指令获取相应数据版本号对应的数据。可选的,主控节点也可仅向一个受控节点发送目标数据下载指令,以使该受控节点根据该数据目标下载指令获取所有数据版本号对应的数据。
步骤S104:受控节点根据目标数据下载指令向业务端发送第二数据下载请求信息。即受控节点执行目标数据下载任务。其中,第二数据下载请求信息包含目标数据下载指令所指定的数据版本号,以便业务端能够将该数据版本号对应的数据发送至受控节点。
步骤S105:受控节点接收业务端根据第二数据下载请求信息反馈的目标数据。
步骤S106:受控节点将所接收的目标数据发送至CDN服务器,并接收CDN服务器反馈的下载标识符。即受控节点执行目标数据上传任务。其中,下载标识符为目标数据在内容分发网络中的下载地址。
步骤S107:受控节点向主控节点发送任务完成信息。即受控节点完成目标数据下载任务与上传任务后,向主控节点发送任务完成信息。
步骤S108:主控节点根据任务完成信息,将下载标识符和相应目标数据的数据版本号发送至所有受控节点。
可选的,任务完成信息包含目标数据的下载标识符和数据版本号。还可选的,任务完成信息不包含上述信息,主控节点接收到任务完成信息之后,从该受控节点获取目标数据的下载标识符和数据版本号,并将它们更新到所有受控节点。本实施例中每个受控节点完成目标数据下载与上传任务后,主控节点均立即将相应的下载标识符和数据版本号发送至所有受控节点,可以保证分布式存储***中每个节点存储数据的一致性。
具体地,本实施例中主控节点可以按照如下步骤将下载标识符和相应目标数据的数据版本号发送至所有受控节点:
步骤S1081:主控节点监听受控节点注册状态,并根据监听结果在受控节点信息表中增加或删除相应的受控节点信息。
步骤S1082:基于预设的受控节点信息表,并根据任务完成信息,将下载标识符和相应目标数据的数据版本号发送至受控节点信息表中的所有受控节点。即主控节点收到任务完成信息号后,将该任务完成信息对应的下载标识符和数据版本号均发送至受控节点信息表中的所有受控节点。
进一步地,本实施例中图2所示数据获取方法还包括数据预存步骤,具体包括:受控节点接收并存储主控节点所发送的下载标识符和相应目标数据的数据版本号之后,可以向主控节点发送预设的响应信息,以使主控节点能够在收到所有受控节点反馈的响应信息后,将下载标识符和相应目标数据的数据版本号存储至特定区域。在此情况下,当受控节点重新启动时(如故障排除后重新启动或分布式存储***断电后重新启动),能够通过查询特定区域获取下载标识符和相应目标数据的数据版本号。
进一步地,本实施例中图2所示数据获取方法还包括主控节点控制受控节点重新获取目标数据的步骤,具体为:主控节点在未接收到任务完成信息的情况下(如主控节点向受控节点发送目标数据下载指令一定时间后未收到相应的任务完成信息,即判断为主控节点未接收到任务完成信息),首先对其本地当前存储的数据版本号和业务端中的数据版本号进行比对,然后根据比对结果确定当前获取失败的目标数据的数据版本号,最后据所确定的数据版本号,重新向受控节点发送目标数据下载指令,受控节点根据这个目标数据下载指令再次获取当前获取失败的目标数据。要说明的是,这里的受控节点可以是主控节点先前指示下载数据的一个或多个受控节点,也可以是其他的一个或多个受控节点。
例如,主控节点当前存储的导航地图数据的数据版本号包括2.1、2.3,而业务端中数据版本号在2.0以上的导航地图数据包括数据版本号分别为2.1、2.2、2.3的导航地图数据,经数据版本号比对可以确定数据版本号2.2的导航地图数据下载失败。主控节点立即根据该数据版本号2.2重新向受控节点发送目标数据下载指令(该指令仅指定数据版本号2.2的导航地图数据),受控节点根据这个目标数据下载指令再次获取数据版本号2.2的导航地图数据。
进一步地,本实施例中图2所示数据获取方法还包括主控节点控制受控节点删除过期数据的步骤,具体为:主控节点根据其本地当前存储的数据版本号进行目标数据超期检测,并根据检测结果向受控节点发送删除指令,以使受控节点能够根据删除指令删除相应目标数据的下载标识符。同时,本实施例中主控节点可以同步删除相关目标数据的下载标识符。
例如,主控节点当前存储的数据版本号包括数据版本号1.7、1.8、1.9、2.0、2.1和2.2。主控节点经目标数据超期检测得到数据版本号1.7 1.8和1.9均为超期数据的数据版本号,则向所有受控节点发送删除这三个超期数据的删除指令,所有受控节点接收到删除指令后立即删除数据版本号1.7、1.8和1.9对应的下载标识符。
至此,分布式存储***已完成与业务端之间的通信过程。
步骤S109:受控节点接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向客户端发送相应目标数据的下载标识符和数据版本号。
具体地,当客户端所需下载的目标数据为地图数据时,受控节点可以根据当前存储的目标数据所属区域信息与第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至客户端。
例如,受控节点当前存储有北京和上海等多个地区地图数据的数据版本号及所对应的下载标识符。若客户端的当前位置为北京市,则受控节点可以将北京市地图数据的相关数据版本号及所对应下载标识符发送至客户端。若客户端的当前位置为上海市,则受控节点可以将上海市地图数据的相关数据版本号及所对应下载标识符发送至客户端。
至此,分布式存储***已完成与客户端之间的通信过程。
步骤S110:客户端根据所接收的下载标识符向CDN服务器发送第三数据下载请求信息。
步骤S111:CDN服务器根据所接收的下载标识符将相应的目标数据发送至客户端。
本实施例中图2所示的数据获取方法,利用分布式存储***提前将客户端需要的目标数据下载至内容分发网络中,然后获取目标数据在内容分发网络中的下载地址,以使客户端可以通过分布式存储***获取相关目标数据的下载地址,进而根据所获取的下载地址获取内容分发网络中存储的目标数据。分布式存储***中每个受控节点的存储数据具有较高的一致性,使得客户端查询任意一个受控节点时,都可以得到其所需要目标数据的下载地址,并且任一节点的宕机均不会影响数据的同步,查询和获取。同时,由于每个受控节点的通信带宽有限,当分布式存储***无法满足当前所有客户端的数据下载需求时,可以在分布式存储***中增设新的受控节点来提高分布式存储***的信息处理能力,而受控节点作为主控节点的从属节点,其增减并不会影响主控节点和其他受控节点的正常运行,因此无需暂停分布式存储***,即可增减受控节点(若节点为独立的物理服务器,主控节点监听到分布式存储***中注册新服务器后,立即在受控节点信息表中增加该服务器的相关信息,从而完成受控节点的增加)。
继续参照附图3,图3示例性示出了本实施例中第二种数据获取方法的主要步骤。如图3所示,本实施例中的数据获取方法可以包括如下步骤:
步骤S201:分布式存储***将预先获取的目标数据发送至CDN服务器,并接收CDN服务器根据目标数据反馈的下载标识符。其中,下载标识符为目标数据在内容分发网络中的下载地址。
具体地,本实施例中分布式存储***可以按照如下步骤将预先获取的目标数据发送至CDN服务器,并接收CDN服务器根据目标数据反馈的下载标识符:
步骤S2011:受控节点获取目标数据并将其发送至CDN服务器,具体包括如下步骤:首先,受控节点接收主控节点发送的目标数据下载指令,并根据所接收的目标数据下载指令,向相应的业务端发送第二数据下载请求信息。最后,受控节点接收业务端根据第二数据下载请求信息反馈的目标数据,并将所接收的目标数据发送至CDN服务器。
步骤S2012:受控节点接收CDN服务器根据目标数据反馈的下载标识符。
步骤S2013:受控节点向主控节点发送任务完成信息,以使主控节点能够根据任务完成信息,将下载标识符和相应目标数据的数据版本号发送至所有受控节点。
步骤S202:接收客户端发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向客户端发送相应的下载标识符,以使客户端能够根据下载标识符获取CDN服务器中存储的相应目标数据。
本实施例中受控节点可以接收并根据第一数据下载请求信息向客户端发送相应目标数据的下载标识符和数据版本号。具体地,若目标数据为地图数据,则受控节点可以根据当前存储的目标数据所属区域信息与第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至客户端。
进一步地,本实施例中图3所示数据获取方法还可以包括数据预存步骤、主控节点控制受控节点重新获取目标数据的步骤、主控节点控制受控节点删除过期数据的步骤,并且这三个步骤与前述图2所示数据获取方法中公开的方法相同,为了描述简洁,在此不再赘述。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
基于上述数据获取方法实施例,本发明还提供了一种存储装置,该存储装置存储有多条程序,并且这些程序适于由处理器加载并执行以实现上述方法实施例所述的数据获取方法。
进一步地,基于上述数据获取方法实施例,本发明还提供了一种控制装置,该控制装置包括处理器和存储设备,其中,处理器可以适于执行各条程序,存储设备可以适于存储多条程序,并且这些程序可以适于由处理器加载并执行以实现上述方法实施例所述的数据获取方法。
再进一步地,基于与方法实施例相同的技术构思,本发明还提供了一种数据获取***。下面结合附图对该数据获取***进行具体说明。
参阅附图4,图4示例性示出了本实施例中数据获取***的主要结构。如图4所示,本实施例中数据获取***包括分布式存储***2,其分别与业务端1、CDN服务器3和客户端4通信。具体地,分布式存储***可以配置为将预先获取的目标数据发送至CDN服务器3,并接收CDN服务器3根据目标数据反馈的下载标识符;以及接收客户端4发送的第一数据下载请求信息,并根据所接收的第一数据下载请求信息向客户端4发送相应的下载标识符,以使客户端4能够根据下载标识符获取CDN服务器3中存储的相应目标数据。
进一步地,本实施例中图4所示分布式存储***2包括主控节点和多个受控节点。具体地,每个受控节点均可以配置为向CDN服务器3发送目标数据并在收到CDN服务器3根据目标数据反馈的下载标识符后,向主控节点发送任务完成信息。主控节点可以配置为根据受控节点所发送的任务完成信息,将下载标识符和相应目标数据的数据版本号发送至所有受控节点。
进一步地,本实施例中受控节点还可以置为执行如下操作:首先,接收主控节点发送的目标数据下载指令,并根据所接收的目标数据下载指令,向相应的业务端1发送第二数据下载请求信息。接收业务端1根据第二数据下载请求信息反馈的目标数据,并将所接收的目标数据发送至CDN服务器3。
进一步地,本实施例中受控节点还可以置为接收并根据第一数据下载请求信息向客户端4发送相应目标数据的下载标识符和数据版本号。具体地,受控节点还可以配置为当目标数据为地图数据时,根据当前存储的目标数据所属区域信息与第一数据下载请求信息中的客户端位置信息,匹配相应目标数据的下载标识符和数据版本号,并将匹配出的下载标识符和数据版本号发送至客户端4。
进一步地,本实施例中受控节点还可以配置为接收并存储主控节点所发送的下载标识符和相应目标数据的数据版本号之后,向主控节点发送预设的响应信息。主控节点还可以配置为在收到所有受控节点反馈的响应信息后,将下载标识符和相应目标数据的数据版本号存储至特定区域。在此情况下,受控节点配置为在重新启动时通过查询特定区域获取下载标识符和相应目标数据的数据版本号。
进一步地,本实施例中主控节点还可以配置为基于预设的受控节点信息表,并根据任务完成信息,将下载标识符和相应目标数据的数据版本号发送至受控节点信息表中的所有受控节点。其中,受控节点信息表的更新方法包括:主控节点监听受控节点注册状态,并根据监听结果在受控节点信息表中增加或删除相应的受控节点信息。
进一步地,本实施例中主控节点还可以配置为根据当前存储的数据版本号进行目标数据超期检测,并根据检测结果向受控节点发送删除指令,以使受控节点能够根据删除指令删除相应目标数据的下载标识符。
进一步地,本实施例中主控节点还可以配置为在未接收到任务完成信息的情况下执行如下操作:首先,对当前存储的数据版本号和业务端中的数据版本号进行比对。其次,根据比对结果确定当前获取失败的目标数据的数据版本号。最后,根据所确定的数据版本号,重新向受控节点发送目标数据下载指令,以使受控节点根据目标数据下载指令获取当前获取失败的目标数据。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在本发明的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。