一种分布式客户端与开务数据库的连接方法与流程

未命名 08-14 阅读:113 评论:0


1.本发明公开一种连接方法,涉及数据库连接技术领域,具体地说是一种分布式客户端与开务数据库的连接方法。


背景技术:

2.开务数据库是一种分布式多模数据库,其自主研发的原生分布式存储引擎,支持多种存储引擎和完整的数据库事务acid特性,且支持postgresql协议访问。开务数据库作为一种新型数据库具备多模式(multi-model)数据管理和存储能力,能满足应用程序对结构化、半结构化和非结构化数据的统一管理要求。
3.现代数据库已有多种数据库连接技术,如odbc和jdbc等,其中odbc(开放式数据库互连)是一种实现应用程序和关系数据库之间通讯的接口标准,只要符合标准的数据库即可通过sql命令对数据库进行操作,只针对关系数据库;jdbc(java database connectivity)是一组java语言编写的用于数据库连接和操作的类和接口,可为多种关系型数据库提供统一的访问方式,其定义了客户端如何访问数据库。
4.上述数据库连接技术,虽然可支持已有标准数据库的连接,但不能满足开务数据库多种不同数据引擎连接需求,不能实现分布式客户端对开务数据库的多模连接的支持,以及分布式客户端对开务数据库的定向重连到指定服务节点功能的支持,从而更好地满足分布式客户端对开务数据库多模连接的自适应性能力。


技术实现要素:

