掌桥专利:专业的专利平台
掌桥专利
首页

一种适配多种时序数据库的微服务的方法和装置

文献发布时间:2023-06-19 10:27:30


一种适配多种时序数据库的微服务的方法和装置

技术领域

本发明涉及数据库技术领域,尤其涉及一种适配多种时序数据库的微服务的方法和装置。

背景技术

时序数据库通常被智慧物联IoT领域用于存储带有时间戳特性的数据。由于时序数据侧重的特性不同,会引出不同种类型的时序数据库,为每种时序数据库都进行适配的烟囱式开发会极大的增加开发成本。

在智慧物联IoT领域,越来越多的传感器或点表随着智能设备和智能网关的普及化,能够随时随地的上传数据。针对传感器或者点表上传的带有时间戳特性的数据产生了区别于传统关系型数据库的另一种数据库类型-时序数据库。不同种类型的时序数据库会有不同的侧重点:压缩比、运维支持、扩展性、性能、聚合计算能力等等,不同的场景会使用到不同的时序数据库,为每个时序数据库分别进行适配的烟囱式开发极大的增加了开发成本,亟需一种适配多种时序数据库的技术解决方案。

发明内容

鉴于上述的分析,本发明实施例旨在提供一种适配多种时序数据库的微服务的方法和装置,用以解决为每个时序数据库分别进行适配的烟囱式开发极大的增加了开发成本的问题。

一方面,本发明实施例提供了一种适配多种时序数据库的微服务的方法,包括:提供通用时序数据库适配器微服务模块;提供所述多种时序数据库的多个微服务模块,其中,每个微服务模块具有微服务接口,所述每个微服务模块经由所述微服务接口与所述通用时序数据库适配器微服务模块集成;以及从所述多种连接器中选择一个连接器,并将所述多种时序数据库中的特定时序数据库经由选择的连接器与所述多个微服务模块中对应于所述特定时序数据库的微服务模块连接,其中,所述多种连接器包括TCP方式的连接器、HTTP方式的连接器和Hikari连接池方式的连接器。

上述技术方案的有益效果如下:通过通用时序数据库适配器微服务模块适配不同类型的时序数据库,将业务系统与时序数据库的连接透明化。

基于上述方法的进一步改进,所述多种时序数据库包括:ElasticSearch时序数据库、InfluxDB时序数据库和ClickHouse时序数据库;以及所述多个微服务模块包括:ElasticSearch时序数据库微服务模块,与所述ElasticSearch时序数据库相对应;InfluxDB时序数据库微服务模块,与所述InfluxDB时序数据库相对应;以及ClickHouse时序数据库微服务模块,与所述ClickHouse时序数据库相对应。

基于上述方法的进一步改进,从所述多种连接器中选择一个连接器,并将所述特定时序数据库经由选择的连接器与所述多个微服务模块中对应于所述特定时序数据库的微服务模块连接包括:从所述多种连接器中选择TCP连接器并通过所述TCP连接器将所述ElasticSearch时序数据库微服务模块与所述ElasticSearch时序数据库连接;从所述多种连接器中选择HTTP连接器并通过所述HTTP连接器将所述InfluxDB时序数据库微服务模块与所述InfluxDB时序数据库连接;以及从所述多种连接器中选择Hikari连接池连接器并通过Hikari连接池连接器将所述ClickHouse时序数据库微服务模块与所述ClickHouse时序数据库连接。

基于上述方法的进一步改进,所述通用时序数据库适配器微服务模块设置有服务发现与注册中心模块,所述服务发现与注册中心模块用于:对所述多种时序数据库进行注册以将所述多个微服务模块与通用时序数据库适配器微服务模块的集成在同一微服务环境中;以及对一种或多种业务系统进行注册,以将所述一种或多种业务系统的微服务模块与所述通用时序数据库适配器微服务模块连接。

基于上述方法的进一步改进,经由通用服务接口将所述业务系统与所述通用时序数据库适配器微服务模块连接,其中,经由所述通用服务接口从所述业务系统接收查询和保存指令;以及经由所述通用服务接口将查询和保存结果返回至所述业务系统。

