CN116303364A - 一种Redis高可用、高扩展性的安装方法及装置 - Google Patents
一种Redis高可用、高扩展性的安装方法及装置 Download PDFInfo
- Publication number
- CN116303364A CN116303364A CN202310312892.8A CN202310312892A CN116303364A CN 116303364 A CN116303364 A CN 116303364A CN 202310312892 A CN202310312892 A CN 202310312892A CN 116303364 A CN116303364 A CN 116303364A
- Authority
- CN
- China
- Prior art keywords
- redis
- physical machine
- service
- instance
- script
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000009434 installation Methods 0.000 title claims description 24
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000013515 script Methods 0.000 claims description 66
- 238000012544 monitoring process Methods 0.000 claims description 50
- 238000001514 detection method Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 11
- 230000001960 triggered effect Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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/71—Version control; Configuration management
-
- 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
-
- 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
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及数据处理技术领域,具体涉及一种Redis高可用、高扩展性的安装方法及装置,该方法包括在物理机A和物理机B中安装Redis实例服务,在物理机A和物理机B中创建check_Redis.sh脚本监控以及Redis_master.sh和Redis_backup.sh脚本,登录物理机A和物理机B中执行keepalived.conf文件重启keepalived实例服务,业务应用通过访问keepalived虚拟IP转发到后端Redis真实IP实现服务访问,通过复制keepalived.conf文件调整请求访问权重值到目标操作系统。只需两台物理机实现Redis分布式高可用性架构、在运维方面简化了部署复杂度,在并发量提高的情况下可支持动态水平扩展。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种Redis高可用、高扩展性的安装方法及装置。
背景技术
Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis不同高可用集群架构是保障应用装置稳定性和用户体验有效技术手段,但是不同架构也会相应提高建设成本和运维成本。目前主流Redis的集群方案大致有三种:1)Redis cluster集群方案;2)master/slave主从方案;3)哨兵方案。
哨兵模式是Redis的高可用方式,哨兵节点是特殊的Redis服务,不提供读写服务,主要用来监控Redis实例节点。哨兵架构下client端第一次从哨兵找出Redis的主节点,后续就直接访问Redis的主节点,不会每次都通过sentinel代理访问Redis的主节点,当Redis的主节点挂掉时,哨兵会第一时间感知到,并且在slave节点中重新选出来一个新的master,然后将新的master信息通知给client端,从而实现高可用。
然而,Redis哨兵模式中至少需要三台以上的奇数Redis实例(一主二从)和对等个数的sentinel实例进程来保证集群内的健壮性,如果哨兵sentinel实例进程故障两个或以上就无法选举保证高可用性。
在可扩展性方面,如生产中需要增加资源则需要增加sentinel和Redis实例服务数,并且要停止现有集群服务重新构建可高用关系启动sentinel集群服务提供访问,这会影响业务应用的生产作业。
在连接方式上,业务应用需要连接所有sentinel集群进程服务获取Redis主从实例进行读写功能。
发明内容
有鉴于此,本申请实施例的目的是提供一种基于Redis和keepalived以及自定义监控脚本程序实现了不同物理机Redis实例之间的故障转移、负载均衡、数据同步的高可用、高扩展性的安装方法及装置。
为实现上述目的,本发明提供了以下技术方案:
根据本发明的第一方面,提供了一种Redis高可用、高扩展性的安装方法,包括以下步骤:
构建Redis的目标文件以及Dockerfile文件,利用Redis的目标文件信息创建Redis基础镜像;
构建Docker-Compose.yml文件,配置拉取镜像文件和容器初始化信息复制到物理机A和物理机B中;
在物理机A和物理机B中安装应用容器引擎服务、多容器管理服务以及容器检测服务并安装Redis实例服务;
在物理机A和物理机B中创建check_Redis.sh脚本监控以及Redis_master.sh和Redis_backup.sh脚本,登录物理机A和物理机B中执行keepalived.conf文件重启keepalived实例服务;
业务应用通过访问keepalived虚拟IP转发到后端Redis真实IP实现服务访问,通过复制keepalived.conf文件调整请求访问权重值到目标操作系统。
作为本发明的进一步方案,所述应用容器引擎服务、多容器管理服务以及容器检测服务分别为Docker、DockerCompose、Keepalived服务,通过执行Docker-Compose.yml文件安装Redis实例服务。
作为本发明的进一步方案,在物理机A和物理机B中创建check_Redis.sh脚本监控之前,还包括:在物理机A和物理机B中创建keepalived.conf文件配置虚拟IP、集群心跳检测时间、主备节点标识和故障转移切换权重值、身份验证、脚本监控执行、故障预警通知、notify_master和notify_backup脚本的执行信息。
作为本发明的进一步方案,在物理机A和物理机B中创建check_Redis.sh脚本监控用于keepalived调用监控Redis节点状态信息,check_Redis.sh脚本监控的参数为本机Redis实例IP值及登录密码。
作为本发明的进一步方案,物理机A和物理机B调用监控Redis节点状态信息时,包括:
基于shell命令对文件入参获取Redis实例IP值和登录密码,通过获得的Redis实例IP值和登录密码远程连接Redis实例获取实例状态信息,对获取的Redis节点状态信息处理,无返回状态信息时,关闭当前Redis实例对应的keepalived服务进行故障转移。
作为本发明的进一步方案,在物理机A和物理机B中创建Redis_master.sh和Redis_backup.sh脚本,用于keepalived节点状态改变执行notify_master和notify_backup对应的脚本文件。
作为本发明的进一步方案,当keepalived节点为主节点时触发执行Redis_master.sh脚本,设置对应的Redis实例为主节点提供服务,并触发执行Redis_backup.sh脚本,设置当前对应的Redis实例以外节点为备节点,数据同步主节点关系。
作为本发明的进一步方案,所述业务应用与所述物理机A、物理机B之间通过keepalived虚拟IP和虚拟路由协议转发请求访问后端真实Redis实例服务。
作为本发明的进一步方案,所述业务应用通过连接一个虚拟IP访问后端不同真实Redis实例服务。
作为本发明的进一步方案,所述Redis高可用、高扩展性的安装方法,基于keepalived集群主备节点状态改变执行监控脚本,监控脚本通过Shell命令设置keepalived对应Redis实例的主备角色以及设置数据同步策略进行数据同步。
作为本发明的进一步方案,所述Redis高可用、高扩展性的安装方法,还通过关闭异常Redis实例对应keepalived进程实现故障自动转移、负载均衡高可用性。
根据本发明的第二方面,提供了一种Redis高可用、高扩展性的装置,包括业务应用、物理机A和物理机B,所述业务应用与所述物理机A和物理机B之间通过一个虚拟IP访问,其中,在物理机A和物理机B中安装Redis实例服务;在物理机A和物理机B中创建check_Redis.sh脚本监控以及Redis_master.sh和Redis_backup.sh脚本,登录物理机A和物理机B中执行keepalived.conf文件重启keepalived实例服务;
业务应用用于通过访问keepalived虚拟IP转发到后端Redis真实IP实现服务访问,通过复制keepalived.conf文件调整请求访问权重值到目标操作系统,进行不同物理机Redis实例之间故障转移、负载均衡、数据同步。
本发明实施例提供的技术方案可以包括以下有益效果:
通过上述技术方案,本发明的一种Redis高可用、高扩展性的安装方法及装置,从技术层面而言,简化了Redis实例服务安装的方法和复杂的文件配置问题,基于keepalived集群集成自定义监控脚本程序的技术方案,实现了Redis服务故障自动转移、负载均衡、数据同步等高可用性功能。从应用层面而言,只需两台物理机实现Redis分布式高可用性架构、在运维方面简化了部署复杂度,在并发量提高的情况下可支持动态水平扩展。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。在附图中:
图1为本发明的实施例中一种Redis高可用、高扩展性的安装方法的系统架构图;
图2为本发明的实施例中一种Redis高可用、高扩展性的安装方法中调用监控Redis节点状态信息的流程图;
图3为本发明的实施例中一种Redis高可用、高扩展性的安装方法中数据同步主节点的流程图;
图4为本发明的实施例中Redis高可用、高扩展性的安装方法中Redis与DockerCompose组合运用的示意图;
图5为本发明的实施例中Redis高可用、高扩展性的安装方法中Redis与keepalived整合运用的示意图;
图6为本发明的实施例中Redis高可用、高扩展性的安装方法中实现故障自动转移、负载均衡高的示意图;
图7为适于用来实现本发明的实施例的计算机设备的计算机装置的结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面,结合附图以及具体实施方式,对本申请做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本申请的实施例提供了一种Redis高可用、高扩展性的安装方法及装置,为基于Redis和keepalived以及自定义监控脚本程序实现了不同物理机Redis实例之间的故障转移、负载均衡、数据同步的高可用、高扩展性的安装方法及装置。
在一些实施方式中,Redis高可用、高扩展性的安装方法可以应用在计算机设备,该计算机设备可以是PC、便携计算机、移动终端等具有显示和处理功能的设备,当然也不限于此。
本申请的实施例提供的Redis高可用、高扩展性的安装方法,可以实现不同物理机Redis实例之间的故障转移、负载均衡、数据同步的高可用扩展。
本实施例的方法采用keeplievd主备集群,在主备节点中安装对应的Redis实例,通过keepalived虚拟IP和虚拟路由协议技术特性转发请求到真实Redis实例IP来实现服务访问,一方面简化了通过连接一个虚拟IP就能实现访问后端Redis实例服务,另外一方面只需要两个操作系统资源安装keepalived主与备服务组成集群和Redis实例服务,通过监控脚本将故障的keepalived服务节点对应的Redis实例节点设置备节点,正常keepalived服务节点设置为主节点策略实现数据同步、高可用性。另外在新的操作系统中复制keeplievd备节点keepalived.conf文件调整其中的负载权重值启动服务和脚本监控文件及安装Redis服务就能实现业务应用在生产作业中无需停止任何服务进行水平扩展。
本发明是一种基于Redis和keepalived以及自定义监控脚本程序实现了不同物理机Redis实例之间的故障转移、负载均衡、数据同步的高可用扩展方法。请参照图1,图1为本申请Redis高可用、高扩展性的安装方法的架构图。该方法包括以下步骤:
构建Redis的目标文件以及Dockerfile文件,利用Redis的目标文件信息创建Redis基础镜像;
构建Docker-Compose.yml文件,配置拉取镜像文件和容器初始化信息复制到物理机A和物理机B中;
在物理机A和物理机B中安装应用容器引擎服务、多容器管理服务以及容器检测服务并安装Redis实例服务;
在物理机A和物理机B中创建check_Redis.sh脚本监控以及Redis_master.sh和Redis_backup.sh脚本,登录物理机A和物理机B中执行keepalived.conf文件重启keepalived实例服务;
业务应用通过访问keepalived虚拟IP转发到后端Redis真实IP实现服务访问,通过复制keepalived.conf文件调整请求访问权重值到目标操作系统。
在本实施例中,所述应用容器引擎服务、多容器管理服务以及容器检测服务分别为Docker、DockerCompose、Keepalived服务,通过执行Docker-Compose.yml文件安装Redis实例服务。
在本实施例中,在物理机A和物理机B中创建check_Redis.sh脚本监控之前,还包括:在物理机A和物理机B中创建keepalived.conf文件配置虚拟IP、集群心跳检测时间、主备节点标识和故障转移切换权重值、身份验证、脚本监控执行、故障预警通知、notify_master和notify_backup脚本的执行信息。
在本实施例中,在物理机A和物理机B中创建check_Redis.sh脚本监控用于keepalived调用监控Redis节点状态信息,check_Redis.sh脚本监控的参数为本机Redis实例IP值及登录密码。
其中,物理机A和物理机B调用监控Redis节点状态信息时,包括:
基于shell命令对文件入参获取Redis实例IP值和登录密码,通过获得的Redis实例IP值和登录密码远程连接Redis实例获取实例状态信息,对获取的Redis节点状态信息处理,无返回状态信息时,关闭当前Redis实例对应的keepalived服务进行故障转移。
在本实施例中,在物理机A和物理机B中创建Redis_master.sh和Redis_backup.sh脚本,用于keepalived节点状态改变执行notify_master和notify_backup对应的脚本文件。
当keepalived节点为主节点时触发执行Redis_master.sh脚本,设置对应的Redis实例为主节点提供服务,并触发执行Redis_backup.sh脚本,设置当前对应的Redis实例以外节点为备节点,数据同步主节点关系。
参见图1所示,本发明的Redis高可用、高扩展性的安装方法中的具体实现步骤如下:
1、构建Redis可运行服务文件和自定义配置文件等目标文件。
2、构建Dockerfile文件,利用目标文件信息创建Redis基础镜像。
3、构建Docker-Compose.yml文件,配置拉取镜像文件和容器初始化信息复制到物理机A和B中。
4、在A和B物理机中安装Docker、DockerCompose、Keepalived服务。
5、在A和B物理机中执行Docker-Compose.yml文件安装Redis实例服务。
6、在A和B物理机中创建keepalived.conf文件配置虚拟IP、集群心跳检测时间、主备节点标识和故障转移切换权重值(主节点大于备节点值)、身份验证、脚本监控执行、故障预警通知、notify_master和notify_backup脚本执行等信息。
7、在A和B物理机中创建check_Redis.sh脚本监控,用于keepalived调用监控Redis节点状态信息。脚本监控参数为本机Redis实例IP值及登录密码,利用shell命令对文件入参获取Redis实例IP值和登录密码,通过获得的Redis实例IP值和登录密码远程连接Redis实例获取实例状态信息,对获取的Redis节点状态信息做处理,无返回状态信息则关闭当前Redis实例对应的keepalived服务实现故障转移,参见图2所示。
8、在A和B物理机中创建Redis_master.sh和Redis_backup.sh脚本,用于keepalived节点状态改变执行notify_master和notify_backup对应的脚本文件,当keepalived节点为主节点时触发执行Redis_master.sh脚本,设置对应的Redis实例为主节点提供服务,并触发执行Redis_backup.sh脚本,设置当前对应的Redis实例以外节点为备节点,数据同步主节点关系,参见图3所示。
9、登录A和B物理机中执行keepalived.conf文件重启keepalived实例服务。
10、业务应用通过访问keepalived虚拟IP转发到后端Redis真实IP实现服务访问。
11、通过复制keepalived.conf文件调整请求访问权重值(小于A和B操作系统文件中的权重值),check_Redis.sh、Redis_master.sh、Redis_backup.sh到目标操作系统,目标系统首先安装Dockercompose/Keepalived,接着执行Docker-Compose.yml文件安装Redis服务和执行keepalived.conf文件启动keepalived服务实现水平扩展。
参见图4所示,Redis与Docker Compose组合运用,通过将私有定制化配置文件与可运行服务文件封装成基础镜像简化了Redis实例部署方法,通过复用A或B物理机中keepalived.conf和Docker-Compose.yml、check_Redis.sh、Redis_master.sh、Redis_backup.sh复制到其它物理机中稍作调整快速进行水平扩展。
参见图5所示,Redis与keepalived整合运用,业务应用通过连接一个虚拟IP就能访问后端不同真实Redis实例服务,优化Redis集群服务访问方法。
参见图6所示,keepalived集群主备节点状态改变执行监控脚本,监控脚本通过Shell命令设置keepalived对应Redis实例的主备角色以及设置数据同步策略从而实现数据同步(故障服务恢复依然保持主备数据同步)。另外通过关闭异常Redis实例对应keepalived进程实现故障自动转移、负载均衡高可用性。
需要注意的是,上述附图仅是根据本发明的实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
请参阅图1至图5所示,在本申请一实施例中,提供了一种Redis高可用、高扩展性的安装装置,该装置包括业务应用、物理机A和物理机B,所述业务应用与所述物理机A和物理机B之间通过一个虚拟IP访问,其中,在物理机A和物理机B中安装Redis实例服务;在物理机A和物理机B中创建check_Redis.sh脚本监控以及Redis_master.sh和Redis_backup.sh脚本,登录物理机A和物理机B中执行keepalived.conf文件重启keepalived实例服务。
业务应用用于通过访问keepalived虚拟IP转发到后端Redis真实IP实现服务访问,通过复制keepalived.conf文件调整请求访问权重值到目标操作系统,进行不同物理机Redis实例之间故障转移、负载均衡、数据同步。
在本发明的实施例中,在物理机A和物理机B中安装Redis实例服务之前,还包括:
构建Redis的目标文件以及Dockerfile文件,利用Redis的目标文件信息创建Redis基础镜像;
构建Docker-Compose.yml文件,配置拉取镜像文件和容器初始化信息复制到物理机A和物理机B中;
在物理机A和物理机B中安装应用容器引擎服务、多容器管理服务以及容器检测服务。
在本发明的实施例中,所述应用容器引擎服务、多容器管理服务以及容器检测服务分别为Docker、DockerCompose、Keepalived服务,通过执行Docker-Compose.yml文件安装Redis实例服务。
在本发明的实施例中,在物理机A和物理机B中创建check_Redis.sh脚本监控之前,还包括:在物理机A和物理机B中创建keepalived.conf文件配置虚拟IP、集群心跳检测时间、主备节点标识和故障转移切换权重值、身份验证、脚本监控执行、故障预警通知、notify_master和notify_backup脚本的执行信息。
在登陆时,在物理机A和物理机B中创建check_Redis.sh脚本监控用于keepalived调用监控Redis节点状态信息,check_Redis.sh脚本监控的参数为本机Redis实例IP值及登录密码。
在本实施例中,物理机A和物理机B调用监控Redis节点状态信息时,包括:基于shell命令对文件入参获取Redis实例IP值和登录密码,通过获得的Redis实例IP值和登录密码远程连接Redis实例获取实例状态信息,对获取的Redis节点状态信息处理,无返回状态信息时,关闭当前Redis实例对应的keepalived服务进行故障转移。
在本实施例中,在物理机A和物理机B中创建Redis_master.sh和Redis_backup.sh脚本,用于keepalived节点状态改变执行notify_master和notify_backup对应的脚本文件;当keepalived节点为主节点时触发执行Redis_master.sh脚本,设置对应的Redis实例为主节点提供服务,并触发执行Redis_backup.sh脚本,设置当前对应的Redis实例以外节点为备节点,数据同步主节点关系。
本发明的一种Redis高可用、高扩展性的安装装置,从技术层面而言,简化了Redis实例服务安装的方法和复杂的文件配置问题,基于keepalived集群集成自定义监控脚本程序的技术方案,实现了Redis服务故障自动转移、负载均衡、数据同步等高可用性功能。从应用层面而言,只需两台物理机实现Redis分布式高可用性架构、在运维方面简化了部署复杂度,在并发量提高的情况下可支持动态水平扩展。
需要说明的是,上述实施例提供的装置在执行相关操作时,仅以上述各程序模块的划分进行举例说明,待调取应用时,可以根据需要而将上述处理分配由不同的程序模块完成,即将终端的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。
另外,上述实施例提供的装置与上述实施例中的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
此外,在本发明的示例性实施例中,还提供了一种能够实现上述Redis高可用、高扩展性的安装方法的计算机设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为装置、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“装置”。
下面参照图7来描述根据本发明的这种实施例的计算机设备。图7显示的计算机设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机设备以通用计算设备的形式表现。计算机设备的组件可以包括但不限于:上述至少一个处理器401、上述至少一个存储器402、连接不同装置组件(包括存储器402和处理器401)的总线403、显示器404。
其中,所述存储器存储有程序代码,所述程序代码可以被所述处理器401执行,使得所述处理器401执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储器402可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)和/或高速缓存存储器,还可以进一步包括只读存储器(ROM)。
存储器402还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作装置、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线403可以为表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
计算机设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该计算机设备交互的设备通信,和/或与使得该计算机设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,计算机设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器通过总线403与计算机设备的其它模块通信。应当明白,可以结合计算机设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID装置、磁带驱动器以及数据备份存储装置等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施例的方法。
在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
在本发明的示例性实施例中,描述了根据本发明的实施例的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行装置、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的装置、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行装置、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种Redis高可用、高扩展性的安装方法,其特征在于,包括以下步骤:
构建Redis的目标文件以及Dockerfile文件,利用Redis的目标文件信息创建Redis基础镜像;
构建Docker-Compose.yml文件,配置拉取镜像文件和容器初始化信息复制到物理机A和物理机B中;
在物理机A和物理机B中安装应用容器引擎服务、多容器管理服务以及容器检测服务并安装Redis实例服务;
在物理机A和物理机B中创建check_Redis.sh脚本监控以及Redis_master.sh和Redis_backup.sh脚本,登录物理机A和物理机B中执行keepalived.conf文件重启keepalived实例服务;
业务应用通过访问keepalived虚拟IP转发到后端Redis真实IP实现服务访问,通过复制keepalived.conf文件调整请求访问权重值到目标操作系统。
2.根据权利要求1所述的安装方法,其特征在于,所述应用容器引擎服务、多容器管理服务以及容器检测服务分别为Docker、DockerCompose、Keepalived服务,通过执行Docker-Compose.yml文件安装Redis实例服务。
3.根据权利要求1所述的Redis安装方法,其特征在于,在物理机A和物理机B中创建check_Redis.sh脚本监控之前,还包括:在物理机A和物理机B中创建keepalived.conf文件配置虚拟IP、集群心跳检测时间、主备节点标识和故障转移切换权重值、身份验证、脚本监控执行、故障预警通知、notify_master和notify_backup脚本的执行信息。
4.根据权利要求3所述的安装方法,其特征在于,在物理机A和物理机B中创建check_Redis.sh脚本监控用于keepalived调用监控Redis节点状态信息,check_Redis.sh脚本监控的参数为本机Redis实例IP值及登录密码。
5.根据权利要求4所述的安装方法,其特征在于,物理机A和物理机B调用监控Redis节点状态信息时,包括:
基于shell命令对文件入参获取Redis实例IP值和登录密码,通过获得的Redis实例IP值和登录密码远程连接Redis实例获取实例状态信息,对获取的Redis节点状态信息处理,无返回状态信息时,关闭当前Redis实例对应的keepalived服务进行故障转移。
6.根据权利要求1所述的安装方法,其特征在于,在物理机A和物理机B中创建Redis_master.sh和Redis_backup.sh脚本,用于keepalived节点状态改变执行notify_master和notify_backup对应的脚本文件。
7.根据权利要求6所述的安装方法,其特征在于,当keepalived节点为主节点时触发执行Redis_master.sh脚本,设置对应的Redis实例为主节点提供服务,并触发执行Redis_backup.sh脚本,设置当前对应的Redis实例以外节点为备节点,数据同步主节点关系。
8.根据权利要求7所述的安装方法,其特征在于,所述业务应用与所述物理机A、物理机B之间通过keepalived虚拟IP和虚拟路由协议转发请求访问后端真实Redis实例服务。
9.根据权利要求8所述的安装方法,其特征在于,所述Redis高可用、高扩展性的安装方法,基于keepalived集群主备节点状态改变执行监控脚本,监控脚本通过Shell命令设置keepalived对应Redis实例的主备角色以及设置数据同步策略进行数据同步。
10.一种Redis高可用、高扩展性的安装装置,其特征在于,包括业务应用、物理机A和物理机B;
所述业务应用与所述物理机A和物理机B之间通过一个虚拟IP访问,其中,在物理机A和物理机B中安装Redis实例服务;在物理机A和物理机B中创建check_Redis.sh脚本监控以及Redis_master.sh和Redis_backup.sh脚本,登录物理机A和物理机B中执行keepalived.conf文件重启keepalived实例服务;
业务应用用于通过访问keepalived虚拟IP转发到后端Redis真实IP实现服务访问,通过复制keepalived.conf文件调整请求访问权重值到目标操作系统,进行不同物理机Redis实例之间故障转移、负载均衡、数据同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310312892.8A CN116303364B (zh) | 2023-03-28 | 2023-03-28 | 一种Redis高可用、高扩展性的安装方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310312892.8A CN116303364B (zh) | 2023-03-28 | 2023-03-28 | 一种Redis高可用、高扩展性的安装方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116303364A true CN116303364A (zh) | 2023-06-23 |
CN116303364B CN116303364B (zh) | 2023-12-15 |
Family
ID=86818503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310312892.8A Active CN116303364B (zh) | 2023-03-28 | 2023-03-28 | 一种Redis高可用、高扩展性的安装方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303364B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016101638A1 (zh) * | 2014-12-23 | 2016-06-30 | 国家电网公司 | 一种电力系统云仿真平台的运营管理方法 |
CN108052333A (zh) * | 2017-12-11 | 2018-05-18 | 北京紫优能源科技有限公司 | 一种电力调度集控系统标准化自动化部署方法及架构 |
CN113961312A (zh) * | 2021-10-28 | 2022-01-21 | 北京金山云网络技术有限公司 | 目标服务的部署方法、装置和电子设备 |
WO2022036901A1 (zh) * | 2020-08-20 | 2022-02-24 | 紫光云(南京)数字技术有限公司 | 一种Redis副本集的实现方法及装置 |
-
2023
- 2023-03-28 CN CN202310312892.8A patent/CN116303364B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016101638A1 (zh) * | 2014-12-23 | 2016-06-30 | 国家电网公司 | 一种电力系统云仿真平台的运营管理方法 |
CN108052333A (zh) * | 2017-12-11 | 2018-05-18 | 北京紫优能源科技有限公司 | 一种电力调度集控系统标准化自动化部署方法及架构 |
WO2022036901A1 (zh) * | 2020-08-20 | 2022-02-24 | 紫光云(南京)数字技术有限公司 | 一种Redis副本集的实现方法及装置 |
CN113961312A (zh) * | 2021-10-28 | 2022-01-21 | 北京金山云网络技术有限公司 | 目标服务的部署方法、装置和电子设备 |
Non-Patent Citations (2)
Title |
---|
刘景林;: "基于OpenLDAP构建高可用统一账户管理系统", 新乡学院学报, no. 06 * |
小杰哥CL: "keepalived+docker redis高可用配置", 知乎(HTTPS://ZHUANLAN.ZHIHU.COM/P/479358200), pages 1 - 4 * |
Also Published As
Publication number | Publication date |
---|---|
CN116303364B (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473692B2 (en) | Operating system image management | |
US10243780B2 (en) | Dynamic heartbeating mechanism | |
US8266472B2 (en) | Method and system to provide high availability of shared data | |
US20090144720A1 (en) | Cluster software upgrades | |
US7590683B2 (en) | Restarting processes in distributed applications on blade servers | |
JP2016508647A (ja) | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム | |
US10771570B2 (en) | Scalable message passing architecture a cloud environment | |
CN109213571B (zh) | 一种内存共享方法、容器管理平台及计算机可读存储介质 | |
US10826812B2 (en) | Multiple quorum witness | |
US8930539B1 (en) | Method and apparatus for optimizing resource utilization within a cluster and facilitating high availability for an application | |
CN111949444A (zh) | 一种基于分布式服务集群的数据备份与恢复系统及方法 | |
US11188429B2 (en) | Building a highly-resilient system with failure independence in a disaggregated compute environment | |
JP2012173996A (ja) | クラスタシステム、クラスタ管理方法、およびクラスタ管理プログラム | |
CN111935244B (zh) | 一种业务请求处理系统及超融合一体机 | |
US10721335B2 (en) | Remote procedure call using quorum state store | |
CN107111530A (zh) | 一种容灾方法、系统和装置 | |
CN114679380A (zh) | 边缘集群的创建方法和相关装置 | |
CN113515316A (zh) | 一种新型边缘云操作系统 | |
US20040210888A1 (en) | Upgrading software on blade servers | |
CN113918174A (zh) | 裸金属服务器的部署方法、部署控制器及服务器集群 | |
CN113849136A (zh) | 一种基于国产平台的自动化fc块存储处理方法和系统 | |
EP4217868A1 (en) | Firmware emulated watchdog timer controlled using native cpu operations | |
US9307015B1 (en) | Cloud black box for cloud infrastructure | |
CN115766405B (zh) | 一种故障处理方法、装置、设备和存储介质 | |
CN116303364B (zh) | 一种Redis高可用、高扩展性的安装方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |