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

四川网站建设找哪家能引流的都有什么平台

四川网站建设找哪家,能引流的都有什么平台,做网站找哪家公司比较好,教师遭网课入侵直播录屏曝光口文章目录 一、redis 哨兵#xff08;sentinel#xff09;redis 集群介绍哨兵#xff08;Sentinel#xff09;工作原理sentinel 架构和故障转移sentinel中的三个定时任务 实时哨兵启动哨兵验证哨兵端口查看哨兵日志当前sentinel状态停止Redis Master测试故障转移恢复故障的m… 文章目录 一、redis 哨兵sentinelredis 集群介绍哨兵Sentinel工作原理sentinel 架构和故障转移sentinel中的三个定时任务 实时哨兵启动哨兵验证哨兵端口查看哨兵日志当前sentinel状态停止Redis Master测试故障转移恢复故障的master重新加入redis集群sentinel 运维python连接redispython连接Sentinel哨兵 一、redis 哨兵sentinel redis 集群介绍 主从架构无法实现master和slave角色的自动切换即当master出现redis服务异常、主机断电、磁盘损坏等问题导致master无法使用而redis主从复制无法实现自动的故障转移(将slave 自动提升为新master)需要手动修改环境配置,才能切换到slave redis服务器另外也无法横向扩展Redis服务的并行写入性能当单台Redis服务器性能无法满足业务写入需求的时候,也需要解决以上的两个核心问题 master和slave角色的无缝切换让业务无感知从而不影响业务使用可横向动态扩展Redis服务器从而实现多台服务器并行写入以实现更高并发的目的。 Redis 集群实现方式 客户端分片: 由应用决定将不同的KEY发送到不同的Redis服务器代理分片: 由代理决定将不同的KEY发送到不同的Redis服务器,代理程序如:codis,twemproxy等Redis Cluster 哨兵Sentinel工作原理 sentinel 架构和故障转移 Sentinel 进程是用于监控redis集群中Master主服务器工作的状态在Master主服务器发生故障的时候可以实现Master和Slave服务器的切换保证系统的高可用此功能在redis2.6的版本已引用Redis的哨兵模式到了2.8版本之后就稳定了下来。一般在生产环境也建议使用Redis的2.8版本的以后版本 哨兵(Sentinel) 是一个分布式系统可以在一个架构中运行多个哨兵(sentinel) 进程这些进程使用流言协议(gossip protocols)来接收关于Master主服务器是否下线的信息并使用投票协议(AgreementProtocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master 每个哨兵(Sentinel)进程会向其它哨兵(Sentinel)、Master、Slave定时发送消息以确认对方是否”活”着如果发现对方在指定配置时间(此项可配置)内未得到回应则暂时认为对方已离线也就是所谓的”主观认为宕机” (主观:是每个成员都具有的独自的而且可能相同也可能不同的意识)英文名称Subjective Down简称SDOWN 有主观宕机对应的有客观宕机。当“哨兵群”中的多数Sentinel进程在对Master主服务器做出SDOWN的判断并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后得出的Master Server下线判断这种方式就是“客观宕机”(客观:是不依赖于某种意识而已经实际存在的一切事物)英文名称是Objectively Down 简称 ODOWN 通过一定的vote算法从剩下的slave从服务器节点中选一台提升为Master服务器节点然后自动修改相关配置并开启故障转移failover Sentinel 机制可以解决master和slave角色的自动切换问题但单个 Master 的性能瓶颈问题无法解决,类似于MySQL中的MHA功能 Redis Sentinel中的Sentinel节点个数应该为大于等于3且最好为奇数 客户端初始化时连接的是Sentinel节点集合不再是具体的Redis节点但Sentinel只是配置中心不是代理。 Redis Sentinel 节点与普通redis 没有区别,要实现读写分离依赖于客户端程序 redis 3.0 之前版本中,生产环境一般使用哨兵模式,但3.0后推出redis cluster功能后,可以支持更大规模的生产环境 sentinel中的三个定时任务 每10秒每个sentinel对master和slave执行info 发现slave节点确认主从关系 每2秒每个sentinel通过master节点的channel交换信(pub/sub) 通过sentinel_hello频道交互交互对节点的“看法”和自身信息 每1秒每个sentinel对其他sentinel和redis执行ping 实时哨兵 哨兵的准备实现主从复制架构 哨兵的前提是已经实现了一个redis的主从复制的运行环境从而实现一个一主两从基于哨兵的高可用redis架构注意: master 的配置文件中masterauth 和slave 都必须相同 # 在所有主从节点执行这里以master为例 [rootmaster ~]# vim /apps/redis/etc/redis.conf bind 0.0.0.0 masterauth centos requirepass centos [rootmaster ~]# echo -e net.core.somaxconn 1024\nvm.overcommit_memory 1 /etc/sysctl.conf [rootmaster ~]# sysctl -p net.core.somaxconn 1024 vm.overcommit_memory 1 net.core.somaxconn 1024 vm.overcommit_memory 1 [rootmaster ~]# echo never /sys/kernel/mm/transparent_hugepage/enabled [rootmaster ~]# echo echo never /sys/kernel/mm/transparent_hugepage/enabled /etc/rc.d/rc.local [rootmaster ~]# chmod x /etc/rc.d/rc.local [rootmaster ~]# systemctl restart redis设置主从复制 #在所有从节点执行这里以slave1为例 [rootslave1 ~]# echo replicaof 192.168.64.129 6379 /apps/redis/etc/redis.conf [rootslave1 ~]# systemctl restart redismaster服务器状态 [rootmaster ~]# redis-cli 127.0.0.1:6379 auth centos OK 127.0.0.1:6379 info replication # Replication role:master connected_slaves:2 slave0:ip192.168.175.20,port6379,stateonline,offset112,lag0 slave1:ip192.168.175.30,port6379,stateonline,offset112,lag0 master_replid:ec21203b0f3034282e18d6532055379b3de45f82 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:112 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:112编辑哨兵的配置文件 Sentinel实际上是一个特殊的redis服务器,有些redis指令支持,但很多指令并不支持.默认监听在26379/tcp端口哨兵可以不和Redis服务器部署在一起但一般部署在一起所有redis节点使用相同的配置文件 # 如果是编译安装在源码目录有sentinel.conf复制到安装目录即可 [rootmaster ~]# cp redis-5.0.9/sentinel.conf /apps/redis/etc/ [rootmaster ~]# grep -Ev ^(#|$) /apps/redis/etc/sentinel.conf port 26379 daemonize no pidfile /var/run/redis-sentinel.pid logfile dir /tmp #工作目录 sentinel monitor mymaster 127.0.0.1 6379 2 #指定当前mymaster集群中master服务器的地址和端口 #2为法定人数限制(quorum)即有几个sentinel认为master down了就进行故障转移一般此值是所有sentinel节点(一般总数是3的 奇数,如:3,5,7等)的一半以上的整数值比如总数是3即3/21.5取整为2,是master的ODOWN客观下线的依据 sentinel auth-pass master-name password #mymaster集群中master的密码注意此行要在上面行的下面 sentinel down-after-milliseconds mymaster 30000 #(SDOWN)判断mymaster集群中所有节点的主观下线的时间单位毫秒建议30000 sentinel parallel-syncs mymaster 1 #发生故障转移后同时向新master同步数据的slave数量数字越小总同步时间越长但可以减轻新master的负载压力 sentinel failover-timeout mymaster 180000 #所有slaves指向新的master所需的超时时间单位毫秒 sentinel deny-scripts-reconfig yes #禁止修改脚本三个哨兵服务器的配置都如下以master为例 [rootmaster ~]# grep -Ev ^(#|$) /apps/redis/etc/sentinel.conf port 26379 daemonize no pidfile /apps/redis/run/redis-sentinel.pid logfile /apps/redis/log/sentinel.log dir /tmp sentinel monitor mymaster 192.168.64.129 6379 2 sentinel auth-pass mymaster centos sentinel down-after-milliseconds mymaster 3000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes [rootmaster ~]# chown redis.redis /apps/redis/etc/sentinel.conf启动哨兵 三台哨兵服务器都要启动 # 添加哨兵服务 [rootmaster ~]# cat EOF /lib/systemd/system/redis-sentinel.service [Unit] DescriptionRedis Sentinel Afternetwork.target Afternetwork-online.target Wantsnetwork-online.target [Service] ExecStart/apps/redis/bin/redis-sentinel /apps/redis/etc/sentinel.conf --supervised systemd ExecStop/usr/libexec/redis-shutdown redis-sentinel Typenotify Userredis Groupredis RuntimeDirectoryredis RuntimeDirectoryMode0755 [Install] WantedBymulti-user.target EOF [rootmaster ~]# systemctl daemon-reload # 确保每个哨兵主机myid不同 #在master上 [rootmaster ~]# systemctl enable --now redis-sentinel [rootmaster ~]# grep myid /apps/redis/etc/sentinel.conf sentinel myid 4e119d69b1b0bee2a660bcb3162b6116907672e3 # 在slave1上 [rootslave1 ~]# systemctl enable --now redis-sentinel [rootslave1 ~]# grep myid /apps/redis/etc/sentinel.conf sentinel myid 946a5a7cb7ab39f46043e2db4f2f41ca1a04ec45 #在slave2上 [rootslave2 ~]# systemctl enable --now redis-sentinel [rootslave2 ~]# grep myid /apps/redis/etc/sentinel.conf sentinel myid 8d40b041b85bd197b33a34358169ee7b08de0ecc # 以下内容在服务启动后自动生成不需要修改 [rootmaster ~]# grep mymaster /apps/redis/etc/sentinel.conf # sentinel auth-pass mymaster MySUPER--secret-0123passw0rd sentinel monitor mymaster 192.168.175.10 6379 2 sentinel down-after-milliseconds mymaster 3000 sentinel auth-pass mymaster centos # sentinel notification-script mymaster /var/redis/notify.sh # sentinel client-reconfig-script mymaster /var/redis/reconfig.sh sentinel config-epoch mymaster 0 # instead of the normal ones. For example if the master mymaster, and the # SENTINEL rename-command mymaster CONFIG GUESSME # SENTINEL rename-command mymaster CONFIG CONFIG sentinel leader-epoch mymaster 0 sentinel known-replica mymaster 192.168.175.30 6379 sentinel known-replica mymaster 192.168.175.20 6379 sentinel known-sentinel mymaster 192.168.175.30 263798d40b041b85bd197b33a34358169ee7b08de0ecc sentinel known-sentinel mymaster 192.168.175.20 26379946a5a7cb7ab39f46043e2db4f2f41ca1a04ec45验证哨兵端口 [rootmaster ~]# ss -ntl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 511 *:26379 *:*查看哨兵日志 [rootmaster ~]# tail /apps/redis/log/sentinel.log 18077:X 10 Jul 2021 11:23:34.486 # Current maximum open files is 4096.maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase ulimit -n. 18077:X 10 Jul 2021 11:23:34.487 * Running modesentinel, port26379. 18077:X 10 Jul 2021 11:23:34.487 # Sentinel ID is 4e119d69b1b0bee2a660bcb3162b6116907672e3 18077:X 10 Jul 2021 11:23:34.487 # monitor master mymaster 192.168.175.10 6379 quorum 2 18077:X 10 Jul 2021 11:23:37.553 # sdown slave 192.168.175.30:6379 192.168.175.30 6379 mymaster 192.168.175.10 6379 18077:X 10 Jul 2021 11:23:37.553 # sdown slave 192.168.175.20:6379 192.168.175.20 6379 mymaster 192.168.175.10 6379 18077:X 10 Jul 2021 11:33:18.954 * sentinel sentinel 946a5a7cb7ab39f46043e2db4f2f41ca1a04ec45 192.168.175.20 26379 mymaster 192.168.175.10 6379 18077:X 10 Jul 2021 11:33:22.007 # sdown sentinel 946a5a7cb7ab39f46043e2db4f2f41ca1a04ec45 192.168.175.20 26379 mymaster 192.168.175.10 6379 18077:X 10 Jul 2021 11:33:48.674 * sentinel sentinel 8d40b041b85bd197b33a34358169ee7b08de0ecc 192.168.175.30 26379 mymaster 192.168.175.10 6379 18077:X 10 Jul 2021 11:33:51.763 # sdown sentinel 8d40b041b85bd197b33a34358169ee7b08de0ecc 192.168.175.30 26379 mymaster 192.168.175.10 6379当前sentinel状态 在sentinel状态中尤其是最后一行涉及到masterIP是多少有几个slave有几个sentinels必须是符合全部服务器数量 [rootmaster ~]# redis-cli -p 26379 127.0.0.1:26379 info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:namemymaster,statusok,address192.168.175.10:6379,slaves2,sentinels3停止Redis Master测试故障转移 yum install psmisc -y [rootmaster ~]# killall redis-server查看各节点上哨兵信息 [rootslave1 ~]# redis-cli -p 26379 127.0.0.1:26379 INFO sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:namemymaster,statusok,address192.168.175.30:6379,slaves2,sentinels3故障转移后的redis配置文件会被自动修改 [rootslave1 ~]# grep ^replicaof /apps/redis/etc/redis.conf replicaof 192.168.175.30 6379哨兵配置文件的sentinel monitor IP 同样也会被修改 [rootslave1 ~]# grep monitor /apps/redis/etc/sentinel.conf sentinel monitor mymaster 192.168.175.30 6379 2新的master 状态 [rootslave2 ~]# redis-cli -a centos --no-auth-warning 127.0.0.1:6379 info replication # Replication role:master connected_slaves:1 slave0:ip192.168.175.20,port6379,stateonline,offset74161,lag1 master_replid:62c8c8c818b352be6a1afa248c1c0813f57bc1f8 master_replid2:88af3671612025201653c7467ebb880e6eae0912 master_repl_offset:74161 second_repl_offset:42755 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:74161恢复故障的master重新加入redis集群 [rootmaster ~]# systemctl start redis [rootmaster ~]# grep ^replicaof /apps/redis/etc/redis.conf replicaof 192.168.175.30 6379 [rootmaster ~]# redis-cli -a centos --no-auth-warning 127.0.0.1:6379 info replication # Replication role:slave master_host:192.168.175.30 master_port:6379 master_link_status:up master_last_io_seconds_ago:2 master_sync_in_progress:0 slave_repl_offset:306155 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:de66459a2ecc3f0652fcefc6be633855ccda5c1e master_replid2:0000000000000000000000000000000000000000 master_repl_offset:306155 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:261652 repl_backlog_histlen:44504sentinel 运维 手动让主节点下线 # 指定优先级,值越小sentinel会优先将之选为新的master,默为值为100 [rootmaster ~]# vim /apps/redis/etc/redis.conf replica-priority 10 [rootmaster ~]# systemctl restart redis [rootmaster ~]# redis-cli -p 26379 127.0.0.1:26379 sentinel failover mymaster #手动发起哨兵切换不用对redis实例进行关机模拟主节点下降防止影响业务 OK 127.0.0.1:26379 info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:namemymaster,statusok,address192.168.175.10:6379,slaves2,sentinels3python连接redis 客户端连接sentinel工作原理 选举出一个sentinel 由这个sentinel 通过masterName 获取master节点信息 sentinel 发送role指令确认mater的信息 客户端订阅sentinel的相关频道,获取新的master 信息变化,并自动连接新的master python连接Sentinel哨兵 [rootmaster ~]# yum -y install epel-release [rootmaster ~]# yum -y install python3 python3-redis [rootmaster ~]# vim sentinel_test.py #!/usr/bin/python3 import redis from redis.sentinel import Sentinel #连接哨兵服务器(主机名也可以用域名) sentinel Sentinel([(192.168.175.10, 26379),(192.168.175.20, 26379),(192.168.175.30, 26379)],socket_timeout0.5) redis_auth_pass centos #mymaster 是配置哨兵模式的redis集群名称此为默认值,实际名称按照个人部署案例来填写 #获取主服务器地址 master sentinel.discover_master(mymaster) print(master) #获取从服务器地址 slave sentinel.discover_slaves(mymaster) print(slave) #获取主服务器连接进行写入 master sentinel.master_for(mymaster, socket_timeout0.5, passwordredis_auth_pass, db0) w_ret master.set(name, eagle) #输出True #获取从服务器进行读取默认是round-roubin slave sentinel.slave_for(mymaster, socket_timeout0.5, passwordredis_auth_pass, db0) r_ret slave.get(name) print(r_ret) #输出eagle[rootmaster ~]# python3 sentinel_test.py (192.168.175.10, 6379) [(192.168.175.20, 6379), (192.168.175.30, 6379)] beagle
http://www.tj-hxxt.cn/news/142387.html