基于上述方法的进一步改进,在经由所述通用服务接口调用所述查询和保存指令时,将通过通用服务接口接收到的用户指定需要使用的特定时序数据库作为参数,所述通用时序数据库适配器微服务模块通过所述参数识别所述特定时序数据库。

基于上述方法的进一步改进,在调用所述查询和保存指令时,还包括以下步骤:根据所述参数,在内存中构建与所述特定时序数据库相对应的数据结构并使用所述多种连接器中的与所述特定时序数据库相对应的连接器与所述特定时序数据库进行交互;以及使用所述多种连接器中的与所述特定时序数据库相对应的连接器经由所述通用时序数据库适配器微服务模块将所述查询和保存结果返回至所述业务系统。

基于上述方法的进一步改进,当所述参数指定所述ElasticSearch时序数据库时,在内存中构建与所述ElasticSearch时序数据库相对应的数据结构并使用所述TCP连接器与所述ElasticSearch时序数据库进行交互,并使用所述TCP连接器经由所述通用时序数据库适配器微服务模块将所述查询和保存结果返回至所述业务系统;当所述参数指定所述InfluxDB时序数据库时,在所述内存中构建与所述InfluxDB时序数据库相对应的数据结构并使用所述HTTP连接器与所述InfluxDB时序数据库进行交互,并使用所述HTTP连接器经由所述通用时序数据库适配器微服务模块将所述查询和保存结果返回至所述业务系统;以及当所述参数指定所述ClickHouse时序数据库时,在所述内存中构建与所述ClickHouse时序数据库相对应的数据结构并使用所述Hikari连接池方式的连接器与所述InfluxDB时序数据库进行交互,并使用所述Hikari连接池方式的连接器经由所述通用时序数据库适配器微服务模块将所述查询和保存结果返回至所述业务系统。

另一方面,本发明实施例提供了一种适配多种时序数据库的微服务的装置,包括:通用时序数据库适配器微服务模块,用于提供通用时序数据库适配器微服务;多个微服务模块,用于提供所述多种时序数据库的不同微服务,每个微服务模块具有微服务接口,所述每个微服务模块经由所述微服务接口与所述通用时序数据库适配器微服务模块集成;选择模块,用于从所述多种连接器中选择一个连接器;以及连接模块,用于将所述多种时序数据库中的特定时序数据库经由选择的连接器与所述多个微服务模块中对应于所述特定时序数据库的微服务模块连接,其中,所述多种连接器包括TCP方式的连接器、HTTP方式的连接器和Hikari连接池方式的连接器。

基于上述装置的进一步改进,所述多种时序数据库包括:ElasticSearch时序数据库、InfluxDB时序数据库和ClickHouse时序数据库;以及所述多个微服务模块包括:ElasticSearch时序数据库微服务模块,与所述ElasticSearch时序数据库相对应;InfluxDB时序数据库微服务模块,与所述InfluxDB时序数据库相对应;以及ClickHouse时序数据库微服务模块,与所述ClickHouse时序数据库相对应。

与现有技术相比,本发明至少可实现如下有益效果之一:

1、通过通用时序数据库适配器微服务模块适配不同类型的时序数据库,将业务系统与时序数据库的连接透明化。

2、通过提供通用的查询与保存接口,从而能够经由通用时序数据库适配器微服务模块对多种时序数据库进行查询和保存操作。

3、用户无需关注时序数据库类型,只需基于通用时序数据库适配器微服务模块进行业务开发。

本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为根据本发明的具体实例的适配多种时序数据库的微服务的方法的流程图。

图2为根据本发明实施例的适配多种时序数据库的微服务的方法的流程图。

图3为根据本发明具体实例的适配多种时序数据库的微服务的装置的框图。

图4为根据本发明具体实例的适配多种时序数据库的微服务的装置的结构图。

图5为根据本发明实施例的适配多种时序数据库的微服务的装置的框图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。