5.本发明针对现有技术的问题,提供一种分布式客户端与开务数据库的连接方法,提高了分布式数据库客户端建立连接时的自适应性,同时保证了其与数据库成功连接的稳定性。
6.本发明提出的具体方案是:
7.本发明提供一种分布式客户端与开务数据库的连接方法,基于pgjdbc开源驱动程序,对分布式客户端与开务数据库连接的接口扩展连接属性参数和返回值属性参数,并构建开务数据库驱动程序kwjdbc,
8.进行多模连接:基于kwjdbc,通过分布式客户端根据不同的连接属性参数,相应连接不同开务数据库服务节点;
9.进行定向重连:基于kwjdbc,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接。
10.进一步,所述的一种分布式客户端与开务数据库的连接方法中所述构建开务数据库驱动程序kwjdbc,包括:
11.建立分布式客户端与开务数据库连接时,扩展url链接信息中连接属性参数,
12.修改获取连接属性参数的函数方法,使所述函数方法在初始化连接时,加载获取所述连接属性参数,
13.扩展消息协议中消息类型,修改解析消息内容的函数对所述消息类型对应的消息内容进行协议解析处理,根据解析后消息内容与开务数据库服务节点连接,
14.连接成功后,扩展properties属性对象支持获取返回值属性参数,并配置相关出参函数用于将返回值属性参数返回给分布式客户端。
15.进一步,所述的一种分布式客户端与开务数据库的连接方法中进行多模连接时,通过分布式客户端根据不同的连接属性参数与不同开务数据库服务节点建立通信连接,通过分布式客户端记录并维持当前连接信息到connectioninfo对象中,调用分布式客户端不同功能的接口,通过分布式客户端自主选择需要进行信息交互的数据引擎。
16.进一步,所述的一种分布式客户端与开务数据库的连接方法中所述进行多模连接,包括:
17.通过分布式客户端与开务数据库服务节点进行连接,
18.通过分布式客户端根据properties属性中设定的mode值以及返回值属性参数中是否包含其他开务数据库服务节点的url链接信息,决定是否与其他开务数据库服务节点连接,是则继续创建连接,记录新的连接信息并返回新的连接信息的connection对象给用户,否则直接返回已有连接信息的connection对象给用户。
19.进一步,所述的一种分布式客户端与开务数据库的连接方法中所述进行定向重连,包括:
20.通过分布式客户端与开务数据库服务节点建立连接,若开务数据库服务端判断开务数据库服务节点中存在问题节点,则返回给分布式客户端指定的url链接信息,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接,并在重新创建连接后,将指定的url链接信息更新到connectioninfo对象中。
21.本发明还提供一种分布式客户端与开务数据库的连接装置,包括驱动模块和连接模块,
22.驱动模块基于pgjdbc开源驱动程序,对分布式客户端与开务数据库连接的接口扩展连接属性参数和返回值属性参数,并构建开务数据库驱动程序kwjdbc,
23.连接模块进行多模连接:基于kwjdbc,通过分布式客户端根据不同的连接属性参数,相应连接不同开务数据库服务节点;
24.连接模块进行定向重连:基于kwjdbc,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接。
25.进一步,所述的一种分布式客户端与开务数据库的连接装置中所述驱动模块构建开务数据库驱动程序kwjdbc,包括:
26.建立分布式客户端与开务数据库连接时,扩展url链接信息中连接属性参数,
27.修改获取连接属性参数的函数方法,使所述函数方法在初始化连接时,加载获取所述连接属性参数,
28.扩展消息协议中消息类型,修改解析消息内容的函数对所述消息类型对应的消息内容进行协议解析处理,根据解析后消息内容与开务数据库服务节点连接,
29.连接成功后,扩展properties属性对象支持获取返回值属性参数,并配置相关出参函数用于将返回值属性参数返回给分布式客户端。
30.进一步,所述的一种分布式客户端与开务数据库的连接装置中连接模块进行多模
连接时,通过分布式客户端根据不同的连接属性参数与不同开务数据库服务节点建立通信连接,通过分布式客户端记录并维持当前连接信息到connectioninfo对象中,调用分布式客户端不同功能的接口,通过分布式客户端自主选择需要进行信息交互的数据引擎。
31.进一步,所述的一种分布式客户端与开务数据库的连接装置中所述连接模块进行多模连接,包括:
32.通过分布式客户端与开务数据库服务节点进行连接,
33.通过分布式客户端根据properties属性中设定的mode值以及返回值属性参数中是否包含其他开务数据库服务节点的url链接信息,决定是否与其他开务数据库服务节点连接,是则继续创建连接,记录新的连接信息并返回新的连接信息的connection对象给用户,否则直接返回已有连接信息的connection对象给用户。
34.进一步,所述的一种分布式客户端与开务数据库的连接装置中所述连接模块进行定向重连,包括:
35.通过分布式客户端与开务数据库服务节点建立连接,若开务数据库服务端判断开务数据库服务节点中存在问题节点,则返回给分布式客户端指定的url链接信息,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接,并在重新创建连接后,将指定的url链接信息更新到connectioninfo对象中。
36.本发明的有益之处是:
37.本发明提供一种分布式客户端与开务数据库的连接方法,通过kwjdbc对连接属性参数的支持、连接后对返回属性参数的解析,以及客户端连接逻辑的扩展,实现分布式客户端与开务数据库连接,解决现有连接驱动不能支持满足与多模数据库建立连接的弊端;让用户使用分布式客户端完成与新型数据库多种不同数据引擎之间连接创建,以及连接成功后自主决策是否需要主动断开当前连接,重新定向连接到其他服务节点;从而提高分布式数据库客户端与开务数据库服务端进行多模连接时的自适应性能力,并更好地适配多种不同的应用场景。
附图说明
38.图1是本发明方法应用架构示意图。
39.图2是本发明方法使用kwjdbc建立连接示意图。
40.图3是本发明方法中分布式客户端建立多模连接和定向重连流程图。
具体实施方式
41.数据库多模连接是一种重要的数据库自适应连接技术,可用于保证客户端与分布式数据库中多种存储引擎的连接支持,以及在建立连接后,根据反馈结果重定向连接到指定节点的支持;从而,使客户端更好地适应并支持开务数据库的多模式数据管理的特性。
42.pgjdbc是一个用pure java(type 4)编写的开源jdbc驱动程序,并使用postgresql本机网络协议进行通信,其允许java程序使用标准的、独立于数据库的java代码连接到postgresql数据库。
43.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
44.本发明提供一种分布式客户端与开务数据库的连接方法,基于pgjdbc开源驱动程序,对分布式客户端与开务数据库连接的接口扩展连接属性参数和返回值属性参数,并构建开务数据库驱动程序kwjdbc,
45.进行多模连接:基于kwjdbc,通过分布式客户端根据不同的连接属性参数,相应连接不同开务数据库服务节点;
46.进行定向重连:基于kwjdbc,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接。
47.本发明方法构建开务数据库驱动程序kwjdbc,使客户端与分布式数据库进行连接时,同时连接多个不同服务端的物理节点或虚拟节点,客户端通过url链接信息进行定向连接,连接成功后可以解析服务端反馈的结果,并决定是否关闭当前连接,重新定向连接到服务端指定的其他服务节点上,以及是否需要继续连接其他数据库服务节点等。本发明方法提高了分布式数据库客户端建立连接时的自适应性,同时保证了其与数据库成功连接的稳定性。
48.具体应用中,在本发明方法的一些实施例中,基于本发明方法的技术方案,过程可参考如下:
49.步骤1:基于pgjdbc开源驱动程序,对分布式客户端与开务数据库连接的接口扩展连接属性参数和返回值属性参数,并构建开务数据库驱动程序kwjdbc。其中pgjdbc是基于java的开源数据库连接驱动程序,支持使用postgresql协议进行网络通信,而postgresql协议是基于tcp/ip协议基础上实现的通信协议,支持在unix域套接字上使用该协议;该驱动程序是平台独立的,一旦编译完成,即可在任何系统上使用。
50.而kwjdbc驱动程序则是基于pgjdbc开源驱动程序扩展实现的,并作为客户端与开务数据库之间最基本的、且不可缺少的消息通讯桥梁,实现客户端通过kwjdbc对开务数据库的操作及使用。
51.进一步,所述构建开务数据库驱动程序kwjdbc,包括:
52.步骤11:建立分布式客户端与开务数据库连接时,扩展url链接信息中连接属性参数,所述连接属性参数具体包含:instance、tenant、portal、mode、conn_id、shm_key、ts_url_expect、ai_url_expect、graph_url_expect、spa_url_expect等参数;
53.步骤12:修改获取连接属性参数的函数方法,使所述函数方法在初始化连接时,加载获取所述连接属性参数,其中修改connectionfactoryimpl类中getparametersforstartup函数方法,使其在初始化连接时,可对所述连接属性参数进行加载获取;
54.步骤13:扩展消息协议中消息类型,修改解析消息内容的函数对所述消息类型对应的消息内容进行协议解析处理,根据解析后消息内容与开务数据库服务节点连接,其中扩展消息类型时,修改queryexecutorimpl类中的readstartupmessages函数方法,增加对新的消息类型的协议解析处理,使其能够按照约定的消息协议格式对消息内容进行解析,从而与开务数据库成功进行连接;
55.步骤14:连接成功后,扩展properties属性对象支持获取返回值属性参数,并配置相关出参函数用于将返回值属性参数返回给分布式客户端,其中扩展支持properties属性对象中返回参数信息,修改dirver类中connect函数方法,并增加setpropertiestoinfo函
数方法,目的是将开务数据库服务端返回的属性,全部遍历设置到properties对象中,以出参的形式返回给客户端。
56.步骤2:进行多模连接时,通过分布式客户端根据不同的连接属性参数与不同开务数据库服务节点建立通信连接,通过分布式客户端记录并维持当前连接信息到connectioninfo对象中,当用户调用分布式客户端不同功能的接口,通过分布式客户端自主选择需要进行信息交互的数据引擎。
57.进一步,步骤2中,包括:
58.步骤21:通过分布式客户端与开务数据库服务节点进行连接,其中分布式客户端通过用户指定的url链接信息和properties属性,与开务数据库的服务节点进行连接;
59.步骤22:通过分布式客户端根据properties属性中设定的mode值以及返回值属性参数中是否包含其他开务数据库服务节点的url链接信息,决定是否与其他开务数据库服务节点连接,是则继续创建连接,记录新的连接信息并返回新的连接信息的connection对象给用户,否则直接返回已有连接信息的connection对象给用户,其中分布式客户端多模连接参数mode值的设定如下:mode_kwdb=1、mode_ts=1《《1、mode_ai=1《《2、mode_graph=1《《3、mode_spa=1《《4;而mode的取值方法如:mode=mode_kwdb|mode_ts。
60.步骤3:进行定向重连,包括:
61.通过分布式客户端与开务数据库服务节点建立连接,若开务数据库服务端判断开务数据库服务节点中存在问题节点,则返回给分布式客户端指定的url链接信息,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接,并在重新创建连接后,将指定的url链接信息更新到connectioninfo对象中。其中问题节点可能是数据库服务集群中某一失效的、存在问题的或负载压力过大的服务节点。
62.除上述实施例外,在本发明方法的另一些实施例中若涉及其他流程可参考附图3的进一步说明。
63.本发明还提供一种分布式客户端与开务数据库的连接装置,包括驱动模块和连接模块,
64.驱动模块基于pgjdbc开源驱动程序,对分布式客户端与开务数据库连接的接口扩展连接属性参数和返回值属性参数,并构建开务数据库驱动程序kwjdbc,
65.连接模块进行多模连接:基于kwjdbc,通过分布式客户端根据不同的连接属性参数,相应连接不同开务数据库服务节点;
66.连接模块进行定向重连:基于kwjdbc,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接。
67.上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
68.同样地,本发明装置可以通过kwjdbc对连接属性参数的支持、连接后对返回属性参数的解析,以及客户端连接逻辑的扩展,实现分布式客户端与开务数据库连接,解决现有连接驱动不能支持满足与多模数据库建立连接的弊端;让用户使用分布式客户端完成与新型数据库多种不同数据引擎之间连接创建,以及连接成功后自主决策是否需要主动断开当前连接,重新定向连接到其他服务节点;从而提高分布式数据库客户端与开务数据库服务端进行多模连接时的自适应性能力,并更好地适配多种不同的应用场景。
69.需要说明的是,上述各流程和各装置结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
70.以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

