1.本技术涉及数据库技术领域,具体而言,涉及一种基于mycat的配置文件自动调整方法及系统。
背景技术:2.目前,mycat是通过手动对配置文件进行配置的方式来进行任务的新建和修改工作的。众所周知,该任务的配置工作量非常大,手动配置又很容易出现差错,从而使得公司的数据出现不必要异常,进而影响公司的业务。
技术实现要素:3.本技术实施例的目的在于提供一种基于mycat的配置文件自动调整方法及系统,能够对任务进行自动化地新建与修改,从而能够避免由于手工误操作而导致的数据异常问题。
4.本技术实施例第一方面提供了一种基于mycat的配置文件自动调整方法,包括:
5.读取mycat的xml原始配置文件;
6.基于预设的解析库类,对所述xml原始配置文件进行解析与web化处理,得到web化配置内容;
7.显示所述web化配置内容,并检测用户对所述web化配置内容的修改;
8.基于所述修改和所述web化配置内容,得到web化修改内容;
9.将所述web化修改内容转换为xml修改配置文件。
10.在上述实施过程中,该方法可以优先读取mycat的xml原始配置文件;然后基于预设的解析库类,对xml原始配置文件进行解析,再对解析得到的结果进行web可视化处理,得到web化配置内容,以使用户可以之间看到显示出来的web化配置内容。在此之后,该方法可以实时检测用户对web化配置内容的修改,并在用户进行了修改之后记录修改后的web内容,然后再将修改后的web内容转换为xml修改配置文件,从而完成对mycat的xml配置文件的修改,进而避免了以往于底层对xml配置文件的手动修改,有利于降低整体人力成本,也有利于减少误操作所带来的数据异常问题。
11.进一步地,所述方法还包括:
12.检测当前环境下的编程语言;
13.基于所述编程语言,搜索用于解析所述xml原始配置文件的解析库类。
14.进一步地,所述基于预设的解析库类,对所述xml原始配置文件进行解析与web化处理,得到web化配置内容的步骤包括:
15.基于预设的解析库类,对所述xml原始配置文件进行解析,得到xml解析文件;
16.基于所述xml解析文件,获取schema.xml的schema配置信息;
17.基于所述xml解析文件,获取rule.xml的rule配置信息;
18.基于所述xml解析文件,获取server.xml的server配置信息;
19.基于测试环境,将所述schema配置信息、所述rule配置信息和所述server配置信息展示于vue框架下的web界面中,得到基于vue框架的web化配置内容。
20.进一步地,所述基于所述xml解析文件,获取schema.xml的schema配置信息的步骤包括:
21.基于所述xml解析文件、预设获取规则、预设获取名称、预设数据库实例和预设用户名密码组合,获取datanode配置信息;
22.基于所述xml解析文件,获取库表分片规则和datasource配置信息;
23.基于所述库表分片规则、所述datasource配置信息和所述datanode配置信息,生成schema.xml的schema配置信息。
24.进一步地,所述基于所述xml解析文件,获取rule.xml的rule配置信息的步骤包括:
25.基于所述xml解析文件中的表名和预设分表规则,获取rule.xml的rule配置信息。
26.本技术实施例第二方面提供了一种基于mycat的配置文件自动调整系统,所述基于mycat的配置文件自动调整系统包括:
27.读取单元,用于读取mycat的xml原始配置文件;
28.处理单元,用于基于预设的解析库类,对所述xml原始配置文件进行解析与web化处理,得到web化配置内容;
29.检测单元,用于显示所述web化配置内容,并检测用户对所述web化配置内容的修改;
30.生成单元,用于基于所述修改和所述web化配置内容,得到web化修改内容;
31.转换单元,用于将所述web化修改内容转换为xml修改配置文件。
32.在上述实施过程中,该系统可以优先读取mycat的xml原始配置文件;然后基于预设的解析库类,对xml原始配置文件进行解析,再对解析得到的结果进行web可视化处理,得到web化配置内容,以使用户可以之间看到显示出来的web化配置内容。在此之后,该系统可以实时检测用户对web化配置内容的修改,并在用户进行了修改之后记录修改后的web内容,然后再将修改后的web内容转换为xml修改配置文件,从而完成对mycat的xml配置文件的修改,进而避免了以往于底层对xml配置文件的手动修改,有利于降低整体人力成本,也有利于减少误操作所带来的数据异常问题。
33.进一步地,所述基于mycat的配置文件自动调整系统还包括:
34.检测单元,用于检测当前环境下的编程语言;
35.搜索单元,用于基于所述编程语言,搜索用于解析所述xml原始配置文件的解析库类。
36.进一步地,所述处理单元包括:
37.解析子单元,用于基于预设的解析库类,对所述xml原始配置文件进行解析,得到xml解析文件;
38.获取子单元,用于基于所述xml解析文件,获取schema.xml的schema配置信息;
39.所述获取子单元,还用于基于所述xml解析文件,获取rule.xml的rule配置信息;
40.所述获取子单元,还用于基于所述xml解析文件,获取server.xml的server配置信息;
41.展示子单元,用于展示基于测试环境,将所述schema配置信息、所述rule配置信息和所述server配置信息展示于vue框架下的web界面中,得到基于vue框架的web化配置内容。
42.本技术实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例第一方面中任一项所述的基于mycat的配置文件自动调整方法。
43.本技术实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例第一方面中任一项所述的基于mycat的配置文件自动调整方法。
附图说明
44.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
45.图1为本技术实施例提供的一种基于mycat的配置文件自动调整方法的流程示意图;
46.图2为本技术实施例提供的另一种基于mycat的配置文件自动调整方法的流程示意图;
47.图3为本技术实施例提供的一种基于mycat的配置文件自动调整系统的结构示意图;
48.图4为本技术实施例提供的另一种基于mycat的配置文件自动调整系统的结构示意图。
具体实施方式
49.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
50.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
51.实施例1
52.请参看图1,图1为本实施例提供了一种基于mycat的配置文件自动调整方法的流程示意图。其中,该基于mycat的配置文件自动调整方法包括:
53.s101、读取mycat的xml原始配置文件。
54.本实施例中,mycat是一个数据库中间件,是一种在架构体系中位于数据库和应用层之间的一个组件,并且对应用层是透明的。数据库是存储数据的容器,一般进行数据库分表的场景中,通常会使用中间件mycat作为中间件来支撑公司的核心业务。
55.在本实施例中,mycat的配置文件都以xml为主,主要包括schema.xml、rule.xml、server.xml三个配置文件。在实践当中,mycat的配置文件非常重要,并且配置或者修改是比较繁琐的事情且应用于核心业务场景。因此mycat配置文件可视化以及web化自动配置不
仅能带来人力成本的缩减,还能减少出错的概率,提升交付时间,支撑业务的稳定性和效率。
56.s102、基于预设的解析库类,对xml原始配置文件进行解析与web化处理,得到web化配置内容。
57.本实施例中,该方法可以把所有xml自动生产的配置信息展示给用户并在测试环境进行启动。为了保证配置文件的准确性,用户再进行确认,以保证配置正确。
58.s103、显示web化配置内容,并检测用户对web化配置内容的修改。
59.本实施例中,该方法可以通过web可视化的功能将信息显示出来,并使得用户可以对其进行修改。
60.s104、基于修改和web化配置内容,得到web化修改内容。
61.s105、将web化修改内容转换为xml修改配置文件。
62.本实施例中,该方法可以自动将修改后的内容转换成xml修改配置文件,从而使得该方法只需要设定好,便可以自动化生成结果,进而避免手工误操作带来的损耗。同时,采用该种方法,可以在发版时期,尽可能的避免配置调整错误,从而避免服务的中断时间增长。
63.本实施例中,目前现有技术mycat是通过手动配置配置文件的方式进行新建和修改任务,并且配置过程中的工作量非常大,容易出错,使得数据出现不必要的异常。比如一般datanode有几十个是非常正常的,如果某一行分片规则系错了,就可能导致数据写入/读取不到正确的分片库,进而造成业务的损失。然而,datanode是非常有规律的,当采用该种方式的时候,可以基于这种规律实现可视化显示和自动化调整,从而使之能够代替传统手工配置的操作。
64.可见,实施本实施例所描述的基于mycat的配置文件自动调整方法,该方法提出了一种对数据库中间件mycat的xml配置文件进行web可视化处理和自动配置管理的方法。具体的,该方法一方面可以结合现有的资源管理、配置规则等内容进行可视化显示,另一方面还可以基于可视化内容进行测试发布、验证配置文件的准确性以及校验用户连通性等操作,从而保证在所有节点都成功运转以后,再进行发布生产。可见,该方法能够有效地提升应用的交付效率和交付质量,从而确保数据库的稳定性,防止误操作带来的金额损耗。同时,可视化、自动化、数字化技术改造还可以保障业务的交付时效,并提升业务的稳定性。
65.实施例2
66.请参看图2,图2为本实施例提供了一种基于mycat的配置文件自动调整方法的流程示意图。其中,该基于mycat的配置文件自动调整方法包括:
67.s201、读取mycat的xml原始配置文件。
68.本实施例中,mycat是一个数据库中间件,是一种在架构体系中位于数据库和应用层之间的一个组件,并且对应用层是透明的。数据库是存储数据的容器,一般进行数据库分表的场景中,通常会使用中间件mycat作为中间件来支撑公司的核心业务。
69.在本实施例中,mycat的配置文件都以xml为主,主要包括schema.xml、rule.xml、server.xml三个配置文件。在实践当中,mycat的配置文件非常重要,并且配置或者修改是比较繁琐的事情且应用于核心业务场景。因此mycat配置文件可视化以及web化自动配置不仅能带来人力成本的缩减,还能减少出错的概率,提升交付时间,支撑业务的稳定性和效
率。
70.s202、检测当前环境下的编程语言。
71.本实施例中,该方法可以基于当前环境自动选择一种编程语言,比如php/python/go/java等,并以此搜索xml解析对应的库类。
72.s203、基于编程语言,搜索用于解析xml原始配置文件的解析库类。
73.s204、基于上述解析库类,对xml原始配置文件进行解析,得到xml解析文件。
74.本实施例中,xml原始配置文件都是node节点的形式展示,因此,该方法可以很方便地对其进行node的增减。同时,datanode中name,datahost、databases等规律性的配置文件或者datahost配置,也可以很简单的通过程序去实现调整,然后生产新的xml文件。
75.本实施例中,在需要对xml原始配置文件进行修改的时候,可以先把xml读取出来并进行解析,然后再进行web可视化显示。
76.s205、基于xml解析文件,获取schema.xml的schema配置信息。
77.本实施例中,schema.xml管理着mycat的逻辑库、表、分片规则、datanode以及datasource。
78.作为一种可选的实施方式,基于xml解析文件,获取schema.xml的schema配置信息的步骤包括:
79.基于xml解析文件、预设获取规则、预设获取名称、预设数据库实例和预设用户名密码组合,获取datanode配置信息;
80.基于xml解析文件,获取库表分片规则和datasource配置信息;
81.基于库表分片规则、datasource配置信息和datanode配置信息,生成schema.xml的schema配置信息。
82.本实施例中,datanode的name,datahost,database规则制定,制定好生成规则以后,该方法可以通过选择对应的规则或者填写对应的名称,以使该方法可以自动生成对应内容,同时还支持规则和名称的调整。
83.在本实施例中,datahost中hearbeat、writehost、readhost也可以支持通过获取已有的数据库实例和用户名密码进行配置的方式。
84.s206、基于xml解析文件,获取rule.xml的rule配置信息。
85.本实施例中,rule.xml中定义所有拆分表的规则,在使用过程中可以灵活的使用分片算法,或者对同一个分片使用不同的参数,让分片过程可配置化。
86.本实施例中,rule.xml配置的自动化,主要是可以自动获取表名,然后选择现有的分表规则,进行自动化选择,减少手动出错的可能性。
87.作为一种可选的实施方式,基于xml解析文件,获取rule.xml的rule配置信息的步骤包括:
88.基于xml解析文件中的表名和预设分表规则,获取rule.xml的rule配置信息。
89.s207、基于xml解析文件,获取server.xml的server配置信息。
90.本实施例中,server.xml保存了所有mycat需要的系统配置信息,主要是用户密码等连接串信息,服务端启动等信息。
91.本实施例中,server.xml文件的配置主要是系统用户或者启动端口之类的信息,也可以很方便的通过自动化配置下拉选择相关信息。
92.s208、基于测试环境,将schema配置信息、rule配置信息和server配置信息展示于vue框架下的web界面中,得到基于vue框架的web化配置内容。
93.本实施例中,前端可以使用比较常用的vue框架进行展示。
94.本实施例中,该方法可以把所有xml自动生产的配置信息展示给用户并在测试环境进行启动。为了保证配置文件的准确性,用户再进行确认,以保证配置正确。
95.s209、显示web化配置内容,并检测用户对web化配置内容的修改。
96.本实施例中,该方法可以通过web可视化的功能将信息显示出来,并使得用户可以对其进行修改。
97.s210、基于修改和web化配置内容,得到web化修改内容。
98.s211、将web化修改内容转换为xml修改配置文件。
99.本实施例中,该方法可以自动将修改后的内容转换成xml修改配置文件,从而使得该方法只需要设定好,便可以自动化生成结果,进而避免手工误操作带来的损耗。同时,采用该种方法,可以在发版时期,尽可能的避免配置调整错误,从而避免服务的中断时间增长。
100.本实施例中,目前现有技术mycat是通过手动配置配置文件的方式进行新建和修改任务,并且配置过程中的工作量非常大,容易出错,使得数据出现不必要的异常。比如一般datanode有几十个是非常正常的,如果某一行分片规则系错了,就可能导致数据写入/读取不到正确的分片库,进而造成业务的损失。然而,datanode是非常有规律的,当采用该种方式的时候,可以基于这种规律实现可视化显示和自动化调整,从而使之能够代替传统手工配置的操作。
101.可见,实施本实施例所描述的基于mycat的配置文件自动调整方法,该方法提出了一种对数据库中间件mycat的xml配置文件进行web可视化处理和自动配置管理的方法。具体的,该方法一方面可以结合现有的资源管理、配置规则等内容进行可视化显示,另一方面还可以基于可视化内容进行测试发布、验证配置文件的准确性以及校验用户连通性等操作,从而保证在所有节点都成功运转以后,再进行发布生产。可见,该方法能够有效地提升应用的交付效率和交付质量,从而确保数据库的稳定性,防止误操作带来的金额损耗。同时,可视化、自动化、数字化技术改造还可以保障业务的交付时效,并提升业务的稳定性。
102.实施例3
103.请参看图3,图3为本实施例提供的一种基于mycat的配置文件自动调整系统的结构示意图。如图3所示,该基于mycat的配置文件自动调整系统包括:
104.读取单元310,用于读取mycat的xml原始配置文件;
105.处理单元320,用于基于预设的解析库类,对xml原始配置文件进行解析与web化处理,得到web化配置内容;
106.检测单元330,用于显示web化配置内容,并检测用户对web化配置内容的修改;
107.生成单元340,用于基于修改和web化配置内容,得到web化修改内容;
108.转换单元350,用于将web化修改内容转换为xml修改配置文件。
109.本实施例中,对于基于mycat的配置文件自动调整系统的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
110.可见,实施本实施例所描述的基于mycat的配置文件自动调整系统,能够对数据库
中间件mycat的xml配置文件进行web可视化处理和自动配置管理。具体的,该系统一方面可以结合现有的资源管理、配置规则等内容进行可视化显示,另一方面还可以基于可视化内容进行测试发布、验证配置文件的准确性以及校验用户连通性等操作,从而保证在所有节点都成功运转以后,再进行发布生产。可见,该系统能够有效地提升应用的交付效率和交付质量,从而确保数据库的稳定性,防止误操作带来的金额损耗。同时,可视化、自动化、数字化技术改造还可以保障业务的交付时效,并提升业务的稳定性。
111.实施例4
112.请参看图4,图4为本实施例提供的一种基于mycat的配置文件自动调整系统的结构示意图。如图4所示,该基于mycat的配置文件自动调整系统还包括:
113.检测单元360,用于检测当前环境下的编程语言;
114.搜索单元370,用于基于编程语言,搜索用于解析xml原始配置文件的解析库类。
115.作为一种可选的实施方式,处理单元320包括:
116.解析子单元321,用于基于预设的解析库类,对xml原始配置文件进行解析,得到xml解析文件;
117.获取子单元322,用于基于xml解析文件,获取schema.xml的schema配置信息;
118.获取子单元322,还用于基于xml解析文件,获取rule.xml的rule配置信息;
119.获取子单元322,还用于基于xml解析文件,获取server.xml的server配置信息;
120.展示子单元323,用于展示基于测试环境,将schema配置信息、rule配置信息和server配置信息展示于vue框架下的web界面中,得到基于vue框架的web化配置内容。
121.作为一种可选的实施方式,获取子单元322具体用于基于xml解析文件、预设获取规则、预设获取名称、预设数据库实例和预设用户名密码组合,获取datanode配置信息;基于xml解析文件,获取库表分片规则和datasource配置信息;基于库表分片规则、datasource配置信息和datanode配置信息,生成schema.xml的schema配置信息。
122.作为一种可选的实施方式,获取子单元322具体还用于基于xml解析文件中的表名和预设分表规则,获取rule.xml的rule配置信息。
123.本实施例中,对于基于mycat的配置文件自动调整系统的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
124.可见,实施本实施例所描述的基于mycat的配置文件自动调整系统,能够对数据库中间件mycat的xml配置文件进行web可视化处理和自动配置管理。具体的,该系统一方面可以结合现有的资源管理、配置规则等内容进行可视化显示,另一方面还可以基于可视化内容进行测试发布、验证配置文件的准确性以及校验用户连通性等操作,从而保证在所有节点都成功运转以后,再进行发布生产。可见,该系统能够有效地提升应用的交付效率和交付质量,从而确保数据库的稳定性,防止误操作带来的金额损耗。同时,可视化、自动化、数字化技术改造还可以保障业务的交付时效,并提升业务的稳定性。
125.本技术实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例1或实施例2中的基于mycat的配置文件自动调整方法。
126.本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例1或实施例2中的基于mycat
的配置文件自动调整方法。
127.在本技术所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
128.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
129.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
130.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
131.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
132.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。