企业网站建设的方式有哪些方式python基础教程这本书怎么样
企业网站建设的方式有哪些方式,python基础教程这本书怎么样,制作网站的收获体会,建设银行短信开通网站目录 1.主从复制
(1)复制实例
(2)修改配置文件
主库
从库6380(6381的操作也一样)
(3)验证配置
2.哨兵机制
核心 3 大功能
哨兵选举的 2 个核心阶段
阶段 1#xff1a;判定主库真宕机#xff08;客观下线#xff09;
阶段 2#xff1a;选举#xff08;2 层选举&a…目录1.主从复制(1)复制实例(2)修改配置文件主库从库6380(6381的操作也一样)(3)验证配置2.哨兵机制核心 3 大功能哨兵选举的 2 个核心阶段阶段 1判定主库真宕机客观下线阶段 2选举2 层选举先选哨兵 leader再选新主库① 选举哨兵领导者负责执行故障切换② 选举新主库从存活的从库中选关键细节(1)配置哨兵(2)模拟主库宕机(3)新主库的值修改1.主从复制持久化保证了即使redis服务重启也不会丢失数据因为redis服务重启后会将硬盘上持久化的数据恢复到内存中但是当redis服务器的硬盘损坏了可能会导致数据丢失如果通过redis的主从复制机制就可以避免这种单点故障如下图说明1.主redis中的数据有两个副本replication即从redis1和从redis2即使一台redis服务器宕机其它两台redis服务也可以继续提供服务。2.主redis中的数据和从redis上的数据保持实时同步当主redis写入数据时通过主从复制机制会复制到两个从redis服务上。3.只有一个主redis可以有多个从redis。4.主从复制不会阻塞master在同步数据时master 可以继续处理client 请求5.一个redis可以即是主又是从如下图(1)复制实例把redis的bin目录和配置文件复制到另外一个目录下面作为另外一个redis实例其中6379作为主库其他两个是从库每一个库里面的文件如图所示bin目录赋予文件可执行权限的命令chmod x [文件名](2)修改配置文件主库找到如下配置项并且修改它们bind 0.0.0.0监听所有IPv4接口允许外部连接也可以指定特定的IPrequirepass [客户端连接密码]客户端连接的密码protected-mode yes开启保护模式daemonize yes开启守护进程模式redis在后台运行如果是no的话redis就会在前台运行从库6380(6381的操作也一样)修改配置文件我用的是redis5.0.4版本挂载命令用的不是slaveofreplicaof [主库ip] [主库端口] #让这个实例运行到6380端口(6381的话就改成6381) port 6380 pidfile /var/run/redis_6380.pid requirepass [连接密码] #如果配置了主库密码从库需要配置主库的密码 masterauth [主库密码](3)验证配置我们可以使用我们本地windows的Redis远程连接工具连接连接主库和从库之后在主库上面添加数据从库上面也能查询到Host是运行6381实例的主机ip(我们现在是三个redis实例都在一个主机上所以填相同的ip就行了)AUTH是密码就是上面配置好的填写完之后点击Test Connection看到连接成功就可以点ok了然后在6379端口的主库添加键然后在另外两个库里面查看2.哨兵机制哨兵是 Redis 主从架构的 “监控 自动故障恢复” 组件核心解决主库宕机后手动切换主从的问题保证集群高可用。核心 3 大功能1.监控持续检查主库、从库是否存活2.故障自动切换主库宕机后从哨兵选举新主库让其他从库同步新主库3.通知把故障和切换结果告知客户端 / 运维。哨兵选举的 2 个核心阶段哨兵的选举分 “判定主库宕机” 和 “选举新主库 哨兵领导者” 两步缺一不可阶段 1判定主库真宕机客观下线单个哨兵发现主库无响应 → 标记为 “主观下线”自己认为宕机该哨兵向集群中其他哨兵发 “确认请求”超过 quorum 配置文件中 monitor 后的数字个哨兵确认主库宕机 → 标记为 “客观下线”集群公认宕机。阶段 2选举2 层选举先选哨兵 leader再选新主库① 选举哨兵领导者负责执行故障切换所有哨兵通过 “Raft 协议” 投票每个哨兵都能参选先到先得获得半数以上选票的哨兵成为 leader只有 leader 会执行后续的 “选新主库、切换主从” 操作其他哨兵仅待命。② 选举新主库从存活的从库中选哨兵 leader 按以下优先级选新主库从上到下筛选排除宕机、网络不通的从库选 replica-priority 从库优先级值更小的默认 1000 表示无参选资格选复制偏移量更大的数据和旧主库更同步选运行 ID 更小的最终兜底规则。关键细节哨兵集群要求至少部署 3 个哨兵奇数避免投票平局 quorum 建议设为哨兵数量的半数 1如 3 个哨兵设 2切换后动作新主库会被关闭只读 replica-read-only no 其他从库会被修改 replicaof 指向新主库客户端适配客户端需连接哨兵获取主库地址而非直接连固定 IP: 端口否则切换后连不上新主库。核心环节关键逻辑哨兵作用监控主从 自动故障切换 通知宕机判定主观下线 → 超过 quorum 确认 → 客观下线选举流程先选哨兵 leaderRaft 协议→ 再选新主库优先级 偏移量 运行 ID核心保障3 个以上哨兵 奇数部署避免脑裂 / 投票平局(1)配置哨兵我们使用多配置文件方式创建三个哨兵在6379主库目录下创建3个哨兵配置文件 sentinel_26379.conf 、 sentinel_26380.conf 、 sentinel_26381.conf配置文件如图# 哨兵自身端口 port 26379 # 守护进程模式 daemonize yes # pid文件路径 pidfile /var/run/redis-sentinel-26379.pid # 日志文件路径 logfile /var/log/redis/sentinel_26379.log # 工作目录 dir /tmp # 核心监控配置监控主库master 127.0.0.1:6379 quorum2 # 格式sentinel monitor 主库名称 主库IP 主库端口 quorum值 sentinel monitor master 127.0.0.1 6379 2 # 主库密码若主库有requirepass必须配置无密码则注释这行 sentinel auth-pass master 主库密码 # 主库无响应超时时间30秒 sentinel down-after-milliseconds master 30000 # 故障切换超时时间180秒 sentinel failover-timeout master 180000 # 并行同步从库数1个避免主库压力大 sentinel parallel-syncs master 1剩下两个哨兵也这样配只需要改端口就行了改完端口之后创建好日志目录mkdir -p /var/log/redis然后启动哨兵没权限的话先给权限chmod x redis-sentinel进入6379的bin目录运行如下命令./redis-sentinel ../sentinel_26379.conf ./redis-sentinel ../sentinel_26380.conf ./redis-sentinel ../sentinel_26381.conf我们可以用命令确认是否启动ps -ef | grep redis-sentinel登录哨兵可以看到如下信息./redis-cli -p 26379我们重点看name(主库名称):masterip(主库ip):127.0.0.1port(主库端口):6379num-slaves(识别到2个从库6380/6381):2num-other-sentinels(识别到其他的2个哨兵):2127.0.0.1:26379 sentinel master master 1) name 2) master 3) ip 4) 127.0.0.1 5) port 6) 6379 7) runid 8) f3507f05bcf0b74f9f1bc02963e84b0c6e9e446d 9) flags 10) master 11) link-pending-commands 12) 0 13) link-refcount 14) 1 15) last-ping-sent 16) 0 17) last-ok-ping-reply 18) 390 19) last-ping-reply 20) 390 21) down-after-milliseconds 22) 30000 23) info-refresh 24) 1785 25) role-reported 26) master 27) role-reported-time 28) 272743 29) config-epoch 30) 0 31) num-slaves 32) 2 33) num-other-sentinels 34) 2 35) quorum 36) 2 37) failover-timeout 38) 180000 39) parallel-syncs 40) 1(2)模拟主库宕机我们先把主库停掉然后等待30秒(对应配置的 down-after-milliseconds 30000 )这里我们看到master主库已经变成了6380然后我们恢复6379,在26379哨兵当中查看sentinel get-master-addr-by-name master6379出现在从库列表当中(3)新主库的值修改我们在恢复6379之前6380作为新的主库也能够进行正常的读写操作然后在6381处查看