Redis 集群别乱搭,这才是正确的姿势!

Posted Java技术栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 集群别乱搭,这才是正确的姿势!相关的知识,希望对你有一定的参考价值。

点击关注公众号,Java干货及时送达

上一篇:一款基于 Spring Cloud 的神仙私活项目,已开源,微服务也能搞定!2022 接私活必备!

作者:等不到的口琴
链接:https://www.cnblogs.com/Courage129/p/14344151.html

当我们搭建集群的时候,首先要想明白需要解决哪些问题,搞清楚这个之前,想想单节点、单实例、单机有哪些问题?

为了解决这些问题,我们需要对服务器进行集群,一变多,具体怎们扩充服务器呢?

这儿引入一个概念,微服务设计原则之一——AKF原则

微服务拆分原则之AKF

首先来看单节点的单点故障这个问题,既然单节点容易挂,那么就可以进行复制,一变多,这儿设计到三个概念,主从、主主、主备,也是三种方式,简单来说,主主相当于多台服务器同时对外提供读写:

主从,主机可以读写,但是一般只对外提供写,从机对外提供读:

主备,主机提供读写,备机不对外提供服务,当主机挂了的时候,备机通过选举产生主机对外提供服务。最新面试题整理好了,大家可以在Java面试库小程序在线刷题。

X轴拆分

可以看到的是,这几种拆分一台机器可以看成另一台机器的镜像,基本具有全量数据,这种拆分模式就是AKF拆分模式之一:X轴拆分

上图就是AKF拆分示意图,为了解决单点故障,所以弄几台全量数据的机器做备份,例如之前说到的主主、主备等,特点是任何两台包含的数据是差不多的,一台可以看成另一台的镜像。想成为架构师,这份架构师图谱建议看看,少走弯路。

Y轴拆分

这时候又有新的问题,例如一台服务器中,可能某些功能被频繁访问,涉及到的数据频繁读写,其他数据基本不怎么访问,这时候可以将这部分数据独立出来,也就是根据功能、业务继续拆分服务器,这种拆解就是AFK中的Y轴拆分

特点是Y轴纵向来看不同的Redis负责的功能是不同的,也就是所包含的数据也是不同的,另外仅仅扩展出一个Y轴上的业务服务器,又可能会存在单点问题,所以可以结合AFK的X轴拆分原则,继续对刚拆分的Y轴上的点进行X轴拆分。

Z轴拆分

在上面的AFK原则X-Y拆分之后,对服务器显示做了主从主备复制,然后做了业务拆分,不同的Redis负责不同的业务请求,这时候还会有一个新的问题,例如对于Y轴上一个Redis,它负责某一样业务,但是这天这个业务的数据访问巨大,贼大,那就只好对数据请求进行AFK的Z轴拆分,例如先分析下数据请求的情况,然后根据访问来源,分为北京的、上海的,这样不同的Redis虽然是负责不同的数据,但是负责的业务是一样的。AFK拆分图示:

AFK总结

X轴拆分:水平复制,就是讲单体系统多运行几个实例,做集群加负载均衡的模式,主主、主备、主从。

Y轴拆分:基于不同的业务拆分

Z轴拆分:基于数据拆分。


微信官宣:一大波新年红包封面来了!

2021 年发生的 10 件技术大事!!

23 种设计模式实战(很全)

Log4j2 漏洞之 JNDI 到底是个什么鬼?

炸了!Log4j2 再爆漏洞。。

劲爆!Java 协程要来了

重磅官宣:Redis 对象映射框架来了!!

推荐一款代码神器,代码量至少省一半!

程序员精通各种技术体系,45岁求职难!

重磅!Spring Boot 2.6 正式发布

Spring Boot 学习笔记,这个太全了!

关注Java技术栈看更多干货

获取 Spring Boot 实战笔记!

以上是关于Redis 集群别乱搭,这才是正确的姿势!的主要内容,如果未能解决你的问题,请参考以下文章

Redis 集群别乱搭,这才是正确的姿势!

别乱用了,这才是 SpringBoot 停机的正确方式!!!

这才是实现分布式锁的正确姿势!

别在 Java 代码里乱打日志了,这才是打印日志的正确姿势!

这才是介绍项目的正确姿势,终于不用害怕面试了

这才是Java微服务划分的正确姿势,学会了吗?