本发明的一个具体实施例,公开了一种适配多种时序数据库的微服务的方法。参考图2,适配多种时序数据库的微服务的方法包括:步骤202,提供通用时序数据库适配器微服务模块;步骤204,提供多种时序数据库的多个微服务模块,其中,每个微服务模块具有微服务接口,每个微服务模块经由微服务接口与通用时序数据库适配器微服务模块集成;以及步骤206,从多种连接器中选择一个连接器,并将多种时序数据库中的特定时序数据库经由选择的连接器与多个微服务模块中对应于特定时序数据库的微服务模块连接,其中,多种连接器包括TCP方式的连接器、HTTP方式的连接器和Hikari连接池方式的连接器。

与现有技术相比,本实施例提供的适配多种时序数据库的微服务的方法,通过通用时序数据库适配器微服务模块适配不同类型的时序数据库,将业务系统与时序数据库的连接透明化。

下文中,参考图2,分别对适配多种时序数据库的微服务的方法中的步骤202、步骤204和步骤206进行详细描述。

步骤202,提供通用时序数据库适配器微服务模块。参考图4,通用时序数据库适配器微服务模块设置有服务发现与注册中心模块,服务发现与注册中心模块用于:对多种时序数据库进行注册以将多个微服务模块与通用时序数据库适配器微服务模块集成在同一微服务环境中;以及对一种或多种业务系统进行注册,以将一种或多种业务系统的微服务模块与通用时序数据库适配器微服务模块连接。例如,一种或多种业务系统可以为园区业务系统、工厂业务系统或城市业务系统。这些业务系统经由服务发现与注册中心模块进行注册,然后将业务系统使用的时序数据库经由服务发现与注册中心模块进行注册,以能够将注册的业务系统与业务系统使用的时序数据库连接。经由通用服务接口将业务系统与通用时序数据库适配器微服务模块连接,其中,经由通用服务接口从业务系统接收查询和保存指令;以及经由通用服务接口将查询和保存结果返回至业务系统。

步骤204,提供多种时序数据库的多个微服务模块,其中,每个微服务模块具有微服务接口,每个微服务模块经由微服务接口与通用时序数据库适配器微服务模块集成。该微服务接口包括查询和保存接口以及返回查询/保存结果。具体地,参考图3,多种时序数据库包括:ElasticSearch时序数据库、InfluxDB时序数据库和ClickHouse时序数据库等。多个微服务模块包括:ElasticSearch时序数据库微服务模块,与ElasticSearch时序数据库相对应;InfluxDB时序数据库微服务模块,与InfluxDB时序数据库相对应;ClickHouse时序数据库微服务模块,与ClickHouse时序数据库相对应;和其他时序数据库微服务模块,与其他时序数据库相对应。

步骤206,从多种连接器中选择一个连接器,并将多种时序数据库中的特定时序数据库经由选择的连接器与多个微服务模块中对应于特定时序数据库的微服务模块连接,其中,多种连接器包括TCP方式的连接器、HTTP方式的连接器和Hikari连接池方式的连接器。具体地,可以根据时序数据库的特性从多种连接器中选择一个连接器,并将特定时序数据库经由选择的连接器与多个微服务模块中对应于特定时序数据库的微服务模块连接包括:从多种连接器中选择TCP连接器并通过TCP连接器将ElasticSearch时序数据库微服务模块与ElasticSearch时序数据库连接。例如,ElasticSearch时序数据库存储有动态建表数据并其本身具有TCP方式的连接器或HTTP方式的连接器,但是通过TCP连接器使得对ElasticSearch时序数据库的访问简单高效,所以选择TCP方式的连接器。从多种连接器中选择HTTP连接器并通过HTTP连接器将InfluxDB时序数据库微服务模块与InfluxDB时序数据库连接。例如,InfluxDB时序数据库自身仅具有HTTP连接器,所以选择该HTTP连接器。从多种连接器中选择Hikari连接池连接器并通过Hikari连接池连接器将ClickHouse时序数据库微服务模块与ClickHouse时序数据库连接。例如,ClickHouse时序数据库包括TCP方式的连接器、HTTP方式的连接器和Hikari连接池方式的连接器。Hikari连接池方式适用于大型时序数据库。从TCP方式的连接器、HTTP方式的连接器和Hikari连接池方式的连接器选择Hikari连接池方式的连接器,以适用于大型时序数据库。

