CN112256323A - 一种修改参数配置的方法 - Google Patents
一种修改参数配置的方法 Download PDFInfo
- Publication number
- CN112256323A CN112256323A CN202011169760.7A CN202011169760A CN112256323A CN 112256323 A CN112256323 A CN 112256323A CN 202011169760 A CN202011169760 A CN 202011169760A CN 112256323 A CN112256323 A CN 112256323A
- Authority
- CN
- China
- Prior art keywords
- parameter
- node
- item
- instance
- annotation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000008439 repair process Effects 0.000 claims abstract description 10
- 238000006243 chemical reaction Methods 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims abstract description 5
- 230000004048 modification Effects 0.000 claims description 27
- 238000012986 modification Methods 0.000 claims description 27
- 238000005192 partition Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及Java/云数据库技术领域,具体提供了一种修改参数配置的方法,具有如下步骤:S1、注解和反射解析,实现对参数项的解析处理;S2、Jedis模块实现对redis实例的操作;S3、定时任务模块修复修改失败的参数项。与现有技术相比,本发明的提高了驼峰命名的参数项与实际参数项名称的转换效率和解决了可修改参数与实例类型的匹配,具有良好的推广价值。
Description
技术领域
本发明涉及Java/云数据库技术领域,具体提供一种修改参数配置的方法。
背景技术
注解是用于给Java代码附加元数据,可在编译时或运行时解析并处理这些元数据。Java代码可以是包名、类、方法、成员变量、参数等,且附加的元数据不会影响源代码的执行。通过自定义注解即根据自己的需求定义注解和注解解析器实现少量代码完成功能需求。实现注解三要素:1,注解声明、2,使用注解的元素、3,操作注解使其起作用(注解处理器)。其中,注解处理器是核心。
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
Jedis是Redis官方推荐的Java连接开发工具。通过Jedis可以实现操作redis。redis支持很多的参数,大部分有默认值,通过修改参数项的值可以实现参数的合理配置,使redis能更好的满足业务需求和进行性能调优。
作为一种内存型数据库,Redis具有性能高、结构简单、相关工具完备等特点,被越来越多地应用在各种互联网工程中,成为各大门户网站和移动互联网App的必备组件。近年来随着云计算概念的兴起,大量Redis数据库从本地被迁移到了云计算平台,成为了云数据库。然而由于云计算平台特殊的技术架构,修改云数据库Redis集群参数配置成为了新的技术难点。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的修改参数配置的方法。
本发明解决其技术问题所采用的技术方案是:
一种修改参数配置的方法,其特征在于,具有如下步骤:
S1、注解和反射解析,实现对参数项的解析处理;
S2、Jedis模块实现对redis实例的操作;
S3、定时任务模块修复修改失败的参数项。
进一步的,在步骤S1中,通过自定义一个redis参数值注解,注解的值是这个参数项的实际值,通过注解解析器来实现每个参数项命名的转换。
进一步的,通过自定义一个实例类型注解,这个注解的值是一个数组,包含了这个参数项支持的类型,如果需要新增实例类型,只需要修改注解的值即可,业务代码无需变动。
进一步的,用户修改参数时后端应用将修改的参数逐个发送给步骤S1中注解和反射解析,进行参数项的解析,首先判断该参数项是否是该实例类型修改的,若是属于该实例类型的,则可修改;若不属于该实例类型,则跳过修改参数项步骤,对每个参数项通过注解解析。
进一步的,在步骤S2中,按照节点进行修改时,后端应用会对jedis模块操作每个节点的每个参数项的修改结果进行判断,如果该节点的该参数项修改失败则立即对这个节点的这个参数项注册一个定时任务进行修复;
如果修改成功则进行该节点的下一个参数项修改,如果这个节点的参数项都已修改完毕则进行下一个节点的参数项修改,直到所有节点修改完成。
进一步的,在步骤S3中,当遇到网络分区或者网络原因导致实例的某个节点无法连接时,定时任务模块会对这个节点的这个参数项注册一个定时任务,当这个实例的节点的网络恢复正常时,通过定时任务的执行进行修复。
进一步的,参数设置存在用户在短时间重复修改值的情况,如果该参数项修改失败了,用户又进行了设置,如果成功的话,会将实例的之前该参数的修改状态从失败改成成功。
进一步的,在步骤S2多节点的redis实例修改参数配置时,每一次的参数设置记录根据相同的时间进行存库,从而实现了多次修改参数配置项时,参数修改显示记录的去重。
本发明的一种修改参数配置的方法和现有技术相比,具有以下突出的有益效果:
(1)实用方面,提高了驼峰命名的参数项与实际参数项名称的转换效率和解决了可修改参数与实例类型的匹配。
(2)解决了动态修改配置项的难题。
(3)使用定时任务系统,解决了多个redis节点情况下修改参数项失败如何修复的难题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种修改参数配置的方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1所示,本实施例中的一种修改参数配置的方法,具有如下步骤:
S1、注解和反射解析,实现对参数项的解析处理;
S2、Jedis模块实现对redis实例的操作;
S3、定时任务模块修复修改失败的参数项。
Redis中的参数项有很多,以hash-max-ziplist-entries为例,单词之间基本上都是以”-”来分隔的。而JAVA中的开发规范目前业界内都是驼峰命名,因此在java中我们将这个参数项的命名为hashMaxZiplistEntries。因此通过jedis模块去实际上修改redis参数项的时候,需要处理java命名和实际参数项命名的转换。用户在修改参数项的时候,往往是多个参数项修改,如果处理参数项解析名字的效率过低,会影响用户体验。
我们使用注解和反射的方法来处理,通过自定义一个redis参数值注解,注解的值是这个参数项的实际值,通过注解解析器来实现每个参数项命名的转换。
Redis的参数项由于实例类型的不同,目前我们提供单机、主从、集群三种类型,之后可能还会提供新的类型,如何把参数项和实例类型绑定也是需要考虑的一个点。不能因为新增一个实例类型,就要改动大量的代码。因此,通过自定义一个实例类型注解,这个注解的值是一个数组,包含了这个参数项支持的类型。如果需要新增实例类型,只需要修改注解的值即可,业务代码无需变动,极大提高了未来响应变化,提高了代码复用性。
用户修改参数时后端应用将修改的参数逐个发送给注解和反射模板进行参数项的解析,首先判断该参数项是否是该实例类型能够修改的,如果是属于该实例类型的则可修改,如果不属于该实例类型,则跳过修改参数项步骤,然后会对每个参数项通过注解解析。
按节点进行修改,当一个节点的所需要修改的参数项均修改完毕,则进行第二个节点的参数项修改。在修改过程中,后端应用会对jedis模块操作每个节点的每个参数项的修改结果进行判断,如果该节点的该参数项修改失败则立即对这个节点的这个参数项注册一个定时任务进行修复,如果修改成功则进行该节点的下一个参数项修改,如果这个节点的参数项都已修改完毕则进行下一个节点的参数项修改,直到所有节点修改完成。通过循环redis节点的方式通过jedis模块操作实例,实现了不论是一个节点还是多个节点,代码执行效率高。
因为可能会遇到网络分区或者因为网络原因导致实例的某个节点无法连接,定时任务模块会对这个节点的这个参数项注册一个定时任务,当这个实例的节点的网络恢复正常时,通过定时任务的执行进行修复,保证了一个实例的多个节点之间的参数值一致。
参数设置可能存在用户在短时间重复修改值的情况,如果该参数项修改失败了,用户又进行了设置,如果成功的话,会将实例的之前该参数的修改状态从失败改成成功,从而避免定时任务的修复过程中将用户最新的修改结果覆盖。
在多节点的redis实例修改参数配置时,每一次的参数设置记录根据相同的时间进行存库,从而实现了多次修改参数配置项时,参数修改显示记录的去重。显示逻辑如下,如果该次的修改设置中,某个节点的某参数项修改失败了,则该实例的该参数项显示为失败,否则显示成功。修改成功的显示目标值,修改失败的显示原值。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种修改参数配置的方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (8)
1.一种修改参数配置的方法,其特征在于,具有如下步骤:
S1、注解和反射解析,实现对参数项的解析处理;
S2、Jedis模块实现对redis实例的操作;
S3、定时任务模块修复修改失败的参数项。
2.根据权利要求1所述的一种修改参数配置的方法,其特征在于,在步骤S1中,通过自定义一个redis参数值注解,注解的值是这个参数项的实际值,通过注解解析器来实现每个参数项命名的转换。
3.根据权利要求2所述的一种修改参数配置的方法,其特征在于,通过自定义一个实例类型注解,这个注解的值是一个数组,包含了这个参数项支持的类型,如果需要新增实例类型,只需要修改注解的值即可,业务代码无需变动。
4.根据权利要求3所述的一种修改参数配置的方法,其特征在于,用户修改参数时后端应用将修改的参数逐个发送给步骤S1中注解和反射解析,进行参数项的解析,首先判断该参数项是否是该实例类型修改的,若是属于该实例类型的,则可修改;若不属于该实例类型,则跳过修改参数项步骤,对每个参数项通过注解解析。
5.根据权利要求4所述的一种修改参数配置的方法,其特征在于,在步骤S2中,按照节点进行修改时,后端应用会对jedis模块操作每个节点的每个参数项的修改结果进行判断,如果该节点的该参数项修改失败则立即对这个节点的这个参数项注册一个定时任务进行修复;
如果修改成功则进行该节点的下一个参数项修改,如果这个节点的参数项都已修改完毕则进行下一个节点的参数项修改,直到所有节点修改完成。
6.根据权利要求5所述的一种修改参数配置的方法,其特征在于,在步骤S3中,当遇到网络分区或者网络原因导致实例的某个节点无法连接时,定时任务模块会对这个节点的这个参数项注册一个定时任务,当这个实例的节点的网络恢复正常时,通过定时任务的执行进行修复。
7.根据权利要求6所述的一种修改参数配置的方法,其特征在于,参数设置存在用户在短时间重复修改值的情况,如果该参数项修改失败了,用户又进行了设置,如果成功的话,会将实例的之前该参数的修改状态从失败改成成功。
8.根据权利要求7所述的一种修改参数配置的方法,其特征在于,在步骤S2多节点的redis实例修改参数配置时,每一次的参数设置记录根据相同的时间进行存库,从而实现了多次修改参数配置项时,参数修改显示记录的去重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011169760.7A CN112256323A (zh) | 2020-10-28 | 2020-10-28 | 一种修改参数配置的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011169760.7A CN112256323A (zh) | 2020-10-28 | 2020-10-28 | 一种修改参数配置的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112256323A true CN112256323A (zh) | 2021-01-22 |
Family
ID=74262655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011169760.7A Pending CN112256323A (zh) | 2020-10-28 | 2020-10-28 | 一种修改参数配置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256323A (zh) |
-
2020
- 2020-10-28 CN CN202011169760.7A patent/CN112256323A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220253298A1 (en) | Systems and methods for transformation of reporting schema | |
US7996816B2 (en) | Method and apparatus for dynamically binding service component implementations for specific unit test cases | |
CN111722839B (zh) | 一种代码生成方法、装置、电子设备及存储介质 | |
US20210191845A1 (en) | Unit testing of components of dataflow graphs | |
CN113901083B (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN1976320B (zh) | 数据访问控制方法及系统 | |
CN110737710A (zh) | 分布式数据自动结构化入库方法及系统 | |
CN112860730A (zh) | Sql语句的处理方法、装置、电子设备及可读存储介质 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN116755669A (zh) | 一种基于dsl语言操作模型的低代码开发方法和工具 | |
CN111008011A (zh) | 一个面向电力平台应用开发的系统构建器 | |
US11556460B2 (en) | Test case generation for software development using machine learning | |
CN112256323A (zh) | 一种修改参数配置的方法 | |
CN114385145A (zh) | 一种Web系统后端架构设计方法及计算机设备 | |
CN114461454A (zh) | 数据恢复方法、装置、存储介质及电子设备 | |
CN114547083A (zh) | 数据处理方法、装置及电子设备 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN112287012B (zh) | 采用Spark SQL模式实现http接口调用方法 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
KR100656559B1 (ko) | Bibd 방법론을 이용하는 프로그램 자동 개발 장치 | |
CN115563183B (zh) | 查询方法、装置及程序产品 | |
KR100353452B1 (ko) | 교환시스템의 데이타 베이스 생성방법 | |
CN116701433A (zh) | 一种函数文本解析处理方法、系统、终端及存储介质 | |
CN114942766A (zh) | 基于SQL数据库的Excel函数转换方法及相关装置 | |
CN118113291A (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 |