当前位置: 首页 > news >正文

网站建设大纲济南网站建设 小程序

网站建设大纲,济南网站建设 小程序,阅读网站模板,seo项目分析目录 一、redis群集有三种模式 1.1主从复制、哨兵、集群的区别 1.1.1主从复制 1.1.2哨兵 1.1.3集群 二、主从复制 2.1主从复制概述 2.2主从复制的作用 ①数据冗余 ②故障恢复 ③负载均衡 ④高可用基石 2.3主从复制流程 2.4搭建redis主从复制 2.4.1环境准备 2.4… 目录 一、redis群集有三种模式 1.1主从复制、哨兵、集群的区别 1.1.1主从复制 1.1.2哨兵 1.1.3集群 二、主从复制 2.1主从复制概述 2.2主从复制的作用 ①数据冗余 ②故障恢复 ③负载均衡 ④高可用基石 2.3主从复制流程 2.4搭建redis主从复制 2.4.1环境准备 2.4.2三台机器都安装redis 2.4.3修改 Redis 配置文件Master节点操作 2.4.4修改Redis配置文件slave节点操作 2.4.5验证主从效果 2.4.5.1在Master节点上看日志 2.4.5.2在Master节点上验证从节点 2.4.5.3在master节点上添加数据 从节点查看 三、Redis哨兵模式 3.1Redis哨兵模式概述 3.2哨兵模式原理 3.3哨兵模式的作用 3.3.1监控 3.3.2自动故障转移 3.3.3通知提醒 3.4哨兵结构由两部分组成哨兵节点和数据节点 3.5故障转移机制 (哨兵的原理) 1) 主观下线 2) 客观下线 3) 投票选举 3.5.1主节点的选举 3.6搭建redis哨兵模式 3.6.1修改 Redis 哨兵模式的配置文件所有节点都要操作 3.6.2启动哨兵模式 3.6.3查看哨兵信息 3.6.4故障模拟 3.6.4.1去master查看进程号 3.6.4.2杀死 Master 节点上redis-server的进程号 3.6.5验证结果 一、redis群集有三种模式 redis群集有三种模式分别是主从同步/复制、哨兵模式、Cluster 1.1主从复制、哨兵、集群的区别 1.1.1主从复制 主从复制是高可用Redis的基础哨兵和集群都是在主从复制基础上实现高可用的。 主从复制主要实现了数据的多机备份以及对于读操作的负载均衡和简单的故障恢复。 缺陷 故障恢复无法自动化写操作无法负载均衡存储能力受到单机的限制。 1.1.2哨兵 哨兵在主从复制的基础上哨兵实现了自动化的故障恢复。 缺陷 写操作无法负载均衡存储能力受到单机的限制哨兵无法对从节点进行自动故障转移在读写分离场景下从节点故障会导致读服务不可用需要对从节点做额外的监控、切换操作。 1.1.3集群 集群通过集群Redis解决了写操作无法负载均衡以及存储能力受到单机限制的问题实现了较为完善的高可用方案 但是成本比较高通常至少三主三从六台起步成本比较高 二、主从复制 2.1主从复制概述 主从复制是指将一台Redis服务器的数据复制到其他的Redis服务器前者称为主节点(Master)后者称为从节点(Slave)数据的复制是单向的只能由主节点到从节点。 默认情况下每台Redis服务器都是主节点且一个主节点可以有多个从节点(或没有从节点)但一个从节点只能有一个主节点。 2.2主从复制的作用 ①数据冗余 主从复制实现了数据的热备份是持久化之外的一种数据冗余方式。 ②故障恢复 当主节点出现问题时可以由从节点提供服务实现快速的故障恢复实际上是一种服务的冗余 ③负载均衡 在主从复制的基础上配合读写分离可以由主节点提供写服务由从节点提供读服务即写Redis数据时应用连接主节点读Redis数据时应用连接从节点分担服务器负载 尤其是在写少读多的场景下通过多个从节点分担读负载可以大大提高Redis服务器的并发量。 ④高可用基石 除了上述作用以外主从复制还是哨兵和集群能够实施的基础因此说主从复制是Redis高可用的基础。 2.3主从复制原理 1若启动一个Slave机器进程则它会向Master机器发送一个“sync command”命令请求同步连接。 2无论是第一次连接还是重新连接Master机器都会启动一个后台进程将数据快照保存到数据文件中执行rdb操作同时Master还会记录修改数据的所有命令并缓存在数据文件中。 3后台进程完成缓存操作之后Master机器就会向Slave机器发送数据文件Slave端机器将数据文件保存到硬盘上然后将其加载到内存中接着Master机器就会将修改数据的所有操作一并发送给Slave端机器。若Slave出现故障导致宕机则恢复正常后会自动重新连接。 4Master机器收到Slave端机器的连接后将其完整的数据文件发送给Slave端机器如果Mater同时收到多个Slave发来的同步请求则Master会在后台启动一个进程以保存数据文件然后将其发送给所有的Slave端机器确保所有的Slave端机器都正常。 1、从节点给主节点发送sync命令主节点则通过bgsave命令生成RDB快照文件然后将其文件传给从节点之后的写操作都记录在缓冲区 2、从节点收到快照文件后执行保存到数据集中然后再次给主发送psync命令获取缓冲区的数据 3、主节点发送缓冲区的写操作从节点执行同步到数据集中此时完成主从数据一致 4、后续从节点会持续监测主主节点也会定时给从节点发送写操作从节点同步执行实现主从数据一致注意从节点首次同步以及宕机恢复都需要执行一次全量数据加载即全量备份 sync同步 RDB完全备份文件给从服务器                AOF增量备份给从服务器  主从复制过程/原理 ①从----主发送sync同步数据请求 ②主redis 会fork一个子进程然后会产生RDB文件(完全备份的文件)的过程 2.1 客户端还在持续的写入redis ③rdb文件 持久化完成后主redis会将RDB文件和缓存起来的命令推送给我们的从服务器 ④复制、推送完后主reids 会持续的同步操作命-----利用AOF(增备)主持久化功能 ⑤在下一台redis 接入主从复制之前会持续利用AOF的方式 同步数据给从服务器 2.4搭建redis主从复制 下载安装包的链接 https://download.redis.io/releases/ 2.4.1环境准备 主机操作系统  IP地址 软件 / 安装包 / 工具MasterCentOS7192.168.246.8 redis-5.0.7.tar.gzSlave1  CentOS7192.168.246.9 redis-5.0.7.tar.gzSlave2CentOS7192.168.246.10 redis-5.0.7.tar.gz 关闭防火墙、防护 systemctl stop firewalld setenforce 0 2.4.2三台机器都安装redis [rootlocalhost ~]#systemctl stop firewalld [rootlocalhost ~]#setenforce 0 [rootlocalhost ~]#yum install gcc gcc-c make -y [rootlocalhost ~]#cd /opt [rootlocalhost opt]#ls rh [rootlocalhost opt]#rz -E rz waiting to receive. [rootlocalhost opt]#ls redis-5.0.7.tar.gz rh [rootlocalhost opt]#tar xf redis-5.0.7.tar.gz [rootlocalhost opt]#ls redis-5.0.7 redis-5.0.7.tar.gz rh [rootlocalhost opt]#cd /opt/redis-5.0.7/ [rootlocalhost redis-5.0.7]#make -j 4 [rootlocalhost redis-5.0.7]#make prefix/usr/local/redis install [rootlocalhost redis-5.0.7]#cd /opt/redis-5.0.7/utils/ [rootlocalhost utils]#./install_server.shPlease select the redis executable path [/usr/local/bin/redis-server] /usr/local/redis/bin/redis-server [rootlocalhost utils]#ln -s /usr/local/redis/bin/* /usr/local/bin/ [rootlocalhost utils]#/etc/init.d/redis_6379 start /var/run/redis_6379.pid exists, process is already running or crashed [rootlocalhost utils]#netstat -natp|grep redis tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 6447/redis-server 1 [rootlocalhost utils]#netstat -natp|grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 6447/redis-server 1 [rootlocalhost utils]# ​​​​​​​[rootlocalhost ~]#yum install gcc gcc-c make -y 修改下主机名好区分 2.4.3修改 Redis 配置文件Master节点操作 ​vim /etc/redis/6379.confbind 0.0.0.0 #70行修改监听地址为0.0.0.0 daemontze yes #137行开启守护进程 logfile/var/log/redis_6379.1og #172行指定日志文件目录 dir/var/lib/redis/6379 #264行指定工作目录 appendonly yes #700行开启AOF持久化功能 ---------------------------------------- /etc/init.d/redis_6379 restart 2.4.4修改Redis配置文件slave节点操作 vim /etc/redis/6379.confbind 0.0.0.0 #70行修改监听地址为0.0.0.0 daemonize yes #137行开启守护进程 logfile /var/log/redis_6379.log #172行指定日志文件目录 dir /var/lib/redis/6379 #264行指定工作目录 replicaof 192.168.246.8 6379 #288行指定要同步的Master节点IP和端口 appendonly yes #700行开启AOF持久化功能 ------------------------------------/etc/init.d/redis_6379 restart slave2配置 由于配置一样我们先备份下slave2配置文件从slave1直接远程拷贝过去到slave2再去查看下是否正确 2.4.5验证主从效果 2.4.5.1在Master节点上看日志 [rootmaster_redis ~]#tail -f /var/log/redis_6379.log 两个从同步成功 2.4.5.2在Master节点上验证从节点 redis-cli info replication 2.4.5.3在master节点上添加数据 从节点查看 三、Redis哨兵模式 3.1Redis哨兵模式概述 主从切换技术的方法是当服务器宕机后需要手动一台从机切换为主机这需要人工干预不仅费时费力而且还会造成一段时间内服务不可用。为了解决主从复制的缺点就有了哨兵机制。 哨兵的核心功能在主从复制的基础上哨兵引入了主节点的自动故障转移 3.2哨兵模式原理 哨兵(sentinel):是一个分布式系统用于对主从结构中的每台服务器进行监控当出现故障时通过投票机制选择新的 Master并将所有slave连接到新的 Master 所以整个运行哨兵的集群的数量不得少于3个节点。 3.3哨兵模式的作用 3.3.1监控 哨兵会不断地检查主节点和从节点是否运作正常、还有哨兵节点是否运作正常。 3.3.2自动故障转移 当主节点不能正常工作时哨兵会开始自动故障转移操作它会将失效主节点的其中一个从节点升级为新的主节点并让其它从节点改为复制新的主节点。 3.3.3通知提醒 哨兵可以将故障转移的结果发送给客户端。 3.4哨兵结构由两部分组成哨兵节点和数据节点 哨兵节点哨兵系统由一个或多个哨兵节点组成哨兵节点是特殊的redis节点不存储数据。数据节点主节点和从节点都是数据节点。 3.5故障转移机制 (哨兵的原理) 1.由哨兵节点定期监控发现主节点是否出现了故障 每个哨兵节点每隔1秒会向主节点、从节点及其它哨兵节点发送一次ping命令做一次心跳检测。 如果主节点在一定时间范围内不回复或者是回复一个错误消息那么这个哨兵就会认为这个主节点主观下线了单方面的。当超过半数哨兵节点认为该主节点主观下线了这样就客观下线了。 2.当主节点出现故障此时哨兵节点会通过Raft算法选举算法实现选举机制共同选举出一个哨兵节点为leader来负责处理主节点的故障转移和通知。 所以整个运行哨兵的集群的数量不得少于3个节点。 3.由leader哨兵节点执行故障转移过程如下 将某一个从节点升级为新的主节点让其它从节点指向新的主节点若原主节点恢复也变成从节点并指向新的主节点通知客户端主节点已经更换。 需要特别注意的是客观下线是主节点才有的概念 如果从节点和哨兵节点发生故障被哨兵主观下线后不会再有后续的客观下线和故障转移操作。 上图所示多个哨兵之间也存在互相监控这就形成了多哨兵模式现在对该模式的工作过程进行讲解介绍如下 1) 主观下线 主观下线适用于主服务器和从服务器。如果在规定的时间内(配置参数down-after-milliseconds)Sentinel 节点没有收到目标服务器的有效回复则判定该服务器为“主观下线”。比如 Sentinel1 向主服务发送了 PING命令在规定时间内没收到主服务器 PONG回复则 Sentinel1 判定主服务器为“主观下线”。 2) 客观下线 客观下线只适用于主服务器。 Sentinel1 发现主服务器出现了故障它会通过相应的命令询问其它 Sentinel 节点对主服务器的状态判断。如果超过半数以上的  Sentinel 节点认为主服务器 down 掉则 Sentinel1 节点判定主服务为“客观下线”。 3) 投票选举 投票选举所有 Sentinel 节点会通过投票机制按照谁发现谁去处理的原则选举 Sentinel1 为领头节点去做 Failover故障转移操作。Sentinel1 节点则按照一定的规则在所有从节点中选择一个最优的作为主服务器然后通过发布订功能通知其余的从节点slave更改配置文件跟随新上任的主服务器master。至此就完成了主从切换的操作。 对上对述过程做简单总结 Sentinel 负责监控主从节点的“健康”状态。当主节点挂掉时自动选择一个最优的从节点切换为主节点。客户端来连接 Redis 集群时会首先连接 Sentinel通过 Sentinel 来查询主节点的地址然后再去连接主节点进行数据交互。当主节点发生故障时客户端会重新向 Sentinel 要地址Sentinel 会将最新的主节点地址告诉客户端。因此应用程序无需重启即可自动完成主从节点切换 ①哨兵对主从复制集群进行监控     监控对象所有redis数据节点 ②哨兵与哨兵之间进行相互监控     监控的对象: 哨兵彼此 ③监控目的 3.1 哨兵与哨兵之间的监控目的检测彼此的存活状态 3.2 哨兵监控所有的redis数据库的目的:为了实现故障自动故障切换故障切换原理 ① 当master 挂掉哨兵会及时发现发现之后 进行投票机制选举出一个新的master服务器一定是基数) ② 完成salve-----master的 从向主 进行切换 ③ 完成其他的从服务器对新的master配置 3.5.1主节点的选举 过滤掉不健康的已下线的没有回复哨兵 ping 响应的从节点。选择配置文件中从节点优先级配置最高的replica-priority默认值为100选择复制偏移量最大也就是复制最完整的从节点。 哨兵的启动依赖于主从模式所以须把主从模式安装好的情况下再去做哨兵模式 3.6搭建redis哨兵模式 环境准备 主机操作系统  IP地址 软件 / 安装包 / 工具Master、sentinel1CentOS7192.168.246.8 redis-5.0.7.tar.gzSlave1、sentinel2CentOS7192.168.246.9 redis-5.0.7.tar.gzSlave2、sentinel3CentOS7192.168.246.10 redis-5.0.7.tar.gz 哨兵的启动依赖于主从模式所以须把主从模式安装好的情况下再去做哨兵模式 哨兵模式要在基于主从复制已搭建完成的前提下才可以做哦 3.6.1修改 Redis 哨兵模式的配置文件所有节点都要操作 vim /opt/redis-5.0.7/sentinel.conf ------------------------------------------ protected-mode no #17行关闭保护模式 port 26379 #21行Redis哨兵默认的监听端口 daemonize yes #26行指定sentinel为后台启动 logfile /var/log/sentinel.log #36行指定日志存放路径 dir /var/lib/redis/6379 #65行指定数据库存放路径 sentinel monitor mymaster 192.168.246.8 6379 2 #84行修改 指定该哨兵节点监控192.168.10.23:6379这个主节点该主节点的名称是mymaster最后的2的含义与主节点的故障判定有关至少需要2个哨兵节点同意才能判定主节点故障并进行故障转移 sentinel down-after-milliseconds mymaster 30000 #113行判定服务器down掉的时间周期默认30000毫秒30秒 sentinel failover-timeout mymaster 180000 #146行故障节点的最大超时时间为180000180秒 可以再所有主机添加ip地址加域名这样远程拷贝可以快一点 其他两台主机配置/opt/redis-5.0.7/sentinel.conf scp /opt/redis-5.0.7/sentinel.conf 192.168.246.9:/opt/redis-5.0.7/sentinel.conf scp /opt/redis-5.0.7/sentinel.conf 192.168.246.10:/opt/redis-5.0.7/sentinel.conf 3.6.2启动哨兵模式 先启master再启slave 先启master再启slavecd /opt/redis-5.0.7/ redis-sentinel sentinel.conf 3.6.3查看哨兵信息 redis-cli -p 26379 info sentinel 3.6.4故障模拟 3.6.4.1去master查看进程号 ps -ef|grep redisps aux|grep redis #查看进程3.6.4.2杀死 Master 节点上redis-server的进程号 3.6.5验证结果 ①在哨兵节点上验证master是否转换至从服务器  tail -f /var/log/sentinel.log 再次查看哨兵信息 ②在哨兵节点上再次查看哨兵信息查看是否转换成功 redis-cli -p 26379 info sentinel 总结 1、主从复制 redis主从复制 是为了数据冗余和读写分离 在这两种模式中有两种角色主节点master和从节点slave主节点负责处理写的操作 并将数据更改复制到一个或多个从节点。 这样我们的主节点负载减轻从节点可以提供数据读取服务实现读写分离如果主节点停止服务从节点之一可以立即接管主节点的角色再继续提供服务 具体流程如下 1、从节点启动成功连接主节点后发送一个sync命令 2、主节点接受到sync的命令后开始在后台保存快照同时,它也开始记录接收到rsnc后所有执行写的命令快照完成后会将这个快照文件发送给从节点。 3、从节点收到快照文件之后开始载入并持续接受主节点发送过来的新的写命令执行 总的来说 通过主从复制redis 能够实现数据的备份master 产生的数据能slave备份负责均衡读操作可以分摊到slave上去和高可用master宕机后可以由slave进行故障切换 2、redis  哨兵机制 哨兵是一个高可用的行解决方案 官方认可 默认模式 1、监控redis 哨兵 会持续监控master和slave实例是否正常运行 2、通知如某个redis实例有问题哨兵可以通过API向管理员或者其他应用发信通知 3、自动故障转移如果master节点不工作哨兵会开始故障转移的过程选择一个slave节点晋升为新的master其他剩余slave的节点会被重新配置为新的master节点的slave 4、配置提供服务:客户端可以使用哨兵来查询被认证的master节点该master节点的目录所有的slave节点 redis 哨兵是一个用于管理多个reids服务的系统它提供监控、通知、自动故障转移、配置提供服务的功能以实现redis高可用性
http://www.pierceye.com/news/197381/

