范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

玩转Redis的高可用(主从哨兵集群)

  所谓的高可用,也叫 HA(High Availability),是分布式系统架构设计中必须考虑的因素之一,它是保证系统SLA的重要指标。Redis 高可用的主要有三种模式:主从模式,哨兵模式和集群模式。一、主从模式
  Redis 提供了 Redis 提供了复制(replication)功能,当一台 redis 数据库中的数据发生了变化,这个变化会被自动地同步到其他的 redis 机器上去。
  Redis 多机器部署时,这些机器节点会被分成两类,一类是主节点(master 节点),一类是从节点(slave 节点)。一般主节点可以进行读、写操作,而从节点只能进行读操作。一个主节点可以有多个从节点,但是一个从节点只会有一个主节点,也就是所谓的一主多从结构。优点
  · 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离;
  · Master 是以非阻塞的方式为主 Slaves 提供服务。所以在 Master-Slave 同步期间,客户端仍然可以提交查询或修改请求;
  · Slave 同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis 则返回同步之前的数据。缺点
  · Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的 IP 才能恢复;
  · 主机宕机,宕机前有部分数据未能及时同步到从机,切换 IP 后面还会引入数据不一致的问题,降低了系统的可用性;
  · Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂;
  · Redis 的主节点和从节点中的数据是一样的,降低的内存的可用性
  二、哨兵模式
  实际生产中,我们优先考虑哨兵模式。这种模式下,master 宕机,哨兵会自动选举 master 并将其他的 slave 指向新的 master。
  在主从模式下,redis 同时提供了哨兵命令redis-sentinel  ,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵进程向所有的 redis 机器人发送命令,等待 Redis 服务器响应,从而监控运行的多个 Redis 实例。一般为了便于决策选举,使用奇数个哨兵。多个哨兵构成一个哨兵集群,哨兵直接也会相互通信,检查哨兵是否正常运行,同时发现 master 战机哨兵之间会进行决策选举新的 master
  哨兵模式的作用:
  · 通过发送命令,让 Redis 服务器返回监控其运行状态,包括主服务器和从服务器;
  · 当哨兵监测到 master 宕机,会自动将 slave 切换到 master,然后通过发布订阅模式通过其他的服务器,修改配置文件,让它们切换主机;
  · 然而一个哨兵进程对 Redis 服务器进行监控,也可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多种哨兵模式。
  哨兵很像 kafka 集群中的 zookeeper 的功能。
  假设 master 宕机,sentinel 1 先检测到这个结果,系统并不会马上进行处理 failover(故障转移)选出新的 master,仅仅是 sentinel 1 主观地认为 master 不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由 sentinel 1 发起,进行 failover 操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。优点
  · 哨兵模式是基于主从模式的,所有主从的优点,哨兵模式都具有。
  · 主从可以自动切换,系统更健壮,可用性更高。缺点
  · 具有主从模式的缺点,每台机器上的数据是一样的,内存的可用性较低。
  · Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。
  三、集群模式
  Redis 集群模式本身没有使用一致性 hash 算法,而是使用 slots 插槽。
  Redis 哨兵模式基本已经可以实现高可用,读写分离 ,但是在这种模式下每台 Redis 服务器都存储相同的数据,很浪费内存,所以在 redis3.0 上加入了 Cluster 集群模式,实现了 Redis 的分布式存储,对数据进行分片,也就是说每台 Redis 节点上存储不同的内容;每个节点都会通过集群总线(cluster bus),与其他的节点进行通信。通讯时使用特殊的端口号,即对外服务端口号加 10000。例如如果某个 node 的端口号是 6379,那么它与其它 nodes 通信的端口号是 16379。nodes 之间的通信采用特殊的二进制协议。
  对客户端来说,整个 cluster 被看做是一个整体,客户端可以连接任意一个 node 进行操作,就像操作单一 Redis 实例一样,当客户端操作的时候 key 没有分配到该 node 上时,Redis 会返回转向指令,指向正确的 node,这有点儿像浏览器页面的 302 redirect 跳转。
  根据官方推荐,集群部署至少要 3 台以上的 master 节点,最好使用 3 主 3 从六个节点的模式。运行机制
  在 Redis 的每一个节点上,都有这么两个东西,一个是插槽(slot),它的的取值范围是:0-16383,可以从上面redis-trib.rb  执行的结果看到这 16383 个 slot 在三个 master 上的分布。还有一个就是 cluster,可以理解为是一个集群管理的插件,类似的哨兵。
  当我们的存取的 Key 到达的时候,Redis 会根据 crc16 的算法对计算后得出一个结果,然后把结果和 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。
  为了保证高可用,redis-cluster 集群引入了主从模式,一个主节点对应一个或者多个从节点。当其它主节点 ping 主节点 master 1 时,如果半数以上的主节点与 master 1 通信超时,那么认为 master 1 宕机了,就会启用 master 1 的从节点 slave 1,将 slave 1 变成主节点继续提供服务。
  如果 master 1 和它的从节点 slave 1 都宕机了,整个集群就会进入 fail 状态,因为集群的 slot 映射不完整。如果集群超过半数以上的 master 挂掉,无论是否有 slave,集群都会进入 fail 状态。
  redis-cluster 采用去中心化的思想,没有中心节点的说法,客户端与 Redis 节点直连,不需要中间代理层,客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。集群扩缩容
  对 redis 集群的扩容就是向集群中添加机器,缩容就是从集群中删除机器,并重新将 16383 个 slots 分配到集群中的节点上(数据迁移)。
  扩缩容也是使用集群管理工具 redis-tri.rb。
  扩容时,先使用redis-tri.rb add-node  将新的机器加到集群中,这是新机器虽然已经在集群中了,但是没有分配 slots,依然是不起做用的。在使用 redis-tri.rb reshard  进行分片重哈希(数据迁移),将旧节点上的 slots 分配到新节点上后,新节点才能起作用。
  缩容时,先要使用 redis-tri.rb reshard  移除的机器上的 slots,然后使用redis-tri.rb add-del  移除机器。优点
  采用去中心化思想,数据按照 slot 存储分布在多个节点,节点间数据共享,可动态调整数据分布;
  可扩展性:可线性扩展到 1000 多个节点,节点可动态添加或删除;
  高可用性:部分节点不可用时,集群仍可用。通过增加 Slave 做 standby 数据副本,能够实现故障自动 failover,节点之间通过 gossip 协议交换状态信息,用投票机制完成 Slave 到 Master 的角色提升;
  降低运维成本,提高系统的扩展性和可用性。缺点
  1.Redis Cluster 是无中心节点的集群架构,依靠 Goss 协议(谣言传播)协同自动化修复集群的状态。但 GosSIp 有消息延时和消息冗余的问题,在集群节点数量过多的时候,节点之间需要不断进行 PING/PANG 通讯,不必须要的流量占用了大量的网络资源。虽然 Reds4.0 对此进行了优化,但这个问题仍然存在。
  2.数据迁移问题
  Redis Cluster 可以进行节点的动态扩容缩容,这一过程,在目前实现中,还处于半自动状态,需要人工介入。在扩缩容的时候,需要进行数据迁移。
  而 Redis 为了保证迁移的一致性,迁移所有操作都是同步操作,执行迁移时,两端的 Redis 均会进入时长不等的阻塞状态,对于小 Key,该时间可以忽略不计,但如果一旦 Key 的内存使用过大,严重的时候会接触发集群内的故障转移,造成不必要的切换。四、总结
  主从模式:master 节点挂掉后,需要手动指定新的 master,可用性不高,基本不用。
  哨兵模式:master 节点挂掉后,哨兵进程会主动选举新的 master,可用性高,但是每个节点存储的数据是一样的,浪费内存空间。数据量不是很多,集群规模不是很大,需要自动容错容灾的时候使用。
  集群模式:数据量比较大,QPS 要求较高的时候使用。 Redis Cluster 是 Redis 3.0 以后才正式推出,时间较晚,目前能证明在大规模生产环境下成功的案例还不是很多,需要时间检验。