参考图3,在经由通用服务接口调用查询和保存指令时,将通过通用服务接口接收到的用户指定需要使用的特定时序数据库作为参数,通用时序数据库适配器微服务模块通过参数识别特定时序数据库。在调用查询和保存指令时,还包括以下步骤:通用时序数据库适配器微服务模块根据参数,在内存中构建与特定时序数据库相对应的数据结构并使用多种连接器中的与特定时序数据库相对应的连接器与特定时序数据库进行交互;以及使用多种连接器中的与特定时序数据库相对应的连接器经由通用时序数据库适配器微服务模块将查询和保存结果返回至业务系统。具体地,当参数指定ElasticSearch时序数据库时,在内存中构建与ElasticSearch时序数据库相对应的数据结构并使用TCP连接器与ElasticSearch时序数据库进行交互,并使用TCP连接器经由通用时序数据库适配器微服务模块将查询和保存结果返回至业务系统;当参数指定InfluxDB时序数据库时,在内存中构建与InfluxDB时序数据库相对应的数据结构并使用HTTP连接器与InfluxDB时序数据库进行交互,并使用HTTP连接器经由通用时序数据库适配器微服务模块将查询和保存结果返回至业务系统;以及当参数指定ClickHouse时序数据库时,在内存中构建与ClickHouse时序数据库相对应的数据结构并使用Hikari连接池方式的连接器与InfluxDB时序数据库进行交互,并使用Hikari连接池方式的连接器经由通用时序数据库适配器微服务模块将查询和保存结果返回至业务系统。

本发明的一个具体实施例,公开了一种适配多种时序数据库的微服务的装置。参考图5,适配多种时序数据库的微服务的装置包括:通用时序数据库适配器微服务模块502,用于提供通用时序数据库适配器微服务;多个微服务模块504,用于提供多种时序数据库的不同微服务,每个微服务模块具有微服务接口,每个微服务模块经由微服务接口与通用时序数据库适配器微服务模块集成,使得多种时序数据库经由独立的微服务接口与通用时序数据库适配器微服务模块集成;选择模块506,用于从多种连接器中选择一个连接器;以及连接模块508,用于将多种时序数据库中特定时序数据库经由选择的连接器与多个微服务模块中对应于特定时序数据库的微服务模块连接,其中,多种连接器包括TCP方式的连接器、HTTP方式的连接器和Hikari连接池方式的连接器。多种时序数据库包括:ElasticSearch时序数据库、InfluxDB时序数据库和ClickHouse时序数据库;以及多个微服务模块包括:ElasticSearch时序数据库微服务模块,与ElasticSearch时序数据库相对应;InfluxDB时序数据库微服务模块,与InfluxDB时序数据库相对应;以及ClickHouse时序数据库微服务模块,与ClickHouse时序数据库相对应。

不同种类型的时序数据库会有不同的侧重点:压缩比、运维支持、扩展性、性能、聚合计算能力等等。例如:InfluxDB和Clickhouse在数据压缩比方面有很好的优化;Clickhouse比较方便运维管理;ElasticSearch和Clickhouse在扩展性、性能及聚合计算能力方面有突出的表现。

本申请主要通过实现一个适配器以适配不同类型的时序数据库,将与时序数据库的连接透明化。Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎Apache Lucene(TM)基础上的搜索引擎。当然Elasticsearch并不仅仅是Lucene那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。实时分析的分布式搜索引擎。可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Clickhouse时序数据库是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS)。

