CN106951246A - 基于虚拟化平台解决Codis集群服务组件依赖的方法 - Google Patents
基于虚拟化平台解决Codis集群服务组件依赖的方法 Download PDFInfo
- Publication number
- CN106951246A CN106951246A CN201710153967.7A CN201710153967A CN106951246A CN 106951246 A CN106951246 A CN 106951246A CN 201710153967 A CN201710153967 A CN 201710153967A CN 106951246 A CN106951246 A CN 106951246A
- Authority
- CN
- China
- Prior art keywords
- codis
- component
- dashboard
- dependence
- server
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种基于虚拟化平台解决Codis集群服务组件依赖的方法,包括如下步骤:1.重新分配Codis3.0版本的组件;11.将Codis Dashboard和Codis FE合成一个组件进行处理;12.引入Codis Admin命令行工具,而不单独将其设为一个组件;2.在虚拟化平台指定组件之间的依赖关系;依次启动Codis Server、Codis Dashboard、Codis Proxy、Codis HA;3.通过脚本在后台对组件的依赖进行处理;31.防止Dashboard没有完全启动时,添加server失败;32.查看server是否启动成功;33.判断是否有组件没有启动成功。
Description
技术领域
本发明属于虚拟化平台的Codis集群服务领域,具体涉及一种基于虚拟化平台解决Codis集群服务组件依赖的方法。
背景技术
Codis是一个分布式的Redis解决方案,对于上层的应用来说,连接到Codis Proxy和连接原生的Redis Server没有明显的区别,上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面的客户端来说是透明的,可以简单的认为后边连接的是一个内存无限大的Redis服务。Codis3.0修复了Codis2.0版本存在的各种问题,同时也对组件进行了完善和调整。Codis3.0包含的组件主要Codis Server、Codis Proxy、Codis Dashboard、Codis FE、CodisAdmin,Codis HA。
Codis3.0版本的安装流程大致可以总结为:
1 :安装go,并配置go的环境变量;安装gcc;
2 :安装Codis并配置Codis的环境变量,对是否正确安装进行测试;
3 :安装jdk、zookeeper并配置相应的环境变量和配置文件,同时启动zookeeper;
4 :依次修改并启动Codis的某些配置文件和组件。
从以上的分析发现,传统的Codis安装过程不仅复杂,且依赖较多软件,因此安装过程非常容易出错;所有的Codis组件均依赖jdk和zookeeper;在第四步中组件的启动具有依赖关系,否则无法满足使用需求,但是手动部署的过程极易出错。
此为现有技术不足之处。因此,针对现有技术中的上述缺陷,提供一种基于虚拟化平台解决Codis集群服务组件依赖的方法,是非常有必要的。
发明内容
本发明的目的在于,针对上述传统的Codis组件依赖启动复杂的缺陷,提供一种基于虚拟化平台解决Codis集群服务组件依赖的方法,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种基于虚拟化平台解决Codis集群服务组件依赖的方法,包括如下步骤:
步骤1.重新分配Codis3.0版本的组件;
步骤2.在虚拟化平台指定组件之间的依赖关系;
步骤3.在后台对组件的依赖进行处理。
进一步地,步骤1中重新分配Codis3.0版本的组件即重新分配原生Codis3.0版本的组件,具体包括如下步骤:
步骤11.将Codis Dashboard组件和Codis FE组件合成一个组件进行处理;
步骤12.引入Codis Admin命令行工具,而不单独将其设为一个组件;
Codis3.0版本自带的组件主要有:Codis Server、Codis Proxy、Codis Dashboard、Codis FE、Codis Admin,Codis HA。其中Codis Dashboard是集群管理工具,支持 CodisProxy、Codis Server 的添加、删除,以及据迁移等操作。在集群状态发生改变时,CodisDashboard 维护集群下所有 Codis Proxy 的状态的一致性;Codis FE是集群管理界面。所以可以将Codis Dashboard和Codis FE合成一个组件进行处理。另外Codis Admin是集群管理的命令行工具,可用于控制 Codis Proxy、Codis Dashboard 状态以及访问外部存储,因此之引入Codis-Admin命令行工具,而不单独将其设为一个组件。
进一步地,原生Codis3.0版本的组件包括:Codis Sever、Codis Proxy、CodisDashboard、Codis FE、Codis Admin和Codis HA;
经步骤1之后,Codis3.0版本的组件包括Codis Sever、Codis Proxy、Codis Dashboard和Codis HA;减少了操作的复杂度;
进一步地,步骤2中在虚拟化平台指定组件之间的依赖关系即指定启动顺序,包括:依次启动Codis Server、Codis Dashboard、Codis Proxy、Codis HA;
首先Codis Server是独立的,不太容易受其他组件影响,但是需要将Codis Server添加到Codis Dashboard的集群管理中;如果Codis Dashboard挂掉,Codis HA也将无法使用,二者紧密相关;Codis proxy是无状态的,启动后的Codis Proxy需要被部署到CodisDashboard中。所以比较好的启动顺序便是:依次启动Codis Server、Codis Dashboard、Codis Proxy、Codis HA。依赖关系确定完毕,便可以在虚拟化平台进行配置,使其达到一次配置,多次使用的目的。
进一步地,所述的启动顺序中,Codis Server的启动依赖zookeeper,CodisDashboard的启动依赖Codis Server,Codis Proxy的启动依赖Codis Dashboard,Codis HA的启动依赖Codis Proxy。
进一步地,依次启动中Codis Dashboard包括原生的Codis3.0版本的CodisDashboard和Codis FE合并的组件。
进一步地,步骤3中通过脚本在后台的对组件的依赖进行处理,包括:
步骤31.防止Dashboard没有完全启动的情况下,添加server失败;
步骤32.查看server是否启动成功;
步骤33.判断是否有组件没有启动成功。
进一步地,步骤3中通过脚本在后台的对组件的依赖进行处理,具体包括:
步骤31.防止Dashboard没有完全启动的情况下,添加server失败;
在Codis Dashboard启动时,设定循环,设定第一计时时间段,开始计时,到达第一计时时间段,则访问一次Codis Dashboard页面,若访问成功,则进行添加server操作,若访问不成功,回到循环,重新计时;
步骤32.查看server是否启动成功;
查看server的角色,若server角色是master,则server第一次启动成功;
步骤33.判断是否有组件没有启动成功;
设定第二计时时间段,开始计时,到达第二计时时间段,若有组件没有启动成功,则直接打印该错误信息并退出,同时Codis集群服务也直接退出。进一步地,所述循环采用while循环,所述第一计时时间段为1s。
只在虚拟化平台设置依赖关系并不能满足服务完整无误的高效启动,还需在后台的脚本中进行更多的细节处理,使其满足用户的使用需求,比如Dashboard启动后,需要添加server,但是由于时间原因,Dashboard并没有完全可以访问,导致server添加失败;将server添加到Dashboard时,如果该 server正处于启动中的状态,添加依然失败等,整个Codis服务启动过程中会遇到许多因为时间导致的问题,解决方法也并不相同,经过后台脚步的细节处理使得Codis服务的安装过程出错率降低,效率更加高效,更容易满足用户的使用需求。
本发明的有益效果在于:本发明基于虚拟化平台,实现了一种针对Codis集群服务的组件依赖解决方案,通过设计该解决方法,可以使得 Codis服务的部署更加安全高效,不易出错;用户不仅可以方便的创建多种虚拟化服务实例,减少了维护的复杂度,而且出错概率相对传统的维护方法小很多。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明的方法流程图;
具体实施方式:
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明具体实施例中的附图,对本发明中的技术方案进行清楚、完整地描述。
如图1所示,本发明提供一种基于虚拟化平台解决Codis集群服务组件依赖的方法,包括如下步骤:
步骤1.重新分配Codis3.0版本的组件;
重新分配原生Codis3.0版本的组件,具体包括如下步骤:
步骤11.将Codis Dashboard组件和Codis FE组件合成一个组件进行处理;
步骤12.引入Codis Admin命令行工具,而不单独将其设为一个组件;
原生Codis3.0版本的组件包括:Codis Sever、Codis Proxy、Codis Dashboard、CodisFE、Codis Admin和Codis HA;
经步骤1重新分配之后,Codis3.0版本的组件包括Codis Sever、Codis Proxy、CodisDashboard和Codis HA;
步骤2.在虚拟化平台指定组件之间的依赖关系;
依次启动Codis Server、Codis Dashboard、Codis Proxy、Codis HA;
Codis Server的启动依赖zookeeper,Codis Dashboard的启动依赖Codis Server,Codis Proxy的启动依赖Codis Dashboard,Codis HA的启动依赖Codis Proxy;
Codis Dashboard包括原生的Codis3.0版本的Codis Dashboard和Codis FE合并的组件;
步骤3.通过脚本在后台的对组件的依赖进行处理,具体包括:
步骤31.防止Dashboard没有完全启动的情况下,添加server失败;
在Codis Dashboard启动时,设定循环,设定第一计时时间段,开始计时,到达第一计时时间段,则访问一次Codis Dashboard页面,若访问成功,则进行添加server操作,若访问不成功,回到循环,重新计时;
步骤32.查看server是否启动成功;
查看server的角色,若server角色是master,则server第一次启动成功;
步骤33.判断是否有组件没有启动成功;
设定第二计时时间段,开始计时,到达第二计时时间段,若有组件没有启动成功,则直接打印该错误信息并退出,同时Codis集群服务也直接退出。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
本发明的实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。
Claims (9)
1.一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,包括如下步骤:
步骤1.重新分配Codis3.0版本的组件;
步骤2.在虚拟化平台指定组件之间的依赖关系;
步骤3.在后台对组件的依赖进行处理。
2.如权利要求1所述的一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,步骤1中重新分配Codis3.0版本的组件即重新分配原生Codis3.0版本的组件,具体包括如下步骤:
步骤11.将Codis Dashboard组件和Codis FE组件合成一个组件进行处理;
步骤12.引入Codis Admin命令行工具,而不单独将其设为一个组件。
3.如权利要求2所述的一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,原生Codis3.0版本的组件包括:Codis Sever、Codis Proxy、Codis Dashboard、Codis FE、Codis Admin和Codis HA;
经步骤1重新分配之后,Codis3.0版本的组件包括Codis Sever、Codis Proxy、CodisDashboard和Codis HA。
4.如权利要3所述的一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,步骤2中在虚拟化平台指定组件之间的依赖关系即指定启动顺序,包括:依次启动Codis Server、Codis Dashboard、Codis Proxy、Codis HA。
5.如权利要求4的一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,所述的启动顺序中,Codis Server的启动依赖zookeeper,Codis Dashboard的启动依赖Codis Server,Codis Proxy的启动依赖Codis Dashboard,Codis HA的启动依赖CodisProxy。
6.如权利要4所述的一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,依次启动中Codis Dashboard包括原生的Codis3.0版本的Codis Dashboard和CodisFE合并的组件。
7.如权利要求1所述的一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,步骤3中通过脚本在后台的对组件的依赖进行处理,包括:
步骤31.防止Dashboard没有完全启动的情况下,添加server失败;
步骤32.查看server是否启动成功;
步骤33.判断是否有组件没有启动成功。
8.如权利要求1所述的一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,步骤3中通过脚本在后台的对组件的依赖进行处理,具体包括:
步骤31.防止Dashboard没有完全启动的情况下,添加server失败;
在Codis Dashboard启动时,设定循环,设定第一计时时间段,开始计时,到达第一计时时间段,则访问一次Codis Dashboard页面,若访问成功,则进行添加server操作,若访问不成功,回到循环,重新计时;
步骤32.查看server是否启动成功;
查看server的角色,若server角色是master,则server第一次启动成功;
步骤33.判断是否有组件没有启动成功;
设定第二计时时间段,开始计时,到达第二计时时间段,若有组件没有启动成功,则直接打印该错误信息并退出,同时Codis集群服务也直接退出。
9.如权利要求8所述的一种基于虚拟化平台解决Codis集群服务组件依赖的方法,其特征在于,所述循环采用while循环,所述第一计时时间段为1s。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710153967.7A CN106951246A (zh) | 2017-03-15 | 2017-03-15 | 基于虚拟化平台解决Codis集群服务组件依赖的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710153967.7A CN106951246A (zh) | 2017-03-15 | 2017-03-15 | 基于虚拟化平台解决Codis集群服务组件依赖的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106951246A true CN106951246A (zh) | 2017-07-14 |
Family
ID=59472266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710153967.7A Pending CN106951246A (zh) | 2017-03-15 | 2017-03-15 | 基于虚拟化平台解决Codis集群服务组件依赖的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951246A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764883A (zh) * | 2018-07-26 | 2020-02-07 | 浙江宇视科技有限公司 | 一种服务组的启停控制方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677916A (zh) * | 2016-03-02 | 2016-06-15 | 浪潮软件集团有限公司 | 一种关于Redis使用的方法 |
CN106254127A (zh) * | 2016-08-23 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 基于虚拟化平台的RabbitMQ集群服务的自动化部署方法 |
-
2017
- 2017-03-15 CN CN201710153967.7A patent/CN106951246A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677916A (zh) * | 2016-03-02 | 2016-06-15 | 浪潮软件集团有限公司 | 一种关于Redis使用的方法 |
CN106254127A (zh) * | 2016-08-23 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 基于虚拟化平台的RabbitMQ集群服务的自动化部署方法 |
Non-Patent Citations (3)
Title |
---|
393J: "codis 3.0安装部署", 《HTTPS://BLOG. CSDN. NET/WANG_ SIR_ 90/ARTICLE/DETAILS/51839109》 * |
CARSONFAN: "codis3.1集群搭建", 《HTTPS://WWW.CNBLOGS.COM/XMZNCC/P/6218694.HTML》 * |
陆炫志: "Codis集群的搭建与使用", 《HTTPS://WWW.CNBLOGS.COM/XUANZHI201111/P/4425194.HTM1》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764883A (zh) * | 2018-07-26 | 2020-02-07 | 浙江宇视科技有限公司 | 一种服务组的启停控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430209B1 (en) | System and method for server customization | |
US9875133B2 (en) | Virtual machine disk image installation | |
CA2776384C (en) | Self-service configuration for data environment | |
WO2019184116A1 (zh) | 自动搭建Kubernetes主节点的方法、装置、终端设备及可读存储介质 | |
US7594225B2 (en) | Integrated setup for generating customization XML | |
CN102110009A (zh) | 一种在虚拟化平台中部署应用的方法及虚拟平台管理器 | |
CN108234164B (zh) | 集群部署方法及装置 | |
CN106325953A (zh) | 一种Weblogic集群一键自动部署方法 | |
US8458693B2 (en) | Transitioning from static to dynamic cluster management | |
CN106326226B (zh) | 一种公有云上启动数据库服务的方法及系统 | |
US20170269926A1 (en) | Server program hot upgrading method and device | |
CN107707687A (zh) | 一种虚拟机ip地址配置的方法和装置 | |
CN104391713A (zh) | 一种Windows系统自动安装方法 | |
CN115220874A (zh) | 一种Kubernetes集群部署方法、装置、设备及存储介质 | |
CN109683921B (zh) | 一种基于电力系统自动化运维平台的全流程系统部署方法 | |
CN113946323A (zh) | 基于微服务体系的在线开发方法、装置、设备及存储介质 | |
CN110716975B (zh) | 一种数据接口生成方法以及数据接口共享平台 | |
WO2020199543A1 (zh) | 适用于混合模式应用的发布升级的方法及装置、智能设备 | |
CN106951246A (zh) | 基于虚拟化平台解决Codis集群服务组件依赖的方法 | |
CN103677879B (zh) | 软件安装方法及相应软件安装装置 | |
CN111597011A (zh) | 一种基于私有云资源模型的连接方法和系统 | |
CN107861761B (zh) | 一种物理主机的启动方法及系统 | |
CN110019059B (zh) | 一种定时同步的方法和装置 | |
CN113064698A (zh) | 提供产品环境的方法及相应的装置、系统、设备和介质 | |
CN103281326A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200519 Address after: Building S01, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province, 250000 Applicant after: Tidal Cloud Information Technology Co.,Ltd. Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170714 |
|
RJ01 | Rejection of invention patent application after publication |