OPPO与爱立信展开合作,5G技术再获补强近期,OPPO宣布与全球领先的通信技术与服务提供商爱立信合作,成立5G联合实验室。OPPO将与爱立信联合研发5G技术,共同促进5G技术的成熟,推动5G技术的普及,为消费者带来体验更上汽通用规划投入500亿布局智能电动化预计到2025年规划投入将超过500亿元。4月8日,上汽通用公布了其在电动化智能网联化领域的最新战略布局。作为战略核心内容,上汽通用将基于通用汽车Ultium平台,推进本土化进程,小米有品新猛将易锁宝智能蓝牙U型锁,可以用手机一键控制科技让生活更美好,这话说的真好。在移动互联网时代越来越多的智能产品走进了我们的家庭里,智能家居已经是一种趋势,像常见的智能手机智能音箱智能灯泡智能门锁等等,深受当代年轻人的喜爱。最创势开玩合创联合电竞共创智能汽车4月19日,新能源新锐品牌合创汽车首登上海车展,发布代号为Z03的全新纯电SUV,并联合EDG电竞战队共同宣布开启Z03的征名以及盲定活动。联合电竞合创Z03全新Z03,定位为一款LYRIQ首发凯迪拉克开启智能电动化新时代所有的伟大,源于一个勇敢的开始。本次上海车展,凯迪拉克LYRIQ概念车全球首秀,开启智能纯电的新代。汽车行业正进入以技术快速反应为主要特征的转型期,智能电动化更是如此。在上海车展上智能体验媲美特斯拉吉利星越L只为颠覆而来4月19日,吉利星越L正式发布,限量2000台新车用时5分03秒盲订一空,再次显示了吉利星系列的硬实力。同时发布的星越LSUV颠覆者行动,进一步推动SUV市场格局的颠覆性改变。高度颜值清新功能强,适配Switch堪比原装谷粒精灵PRO手柄游戏机这个词大家都不陌生吧!特别是80后90后男生,小时候家里能有一台小霸王学习机那绝对是富人阶级,一个魂斗罗超级玛丽在没有人干扰的情况下,玩一天都不会累,当然手指要受点罪了,那个漫步者TWSNB2蓝牙耳机,开发了哪些新功能,值得拥有吗?最近漫步者又给我们带来了一款新产品,TWSNB2。这是一款全新设计的主动降噪蓝牙耳机。作为蓝牙耳机的爱好者,你一定也在关注着蓝牙耳机的市场动态。那么TWSNB2都有哪些卖点呢?首先让更多的人享受科技带来的快乐,咕咚F3智能手表这几年可穿戴智能设备越来越普及,特别是智能手环,价格便宜,容易被大众接受。但是功能性和实用性上却不如智能手表,既然智能手表这么好,为什么用的人不如智能手环多呢?最主要的原因是价格贵到底有多少人喜欢汽车?你想象不到2021上海国际车展进入倒计时。为什么要看车展?先来看一组数据截至2021年3月,全国机动车保有量达3。78亿辆,其中汽车2。87亿辆机动车驾驶人4。63亿人,其中汽车驾驶人4。2极氪已至,吉利定义电动化行业变革才刚刚开始。2月20日,吉利控股集团董事长李书福在创业35周年内部沟通会上表示,吉利未来的发展要守正出奇,走正道才能创大业。40天后,代表吉利未来的智能纯电品牌极氪智能科技
预算10000不加显示器,有什么配置推荐?欢迎在点击右上角关注太平洋电脑网,更多有趣资讯等着您哦。一万元的主机,这就厉害了。选择还是很多的。我给你组装一个CPU推荐的是锐龙AMDRyzen71700X处理器。8核心16线程越来越不理解的消费观越来越不能理解现人们都想法了,现在基本都是5G手机了,竟然还有很多人中意iPhone11,这可是一个4G手机,而且收藏量竟然都到了44w,实在是不知道为啥,苹果手机就这么受欢迎吗?Go语言内存管理(三)逃逸分析该内容是在Go1。6版本的时候写的。Golang经过了多个版本的迭代,逃逸分析机制也在不断的迭代优化,最新版本的效果与文章结论存在一些出入所以该内容仅供参考。介绍Go语言较之C语言继宁德时代后,吉利宣布进军新能源车换电市场1月中旬,新能源车电池巨头宁德时代官宣正式进军新能源汽车换电市场。随即,吉利即将发布首款专门针对新能源汽车换电市场的换电轿车枫叶60S。据了解,枫叶60S搭载一款由国轩高科提供的电月初月底打1008611防止移动偷话费10086111是中国移动推出最有意义的服务,我认为没有之一。多年来经常听人家说移动经常莫名其妙就扣费,我自己就从来没有遇到这种情况,或许与我的号码经常投诉移动的业务有关,移动不敢电商该合理生长1分钟前电商的靠补贴和倾销的低价策略,让全民网购,直接导致实体店举步为艰,大量关门,很多大型商场也关门不少,实在是牺牲大家成就小家,电商对经济是毁灭性的打击,应该引起关注了,并非夸春节期间,全国341城签收菜鸟仓发出的年货钱江晚报小时新闻记者陈婕大年初五,开门迎来的除了财神,还有春节照常送货的快递员。记者从菜鸟物流了解到,2月1日至5日,即大年初一到初五期间,从全国以及全球各地菜鸟仓发出的年货,被全华为2021年分红数据出炉AMD去年营收同比增长68华为2021年分红数据出炉2月6日,从华为内部论坛了解到,华为在1月底公布了分红数据,2021年仍然持续实施股票分红,预计每股1。58元。持股分红是华为员工收入的重要组成部分,目前Dellampamp39OroGroupWiFi6E或将成为过渡品IT之家2月6日消息,全球知名咨询机构DellOroGroup报告指出,由于供应限制,2021年下半年的WiFi出货量(不包括中国)显着受限。随着WiFi7产品最早在2023年面世华为交换机命令大全aaa解释AAAacl解释SpecifyACLconfigurationinformationalarm解释Enterthealarmviewantiattack解释Specify三星2022年02月05日新消息三星三星2022年02月05日新消息小屏旗舰战火重燃苹果三星小米蓄势待发哪款更值得期待?三星GalaxyS22Ultra保护壳曝光质感颇高还配有支架首款搭载骁龙8的平板产品下周见!