下文中,参考图1、图3和图4,以具体实例的方式对适配多种时序数据库的微服务的方法进行详细描述。其基本思路是:基于Java构建一个通用的时序数据库适配器微服务后,针对不同类型的时序数据库分别开发不同的微服务并实现通用时序数据库适配器微服务中的查询与保存接口。当开发者需要使用不同种类型的时序数据库时,只需针对通用的时序数据库适配器提供的接口进行开发,极大减少开发成本。最后按需将通用时序数据库适配器微服务与使用到的时序数据库实现微服务集成至同一个微服务环境中即可。

在步骤110中,通过基于Java开发一个通用的时序数据库适配器微服务,其中,所有微服务都是基于SpringCloud体系,服务注册与发现中心使用的是Eureka,时序数据库适配器微服务中会提供基于RestfulAPI的通用查询与保存接口。

在步骤120中,针对不同类型的时序数据库开发不同的微服务,并实现通用时序数据库适配器微服务中提供的查询与保存接口,其中,ElasticSearch时序数据库微服务会使用ElasticSearch官方提供的jar包去实现时序数据库适配器微服务中所定义的查询与保存接口,首先以单例模式创建一个与ElasticSearch的连接器,当有查询或保存接口被调用时,会在内存中构建其数据结构,并使用连接器与ElasticSearch交互;InfluxDB时序数据库微服务也会使用influxDB官方提供的jar包去实现时序数据库适配器微服务中所定义的查询与保存接口,当有查询或保存接口被调用时,先使用官方提供的工厂类创建一个与InfluxDB的连接器,然后在内存中构建其数据结构后使用连接器与InfluxDB交互;ClickHouse时序数据库微服务使用连接池的方式结合官方提供的jar包提供JDBC连接模式,当有查询或保存接口被调用时,会在内存中构建其数据结构并以JDBC的方式与Clickhouse交互。JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

不同类型的时序数据库实现微服务开发主要处理流程是:根据不同类型的时序数据库选择不同的连接方式并建立连接,其中ElaticSearch使用官方提供的TransportClient类以TCP的方式(TCP协议全称:传输控制协议)与ElasticSearch建立连接;InfluxDB使用官方提供的InfluxDBFactory类以HTTP(HTTP协议即超文本传输协议)的方式与InfluxDB建立连接;Clickhouse使用官方提供的JDBC包以Hikari连接池(Hikari是一款非常强大,高效,并且号称“史上最快连接池”)的方式连接Clickhouse。当开发者在调用通用的查询或保存接口时,会指定一个需要使用的时序数据库作为参数,时序数据库适配器微服务通过该参数来识别使用何种数据库;根据步骤110中建立的微服务所提供的通用查询与保存接口提供对应的实现。

根据步骤120的操作后会生成多个不同类型的时序数据库实现微服务(微服务是不同类型数据库的查询和保存)。

在步骤130中,按需将通用时序数据库适配器微服务与不同种类型的时序数据库实现微服务集成至同一个微服务环境,其中,所涉及的微服务均是基于SpringCloud的微服务体系开发,在搭建微服务环境时,首先需要启动服务注册与发现中心,然后启动通用时序数据库适配器微服务,这样可以构建出一个基本的微服务环境。当开发人员在使用时可以根据所面临的业务场景结合步骤120所生成的微服务,选择需要的时序数据库实现微服务与通用时序数据库适配器微服务集成至同一个微服务环境中。

在步骤140中,部署集成后的微服务环境,其中,当开发人员根据通用的时序数据库适配器接口开发完成后,结合步骤130中生成的微服务一同部署即可使用。

开发人员在使用通用时序数据库适配器微服务时是基于SpringCloud微服务体系的,所以开发人员自己所开发的业务代码也必须作为一个微服务。当开发人员自己的微服务开发完毕并需要提供给用户使用时,必须将开发人员所开发的微服务与通用时序数据库适配器微服务集成至同一个微服务环境才能使用。这里并不是时序数据库类型更新,而是说明在开发人员基于通用时序数据库适配器微服务开发完毕后如何提供给用户使用。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

相关技术
  • 一种适配多种时序数据库的微服务的方法和装置
  • 一种跨云适配的微服务管理方法、装置和存储介质
技术分类

06120112553867