技术特征:
1.一种分布式客户端与开务数据库的连接方法,其特征是基于pgjdbc开源驱动程序,对分布式客户端与开务数据库连接的接口扩展连接属性参数和返回值属性参数,并构建开务数据库驱动程序kwjdbc,进行多模连接:基于kwjdbc,通过分布式客户端根据不同的连接属性参数,相应连接不同开务数据库服务节点;进行定向重连:基于kwjdbc,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接。2.根据权利要求1所述的一种分布式客户端与开务数据库的连接方法,其特征是所述构建开务数据库驱动程序kwjdbc,包括:建立分布式客户端与开务数据库连接时,扩展url链接信息中连接属性参数,修改获取连接属性参数的函数方法,使所述函数方法在初始化连接时,加载获取所述连接属性参数,扩展消息协议中消息类型,修改解析消息内容的函数对所述消息类型对应的消息内容进行协议解析处理,根据解析后消息内容与开务数据库服务节点连接,连接成功后,扩展properties属性对象支持获取返回值属性参数,并配置相关出参函数用于将返回值属性参数返回给分布式客户端。3.根据权利要求1所述的一种分布式客户端与开务数据库的连接方法,其特征是进行多模连接时,通过分布式客户端根据不同的连接属性参数与不同开务数据库服务节点建立通信连接,通过分布式客户端记录并维持当前连接信息到connectioninfo对象中,调用分布式客户端不同功能的接口,通过分布式客户端自主选择需要进行信息交互的数据引擎。4.根据权利要求1所述的一种分布式客户端与开务数据库的连接方法,其特征是所述进行多模连接,包括:通过分布式客户端与开务数据库服务节点进行连接,通过分布式客户端根据properties属性中设定的mode值以及返回值属性参数中是否包含其他开务数据库服务节点的url链接信息,决定是否与其他开务数据库服务节点连接,是则继续创建连接,记录新的连接信息并返回新的连接信息的connection对象给用户,否则直接返回已有连接信息的connection对象给用户。5.根据权利要求1所述的一种分布式客户端与开务数据库的连接方法,其特征是所述进行定向重连,包括:通过分布式客户端与开务数据库服务节点建立连接,若开务数据库服务端判断开务数据库服务节点中存在问题节点,则返回给分布式客户端指定的url链接信息,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接,并在重新创建连接后,将指定的url链接信息更新到connectioninfo对象中。6.一种分布式客户端与开务数据库的连接装置,其特征是包括驱动模块和连接模块,驱动模块基于pgjdbc开源驱动程序,对分布式客户端与开务数据库连接的接口扩展连接属性参数和返回值属性参数,并构建开务数据库驱动程序kwjdbc,连接模块进行多模连接:基于kwjdbc,通过分布式客户端根据不同的连接属性参数,相应连接不同开务数据库服务节点;连接模块进行定向重连:基于kwjdbc,通过分布式客户端自主判断是否断开当前连接,
根据指定的url链接信息与开务数据库服务节点连接。7.根据权利要求6所述的一种分布式客户端与开务数据库的连接装置,其特征是所述驱动模块构建开务数据库驱动程序kwjdbc,包括:建立分布式客户端与开务数据库连接时,扩展url链接信息中连接属性参数,修改获取连接属性参数的函数方法,使所述函数方法在初始化连接时,加载获取所述连接属性参数,扩展消息协议中消息类型,修改解析消息内容的函数对所述消息类型对应的消息内容进行协议解析处理,根据解析后消息内容与开务数据库服务节点连接,连接成功后,扩展properties属性对象支持获取返回值属性参数,并配置相关出参函数用于将返回值属性参数返回给分布式客户端。8.根据权利要求6所述的一种分布式客户端与开务数据库的连接装置,其特征是连接模块进行多模连接时,通过分布式客户端根据不同的连接属性参数与不同开务数据库服务节点建立通信连接,通过分布式客户端记录并维持当前连接信息到connectioninfo对象中,调用分布式客户端不同功能的接口,通过分布式客户端自主选择需要进行信息交互的数据引擎。9.根据权利要求5所述的一种分布式客户端与开务数据库的连接装置,其特征是所述连接模块进行多模连接,包括:通过分布式客户端与开务数据库服务节点进行连接,通过分布式客户端根据properties属性中设定的mode值以及返回值属性参数中是否包含其他开务数据库服务节点的url链接信息,决定是否与其他开务数据库服务节点连接,是则继续创建连接,记录新的连接信息并返回新的连接信息的connection对象给用户,否则直接返回已有连接信息的connection对象给用户。10.根据权利要求6所述的一种分布式客户端与开务数据库的连接装置,其特征是所述连接模块进行定向重连,包括:通过分布式客户端与开务数据库服务节点建立连接,若开务数据库服务端判断开务数据库服务节点中存在问题节点,则返回给分布式客户端指定的url链接信息,通过分布式客户端自主判断是否断开当前连接,根据指定的url链接信息与开务数据库服务节点连接,并在重新创建连接后,将指定的url链接信息更新到connectioninfo对象中。

技术总结
本发明公开一种分布式客户端与开务数据库的连接方法,涉及数据库连接技术领域;基于PgJDBC开源驱动程序,对分布式客户端与开务数据库连接的接口扩展连接属性参数和返回值属性参数,并构建开务数据库驱动程序KWJDBC,进行多模连接:基于KWJDBC,通过分布式客户端根据不同的连接属性参数,相应连接不同开务数据库服务节点;进行定向重连:基于KWJDBC,通过分布式客户端自主判断是否断开当前连接,根据指定的URL链接信息与开务数据库服务节点连接。定的URL链接信息与开务数据库服务节点连接。定的URL链接信息与开务数据库服务节点连接。


技术研发人员:刘嘉利 俞钺 王浩之
受保护的技术使用者:上海沄熹科技有限公司
技术研发日:2023.05.06
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