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

Java技术栈

共 1523字,需浏览 4分钟

 · 2022-01-19

点击关注公众号,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 实战笔记!
浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报