相关文章:

  • 平面设计案例网站前端简历
  • 建筑设计地图网站手机百度一下
  • 重庆最大本地论坛天津百度网站快速优化
  • 安徽省住房与城乡建设部网站上海网络排名优化
  • wordpress建站速度提升华为云网站建设
  • 外贸网站制作广州用vs代码做网站
  • 公司招人去哪个网站搭建网站 软件
  • 免费网站站长推广做一个app需要学什么
  • 做网站用html好还是vue好做一个卖东西的网站
  • 内容管理网站建设方案手机传奇手游发布网站
  • 昆明网站关键词优化wordpress后台菜单加入页面
  • 黄村做网站的公司html5 后台网站模板
  • 网站建设费用皆选网络网站建设需要
  • 小程序 网站建设 app 开发中金超钒 网站建设
  • 深圳营销网站建设公司做医药代表去什么招聘网站
  • 广州网站制作到诺然网站制作的服务怎么样
  • 网站主办者有效证件电子件网站小图标怎么做的
  • 重庆有的设计网站wordpress 文章商品
  • .net 网站开发框架凤蝶直播
  • 网站开发工作标准莱芜网站开发代理
  • 校园网网站建设实训报告有做soho网站的吗
  • 海南做房地产网站的网络公司萍缘网站建设工作
  • 凡科网做网站贵吗深圳企业网站建设设计公司
  • 北京网站建设公司现状谷歌浏览器下载安装
  • 深圳企业网站设计长沙九度网络科技
  • 辽宁省建设厅网站升级ui设计界面配色
  • 免费如何创建网站平台厦门市海沧区建设局网站
  • 暖色调 网站广州软件开发杰迅科技
  • 加强网站硬件建设方案上海包装设计公司排名
  • 屏蔽阿里云网站吗网站制作费用低