CN110187928A - Java集群配置项实时生效的方法、装置、设备和存储介质 - Google Patents
Java集群配置项实时生效的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110187928A CN110187928A CN201910340523.3A CN201910340523A CN110187928A CN 110187928 A CN110187928 A CN 110187928A CN 201910340523 A CN201910340523 A CN 201910340523A CN 110187928 A CN110187928 A CN 110187928A
- Authority
- CN
- China
- Prior art keywords
- configuration item
- configuration
- title
- static variable
- entry value
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明揭示了一种JAVA集群配置项实时生效的方法、装置、设备和存储介质,应用于JAVA集群系统,其中方法包括:查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值;创建与配置项数量相同的静态变量;建立配置项名称与静态变量对应的关联关系的映射表;根据映射表,将配置项名称对应的配置项值赋值给相应的静态变量。本发明旨在解决每次使用配置项都要根据配置项名称从缓存map中查找获取相应的配置项值,而耗费资源的技术问题。
Description
技术领域
本发明涉及到网络技术领域,特别是涉及到一种JAVA集群配置项实时生效的方法、装置、设备和存储介质。
背景技术
集群系统是由多台同构或异构的计算机连接起来协同完成特定的任务而构成的系统。JAVA集群应用系统是基于集群部署的JAVA应用系统。
通常配置JAVA集群的每台机器只有配置项发生修改的时候,才会更新缓存map中的值,大部分配置项修改并不频繁,即配置项在缓存map中的值更新也并不频繁,而使用到配置项的时候,每次都是根据配置项名称从缓存map中查找从而获取相应的配置项值,这样耗费了资源,效率低下。
发明内容
本发明的主要目的为提供一种JAVA集群配置项实时生效的方法、装置、设备和存储介质,旨在解决每次使用配置项都要根据配置项名称从缓存map中查找获取相应的配置项值,而耗费资源的技术问题。
为了实现上述发明目的,本发明提出一种JAVA集群配置项实时生效的方法,应用于JAVA集群系统,包括:
查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值;
创建与配置项数量相同的静态变量;
建立配置项名称与静态变量对应的关联关系的映射表;
根据映射表,将配置项名称对应的配置项值赋值给相应的静态变量。
进一步地,创建与配置项数量相同的静态变量的步骤中,包括:
将静态变量的数据类型属性定义为数字类型。
进一步地,将配置项名称对应的配置项值赋值给相应的静态变量的步骤中,包括:
利用JAVA反射机制,将配置项名称对应的配置项值赋值给相应的静态变量。
进一步地,建立配置项名称与静态变量对应的关联关系的映射表的步骤中,包括:
初始化一个private static final类型的map接口;
通过map接口中的put方法依次建立配置项名称与静态变量对应的关联关系,形成映射表。
进一步地,将配置项值赋值给对应的静态变量的步骤之后,还包括:
检测配置项是否发生修改;
若配置项发生修改,则获取发生修改的配置项的配置项名称,在数据库中根据配置项名称获取修改后对应的配置项值;
将修改后的配置项值赋值给相应的静态变量。
进一步地,若配置项发生修改的步骤之后,还包括:
向集群内的所有机器发出修改配置项的通知,通知至少包括修改配置项的配置项名称。
进一步地,查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值的步骤之后,还包括:
将配置项名称和对应配置项值以映射表形式保存到缓存map中。
本发明还提出一种JAVA集群配置项实时生效的装置,包括:
查询模块,用于查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值;
创建模块,用于创建与配置项数量相同的静态变量;
建立模块,用于建立配置项名称与静态变量对应的关联关系的映射表;
赋值模块,用于根据映射表,将配置项名称对应的配置项值赋值给相应的静态变量。
本发明还提出一种设备,包括存储器和处理器,所述存储器存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述任一项方法的步骤。
本发明还提供一种计算机非易失性可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述任一项方法的步骤。
本发明JAVA集群配置项实时生效的方法、装置、设备和存储介质的有益效果为:通过在自定义的常量类中定义若干静态变量,在自定义加载类将配置项名称与静态变量建立对应关系,并将对应的配置项值赋值给对应的静态变量,在系统用到配置项的时候,可以根据配置项名称与静态变量的对应关系,直接从静态变量中读取配置项值,而无需从缓存map中根据配置项名称去查询配置项值,省去查找过程,配置项可以实时生效,减少资源耗费,提高效率。
附图说明
图1为本发明JAVA集群配置项实时生效的方法的步骤示意图;
图2为本发明JAVA集群配置项实时生效的系统的流程示意图;
图3为本发明设备一实施例的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,一种JAVA集群配置项实时生效的方法,应用于JAVA集群系统,包括:
S1、查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值;
S2、创建与配置项数量相同的静态变量;
S3、建立配置项名称与静态变量对应的关联关系的映射表;
S4、根据映射表,将配置项名称对应的配置项值赋值给相应的静态变量。
在上述步骤S1中,JAVA集群系统的所有配置项的配置信息都是保存在共用的数据库的配置项表中,配置项信息至少包括配置项名称和对应的配置项值,通过查找配置项表就可以得到所有配置项的名称和对应配置项值。
进一步地,步骤S1之后,还包括:
S11、将配置项名称和对应配置项值以映射表形式保存到缓存map中。
在上述步骤S11中,查询JAVA集群系统数据库中的配置项表,可以将查询的结果形成一个配置项list列表(JAVA list是集合的一种,并且列表中的元素是有序的,且允许重复),通过遍历上述配置项list列表,将遍历的结果保存到一个缓存map(map是用于存储键值对的集合类,其中每个键映射到一个值),相当于将配置项信息由数组的形式转化成配置项名称对应配置项值的映射表形式,缓存map即一个内存变量,将遍历结果保存到缓存map,主要为了防止在编程的过程中存在有意或无意造成的没有对应到常量类中静态变量的配置项,在使用到没有对应静态变量的配置项还是可以从这个缓存map中获取对应的配置项值,在使用的过程中,能正常获取配置项值,避免出错,确保系统的正常运行。
在上述步骤S2中,创建与配置项数量相同的静态变量可以利用编程方式实现,在JAVA集群系统中可以通过语句public class Constant自定义一个名为“Constant”(常数)的常量类,在该Constant常量类中通过语句public static String serverConfig1自定义变量类型“String”,其名为“serverConfig1”(服务器配置1)的静态变量,可以通过语句public static int serverConfig2自定义变量类型“int”,其名为“serverConfig2”(服务器配置2)的静态变量等,被static(静态的)修饰的变量是静态变量,静态变量被整个类所有,即被类的所有对象所共有,可以使用类名直接访问,也可以使用对象名进行访问,定义类变量的目的是代替配置项直接被系统调用,静态变量的数量与配置项的数量相同,配置项名称与静态变量在映射表中一一对应,在后续的使用过程中,要用到的所有配置项的时候都可以直接使用配置项名称对应的静态变量,相当于把所有配置项转化成一个常量来使用,并且配置项名称与静态变量在映射表中一一对应,在编码时也不容易弄错,常量类名称Constant和静态变量名称serverConfig1、serverConfig2的命名只要符合JAVA的驼峰规则所要求的即可,名称不作具体限定。在另一实施例中,定义静态变量数量也可以根据实际的需要,例如可以将配置项进行分类,一类是需要经常使用的配置项,另一类是不需要经常使用的配置项,在定义静态变量的时候,可以只按照需要经常使用的配置项的数量来确定需要自定义的静态变量数量,因为在使用的过程中,经常使用的配置项会频繁的从缓存map中查找获取对应的值,该查找的过程才会导致资源的耗费,所以只用静态变量代替需要经常使用的配置项,不需要经常使用的配置项则可以按照原有的方法,从缓存map中查询得到配置项的值去使用,其影响不大。
进一步地,在步骤S2中,包括:
S21、将静态变量的数据类型属性定义为数字类型。
在上述步骤S21中,JAVA基本数据类型有String(字符串)、int(整型)、short(短整型)、long(长整型)、float(浮点型)、char(字符型)、byte(字节型)、double(双精度型)等类型,在本实施例中,优选将静态变量的数据类型属性定义为数字类型,如整数类型(byte、short、int、long)和浮点类型(float、double),选择数字类型可以在静态变量赋值后可以直接使用数值,而不需要再次将其他数据类型转换为数字类型,当然在另一些实施例中,数据类型可以选择其他的类型,定义时静态变量采用不同的数据类型只需要在给该静态变量赋值的时候对应其数据类型即可。
在上述步骤S3中,把配置项名称和静态变量建立对应的关联关系的映射表,一个配置项名称对应一个静态变量。
进一步地,在步骤S3中,包括:
S3a、初始化一个private static final类型的map接口;
S3b、通过map接口中的put方法依次建立配置项名称与静态变量对应的关联关系,形成映射表。
在上述步骤S3a中,JAVA中的Map集合类用于储存元素对,Map储存的是一对键值(key和value),其中每个键映射到一个值,初始化一个private static final类型的map接口的可以通过以下语句实现:private static final Map<String,String>conf2ConstMap=new HashMap<>(),上述语句初始化一个名为“conf2ConstMap”的map接口,private表示私有的,定义conf2ConstMap是私有属性,不能被其他类调用,static表示静态的,用static修饰就表示conf2ConstMap属于这个类的,随的类的加载而存在的,一般接口的常量必须定义为static,final表示不可变的,被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改,被声明为final的方法也同样只能使用,不能重载,因此conf2ConstMap只有在系统初始化的时候赋值,中途不能改变其赋值,目的是在配置项名称与类变量名称在系统初始化对应后,在后续的使用过程中,不需要再改变二者之间的对应关系。
在上述步骤S3b中,通过conf2ConstMap调用map集合中的put方法将配置项名称与对应的静态变量名称赋值到conf2ConstMap中,例如可以通过以下语句实现:conf2ConstMap.put("server_config_1","serverConfig1"),其中,server_config_1代表一个配置项名称,即配置项名称即为映射表中的key,serverConfig1代表静态变量名称,静态变量名称即为映射表中的value,一个配置项名称只能对应一个静态变量名称,conf2ConstMap、server_config_1和server_config_2等名称命名只要符合JAVA的驼峰规则所要求的即可,名称不作具体限定,将所有的配置项和静态变量依次通过conf2ConstMap.put方法将的配置项名称与静态变量名称添加到conf2ConstMap中,从而得到配置项名称与静态变量名称的映射表,映射表如下表1-1所示,表1-1值列出部分表格,这里不做穷举。
表1-1
配置项名称 | 静态变量 |
server_config_1 | serverConfig1 |
server_config_2 | serverConfig2 |
… | … |
在上述步骤S4中,在映射表中一个配置项名称对应一个静态变量,同时该配置项名称也对应一个配置项值,根据这种对应关系,可以将配置项值赋值给相应的静态变量,此时静态变量就相当于配置项,在后续的使用过程中,要用到配置项的时候可以直接使用配置项名称对应的静态变量,相当于把配置项转化成一个常量来使用,直接调用静态变量即可得到配置项名称对应的配置项值,而无需从缓存map中根据配置项名称去查询配置项值,省去查找过程,减少资源耗费,提高效率。
进一步地,在步骤S4中,包括:
S4a、利用JAVA反射机制,将配置项名称对应的配置项值赋值给相应的静态变量。
在上述步骤S4a中,反射机制是JAVA提供的一种技术,赋值的方式选择利用JAVA的反射机制来赋值可以减少编写代码,只要告诉JAVA变量名和值,然后JAVA就可以去给变量名为传入名称的变量赋给对应的值,这样不用为每一个变量写段代码去直接赋值,更为方便快捷,只要将静态变量名称和映射到该静态变量名称的配置项名称所获取对应的配置项值传入反射赋值方法中,就能将配置项名称对应的配置项值赋值给相应的静态变量。
进一步地,在步骤S4之后,还包括:
S41、检测配置项是否发生修改;
S42、若配置项发生修改,则获取发生修改的配置项的配置项名称,在数据库中根据配置项名称获取修改后对应的配置项值;
S43、将修改后的配置项值赋值给相应的静态变量。
在本实施例中,当JAVA集群系统中一台机器的某个配置项发生修改时,对应配置项值会进行更新修改,因此对应配置项映射的静态变量的值也要进行更新修改,不然在使用发生修改的配置项的时候,调用的是错误的配置项值,所以当某个配置项发生修改时,在数据库中查询该配置项名称对应修改后的配置项值,将上述修改后的配置项值通过JAVA反射机制赋值给该配置项名称对应的静态变量,从而更新相应静态变量的值。
进一步地,在步骤S41之后,还包括:
S411、向集群内的所有机器发出修改配置项的通知,通知至少包括修改配置项的配置项名称。
在上述步骤S411中,JAVA集群系统中的某一机器配置项发生修改,其他的机器同样也需要对应修改配置项,因此系统检测到有机器的配置项发生修改时发出通知,通知在JAVA集群系统中的机器,通知中有修改配置项的配置项名称,其他JAVA集群系统中机器获取到通知后,同样在数据库中查询该配置项名称对应更新后的配置项值,将上述更新后的配置项值通过JAVA反射机制赋值给该配置项名称对应的静态变量,由于静态变量是被整个类所有的,在发生修改的时候,只需要修改静态变量的值,用到静态变量值的地方就全部修改,从而在JAVA集群系统中使用上述配置项的时候,确保对应静态变量的值是正确的。
参照图2,本发明还提出一种JAVA集群配置项实时生效的装置,包括:
查询模块1,用于查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值;
创建模块2,用于创建与配置项数量相同的静态变量;
建立模块3,用于建立配置项名称与静态变量对应的关联关系的映射表;
赋值模块4,用于根据映射表,将配置项名称对应的配置项值赋值给相应的静态变量。
在上述查询模块1中,JAVA集群系统的所有配置项的配置信息都是保存在共用的数据库的配置项表中,配置项信息至少包括配置项名称和对应的配置项值,通过查找配置项表就可以得到所有配置项的名称和对应配置项值。
进一步地,还包括:
缓存模块,用于将配置项名称和对应配置项值以映射表形式保存到缓存map中。
在缓存模块中,查询JAVA集群系统数据库中的配置项表,可以将查询的结果形成一个配置项list列表,通过遍历上述配置项list列表,将遍历的结果保存到一个缓存map,相当于将配置项信息由数组的形式转化成配置项名称对应配置项值的映射表形式,缓存map即一个内存变量,将遍历结果保存到缓存map,主要为了防止在编程的过程中存在有意或无意造成的没有对应到常量类中静态变量的配置项,在使用到没有对应静态变量的配置项还是可以从这个缓存map中获取对应的配置项值,在使用的过程中,能正常获取配置项值,避免出错,确保系统的正常运行。
在上述创建模块2中,创建与配置项数量相同的静态变量可以利用编程方式实现,在JAVA集群系统中可以通过语句public class Constant自定义一个名为“Constant”的常量类,在该Constant常量类中通过语句public static String serverConfig1自定义变量类型“String”,其名为“serverConfig1”的静态变量,可以通过语句public static intserverConfig2自定义变量类型“int”,其名为“serverConfig2”的静态变量等,被static修饰的变量是静态变量,静态变量被整个类所有,即被类的所有对象所共有,可以使用类名直接访问,也可以使用对象名进行访问,定义类变量的目的是代替配置项直接被系统调用,在编码的时候可以根据配置项的数量来确定静态变量的数量,常量类名称Constant和静态变量名称serverConfig1、serverConfig2的命名只要符合JAVA的驼峰规则所要求的即可,名称不作具体限定。在另一实施例中,定义静态变量数量也可以根据实际的需要,例如可以将配置项进行分类,一类是需要经常使用的配置项,另一类是不需要经常使用的配置项,在定义静态变量的时候,可以只按照需要经常使用的配置项的数量来确定需要自定义的静态变量数量,因为在使用的过程中,经常使用的配置项会频繁的从缓存map中查找获取对应的值,该查找的过程才会导致资源的耗费,所以只用静态变量代替需要经常使用的配置项,不需要经常使用的配置项则可以按照原有的方法,从缓存map中查询得到配置项的值去使用,其影响不大。
进一步地,在创建模块2中,包括:
创建子模块,用于将静态变量的数据类型属性定义为数字类型。
在上述创建子模块中,JAVA基本数据类型有String、int、short、long、float、char等类型,在本实施例中,优选将静态变量的数据类型属性定义为数字类型,如整数类型(byte、short、int、long)和浮点类型(float、double),选择数字类型可以在静态变量赋值后可以直接使用数值,而不需要再次将其他数据类型转换为数字类型。当然在另一些实施例中,数据类型也可以根据实际情况选择,定义时静态变量采用不同的数据类型只需要在给该静态变量赋值的时候对应其数据类型即可。
在上述建立模块3中,在加载类中把配置项名称和静态变量建立对应的关联关系的映射表,一个配置项名称对应一个静态变量。
进一步地,在建立模块3中,包括:
初始子模块,用于初始化一个private static final类型的map接口;
建立子模块,通过map接口中的put方法依次建立配置项名称与静态变量对应的关联关系,形成映射表。
在上述初始子模块中,JAVA中的Map集合类用于储存元素对,Map储存的是一对键值(key和value),其中每个键映射到一个值,初始化一个private static final类型的map接口的可以通过以下语句实现:private static final Map<String,String>conf2ConstMap=new HashMap<>(),上述语句初始化一个名为“conf2ConstMap”的map接口,private表示私有的,定义conf2ConstMap是私有属性,不能被其他类调用,static表示静态的,用static修饰就表示conf2ConstMap属于这个类的,随的类的加载而存在的,一般接口的常量必须定义为static,final表示不可变的,被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改,被声明为final的方法也同样只能使用,不能重载,因此conf2ConstMap只有在系统初始化的时候赋值,中途不能改变其赋值,目的是在配置项名称与类变量名称在系统初始化对应后,在后续的使用过程中,不需要再改变二者之间的对应关系。
在上述建立子模块中,通过conf2ConstMap调用map集合中的put方法将配置项名称与对应的静态变量名称赋值到conf2ConstMap中,例如可以通过以下语句实现:conf2ConstMap.put("server_config_1","serverConfig1"),其中,server_config_1代表一个配置项名称,即配置项名称即为映射表中的key,serverConfig1代表静态变量名称,静态变量名称即为映射表中的value,一个配置项名称只能对应一个静态变量名称,conf2ConstMap、server_config_1和server_config_2等名称命名只要符合JAVA的驼峰规则所要求的即可,名称不作具体限定,将所有的配置项和静态变量依次通过conf2ConstMap.put方法将的配置项名称与静态变量名称添加到conf2ConstMap中,从而得到配置项名称与静态变量名称的映射表,映射表如表1-1所示,表1-1值列出部分表格,这里不做穷举。
在上述赋值模块4中,在映射表中一个配置项名称对应一个静态变量,同时该配置项名称也对应一个配置项值,根据这种对应关系,可以将配置项值赋值给相应的静态变量,此时静态变量就相当于配置项,在后续的使用过程中,要用到配置项的时候可以直接使用配置项名称对应的静态变量,相当于把配置项转化成一个常量来使用,直接调用静态变量即可得到配置项名称对应的配置项值,而无需从缓存map中根据配置项名称去查询配置项值,省去查找过程,减少资源耗费,提高效率。
进一步地,在赋值模块4中,包括:
赋值子模块,用于利用JAVA反射机制,将配置项名称对应的配置项值赋值给相应的静态变量。
在上述赋值子模块中,反射机制是JAVA提供的一种技术,赋值的方式选择利用JAVA的反射机制来赋值可以减少编写代码,只要告诉JAVA变量名和值,然后JAVA就可以去给变量名为传入名称的变量赋给对应的值,这样不用为每一个变量写段代码去直接赋值,更为方便快捷,只要将静态变量名称和映射到该静态变量名称的配置项名称所获取对应的配置项值传入反射赋值方法中,就能将配置项名称对应的配置项值赋值给相应的静态变量。
进一步地,还包括:
检测模块,用于检测配置项是否发生修改;
获取模块,用于检测模块的检测结果为是,则获取发生修改的配置项的配置项名称,在数据库中根据配置项名称获取更新后对应的配置项值;
更新模块、将更新后的配置项值赋值给相应的静态变量。
在本实施例中,当JAVA集群系统中一台机器的某个配置项发生修改时,对应配置项值会进行更新,因此对应配置项映射的静态变量的值也要进行更新,不然在使用发生修改的配置项的时候,调用的是错误的配置项值,所以当某个配置项发生修改时,在数据库中查询该配置项名称对应更新后的配置项值,将上述更新后的配置项值通过JAVA反射机制赋值给该配置项名称对应的静态变量,从而更新相应静态变量的值。
进一步地,还包括:
通知模块,用于向集群内的所有机器发出修改配置项的通知,通知至少包括修改配置项的配置项名称。
在上述通知模块中,JAVA集群系统中的某一机器配置项发生修改,其他的机器同样也需要对应修改配置项,因此系统检测到有机器的配置项发生修改时发出通知,通知在JAVA集群系统中的机器,通知中有修改配置项的配置项名称,其他JAVA集群系统中机器获取到通知后,同样在数据库中查询该配置项名称对应更新后的配置项值,将上述更新后的配置项值通过JAVA反射机制赋值给该配置项名称对应的静态变量,由于静态变量是被整个类所有的,在发生修改的时候,只需要修改静态变量的值,用到静态变量值的地方就全部修改,从而在JAVA集群系统中使用上述配置项的时候,确保对应静态变量的值是正确的。
参照图3,本申请实施例中还提供一种设备,该设备可以是计算机或服务器,其内部结构可以如图3所示。该设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机可读指令和数据库。该内存器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该设备的数据库用于存储配置项信息等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令在执行时,执行如上述各方法的实施例的流程。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机非易失性可读存储介质,其上存储有计算机可读指令,该计算机可读指令在执行时,执行如上述各方法的实施例的流程,包括:查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值;创建与配置项数量相同的静态变量;建立配置项名称与静态变量对应的关联关系的映射表;根据映射表,将配置项名称对应的配置项值赋值给相应的静态变量。
通过在JAVA集群系统中自定义的常量类中定义若干静态变量,在自定义加载类将配置项名称与静态变量建立对应关系,并将对应的配置项值赋值给对应的静态变量,在系统用到配置项的时候,可以根据配置项名称与静态变量的对应关系,直接从静态变量中读取配置项值,而无需从缓存map中根据配置项名称去查询配置项值,省去查找过程,配置项可以实时生效,减少资源耗费,提高效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种JAVA集群配置项实时生效的方法,应用于JAVA集群系统,其特征在于,包括:
查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值;
创建与配置项数量相同的静态变量;
建立所述配置项名称与所述静态变量对应的关联关系的映射表;
根据所述映射表,将所述配置项名称对应的所述配置项值赋值给相应的所述静态变量。
2.根据权利要求1所述的JAVA集群配置项实时生效的方法,其特征在于,所述创建与配置项数量相同的静态变量的步骤中,包括:
将所述静态变量的数据类型属性定义为数字类型。
3.根据权利要求1所述的JAVA集群配置项实时生效的方法,其特征在于,所述将所述配置项名称对应的所述配置项值赋值给相应的所述静态变量的步骤中,包括:
利用JAVA反射机制,将所述配置项名称对应的所述配置项值赋值给相应的所述静态变量。
4.根据权利要求1所述的JAVA集群配置项实时生效的方法,其特征在于,所述建立所述配置项名称与所述静态变量对应的关联关系的映射表的步骤中,包括:
初始化一个private static final类型的map接口;
通过map接口中的put方法依次建立所述配置项名称与所述静态变量对应的关联关系,形成所述映射表。
5.根据权利要求1所述的JAVA集群配置项实时生效的方法,其特征在于,所述将所述配置项值赋值给对应的所述静态变量的步骤之后,还包括:
检测配置项是否发生修改;
若配置项发生修改,则获取发生修改的配置项的所述配置项名称,在数据库中根据所述配置项名称获取修改后对应的所述配置项值;
将修改后的所述配置项值赋值给相应的所述静态变量。
6.根据权利要求1所述的JAVA集群配置项实时生效的方法,其特征在于,若配置项发生修改的步骤之后,还包括:
向集群内的所有机器发出修改配置项的通知,所述通知至少包括修改配置项的配置项名称。
7.根据权利要求1所述的JAVA集群配置项实时生效的方法,其特征在于,所述查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值的步骤之后,还包括:
将所述配置项名称和对应的所述配置项值以映射表形式保存到缓存map中。
8.一种JAVA集群配置项实时生效的装置,其特征在于,包括:
查询模块,用于查询数据库中的配置项表,得到所有配置项的配置项名称和对应的配置项值;
创建模块,用于创建与配置项数量相同的静态变量;
建立模块,用于建立所述配置项名称与所述静态变量对应的关联关系的映射表;
赋值模块,用于根据所述映射表,将所述配置项名称对应的配置项值赋值给相应的所述静态变量。
9.一种设备,包括存储器和处理器,所述存储器存储有计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机非易失性可读存储介质,其上存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910340523.3A CN110187928A (zh) | 2019-04-25 | 2019-04-25 | Java集群配置项实时生效的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910340523.3A CN110187928A (zh) | 2019-04-25 | 2019-04-25 | Java集群配置项实时生效的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110187928A true CN110187928A (zh) | 2019-08-30 |
Family
ID=67715099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910340523.3A Pending CN110187928A (zh) | 2019-04-25 | 2019-04-25 | Java集群配置项实时生效的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110187928A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104091A (zh) * | 2019-12-12 | 2020-05-05 | 北京科技大学 | 一种动态浮点误差分析中精度特定计算的检测和转换方法 |
CN114238415A (zh) * | 2021-12-24 | 2022-03-25 | 四川新网银行股份有限公司 | 基于Flink的实时规则引擎控制方法、系统及介质 |
CN114237746A (zh) * | 2021-12-16 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 基于c语言的配置信息管理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179580A (zh) * | 2007-12-12 | 2008-05-14 | 北京北方烽火科技有限公司 | 一种用于实现WiMAX系统消息编解码的方法 |
US20110055809A1 (en) * | 2009-08-28 | 2011-03-03 | International Business Machines Corporation | Typed configuration management in programming languages |
CN103777969A (zh) * | 2012-10-19 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种无需重启部署服务器参数的方法和装置 |
CN107357598A (zh) * | 2016-05-09 | 2017-11-17 | 中兴通讯股份有限公司 | 一种参数配置方法和装置 |
-
2019
- 2019-04-25 CN CN201910340523.3A patent/CN110187928A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179580A (zh) * | 2007-12-12 | 2008-05-14 | 北京北方烽火科技有限公司 | 一种用于实现WiMAX系统消息编解码的方法 |
US20110055809A1 (en) * | 2009-08-28 | 2011-03-03 | International Business Machines Corporation | Typed configuration management in programming languages |
CN103777969A (zh) * | 2012-10-19 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种无需重启部署服务器参数的方法和装置 |
CN107357598A (zh) * | 2016-05-09 | 2017-11-17 | 中兴通讯股份有限公司 | 一种参数配置方法和装置 |
Non-Patent Citations (1)
Title |
---|
CHEN_ZHOU: "java高级-反射给类的属性赋值,主要用于繁琐的getter和setter方法", pages 1 - 4, Retrieved from the Internet <URL:https://my.oschina.net/chenzhou/blog/2876185> * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104091A (zh) * | 2019-12-12 | 2020-05-05 | 北京科技大学 | 一种动态浮点误差分析中精度特定计算的检测和转换方法 |
CN114237746A (zh) * | 2021-12-16 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 基于c语言的配置信息管理方法、装置、设备及存储介质 |
CN114237746B (zh) * | 2021-12-16 | 2023-11-14 | 北京天融信网络安全技术有限公司 | 基于c语言的配置信息管理方法、装置、设备及存储介质 |
CN114238415A (zh) * | 2021-12-24 | 2022-03-25 | 四川新网银行股份有限公司 | 基于Flink的实时规则引擎控制方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110187928A (zh) | Java集群配置项实时生效的方法、装置、设备和存储介质 | |
US10795643B2 (en) | System and method for resource reconciliation in an enterprise management system | |
AU2013329525C1 (en) | System and method for recursively traversing the internet and other sources to identify, gather, curate, adjudicate, and qualify business identity and related data | |
CN105808633A (zh) | 数据归档方法和系统 | |
US9135572B2 (en) | Method and arrangement for processing data | |
CN111459985A (zh) | 标识信息处理方法及装置 | |
US20090193029A1 (en) | Self-organized distributed directory | |
CN112416456B (zh) | 配置文件处理方法、装置、设备、存储介质和系统 | |
KR102133972B1 (ko) | 다중 분류기 통합 제어 시스템 및 방법 | |
CN109308258A (zh) | 测试数据的构造方法、装置、计算机设备和存储介质 | |
CN104836896A (zh) | 对电话号码进行纠错提示的方法及装置 | |
CN102103633B (zh) | 基于使用模式改进信息系统性能的方法和系统 | |
CN105468776A (zh) | 操作数据库的方法、装置及系统 | |
US8005844B2 (en) | On-line organization of data sets | |
Kim et al. | A machine cell formation algorithm for simultaneously minimising machine workload imbalances and inter-cell part movements | |
CN108733795A (zh) | 检测标准更新方法、装置、可读存储介质及计算机设备 | |
CN114462859A (zh) | 工作流处理方法、装置、计算机设备和存储介质 | |
CN110955686A (zh) | 数据多维交叉处理方法、装置、电子设备及存储介质 | |
CN109885542A (zh) | 项目文件管理方法、装置及存储介质 | |
CN116595061B (zh) | 基于物联网的物品管理方法、系统、存储介质及电子设备 | |
CN114115910A (zh) | 一种应用代码包版本管理方法及装置 | |
CN117632981A (zh) | 访问数据处理方法、装置、计算机设备及存储介质 | |
CN116700777A (zh) | 一种业务数据获取方法、装置、存储介质以及电子设备 | |
CN115437941A (zh) | 一种基于脚本的微服务查询方法、装置及计算机设备 | |
CN118503269A (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 |