相关文章:

  • wordpress五分钟建站手机网站 cms
  • 网站前台后台河南省建设工程质量协会网站
  • wordpress无法拖动小工具长沙seo网站推广
  • 网站的推广方案的内容有哪些网站建设所需技术
  • 手机微网站怎么制作的威特视频网站建设方案
  • 视频播放网站开发的报告潮州网站网站建设
  • 如何查询网站域名备案建设网站找什么问题
  • 南开大学 网站开发技术 刘冲网站排名优化有哪些牛霸天的软件1
  • 高品质网站设计北京市地铁建设管理公司网站
  • 初次建设网站的技巧织梦做分类信息网站
  • 宣讲家网站官网加强作风建设网站业务怎么做的
  • 厚街网站建设价格做办公室的网站
  • 青海做网站找谁wordpress gif缩略图
  • 手机网站全屏显示如何把自己做的网站放到微信上
  • 网站建设云雅淇wordpress
  • 工作室网站需要备案吗python基础教程编程题
  • 建设工程人才招聘信息网站响应式网站 cms
  • 设计签名免费网站福州的网站建设
  • 太原这边有做网站的吗wordpress实现pdf浏览
  • 制作微信公众号的网站开发30岁做网站运营
  • 松江手机网站开发正规免费代理
  • 太原市建设路小学网站昆山住房与城乡建设局网站
  • 石家庄的网站的公司计算机应用技术专业网站开发方向
  • 网站优化软件排行榜八年级微机网站怎么做
  • 织梦网站漏洞cms网站开发流程
  • 网站开发规划书怎么写企业cms开源
  • html网站免费下载海珠区建网站
  • 石家庄住房城乡建设厅网站宿迁网站建设推广公司
  • 广州模板网站建设费用2024新闻热点摘抄
  • 河北秦皇岛建设局网站做网站简单的软件