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

  • 单点故障

  • 容量有限

  • 可支持的连接有限(性能不足)

  • ......

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

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

微服务拆分原则之AKF

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

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

主备,主机提供读写,备机不对外提供服务,当主机挂了的时候,备机通过选举产生主机对外提供服务。

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轴拆分:基于数据拆分。

聊聊微服务拆分原则之 AKF相关推荐

  1. 微服务拆分原则之 AKF

    当我们搭建集群的时候,首先要想明白需要解决哪些问题,搞清楚这个之前,想想单节点.单实例.单机有哪些问题? 单点故障 容量有限 可支持的连接有限(性能不足) ...... 为了解决这些问题,我们需要对服 ...

  2. 微服务拆分原则之AKF

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  3. 微服务设计原则之AKF原则

    在设计微服务的时候,我们一般会遵循以下4个原则: 1)AKF拆分原则 2)前后端分离原则 3)无状态服务 4)restful的通信风格 AKF 把系统扩展分为以下三个维度: X 轴:直接水平复制应用进 ...

  4. 迭代开发中的微服务拆分

    微服务拆分是微服务架构绕不过的话题,随着架构演进,在迭代开发中拆分微服务有时非常必要,微服务拆分不仅仅是一项技术层面的重构,首先要选择的合适的时机,另外在拆分前一定要理清业务现状,制定好拆分的基本原则 ...

  5. 微服务拆分,选型与演进

    微服务拆分原则 在微服务拆分中,核心需求在于拆开的微服务之间的联系越少越好,数据交互也是越少越好.因为微服务之间的数据一致性非常难处理,如果一致性方面的问题很少,整体做起来就比较简单了. 微服务架构选 ...

  6. 微服务拆分策略和原则

    目录 微服务拆分目的 单体应用拆分成微服务的时机 拆分时指导原则 拆分的粒度把控 微服务拆分策略 微服务合并 拆分过程中要注意事项 注意:本文参考  微服务拆分策略和原则 - 简书 微服务拆分目的 不 ...

  7. 微服务拆分时机与原则

    微服务拆分 微服务拆分时机 为了快速迭代 高并发场景 可重用 提交代码经常冲突 小功能要积累到大版本才能上线 服务拆分原则 原则一:高内聚和低耦合. 原则二:服务拆分正交性原则 原则三:服务粒度适中. ...

  8. 微服务及微应用拆分原则_七个微服务原则

    微服务及微应用拆分原则 This post defines microservices via seven tenets, reverse-engineered from books, article ...

  9. 聊聊微服务架构及分布式事务解决方案

    转载自   聊聊微服务架构及分布式事务解决方案 分布式事务场景如何设计系统架构及解决数据一致性问题,个人理解最终方案把握以下原则就可以了,那就是:大事务=小事务(原子事务)+异步(消息通知),解决分布 ...

最新文章

  1. 音频编码标准发展现状
  2. Spring控制反转(依赖注入)的最简单说明
  3. C# AutoResetEvent
  4. php查询字段的总和,ThinkPHP 多表查询-如其字段A相同,则把字段B相加
  5. 什么叫POE交换机?POE交换机使用方法介绍?
  6. ActiveMQ 的独占消费模式
  7. Python3 hex() 函数
  8. 英伟达推出全新DPU处理器 透露未来三年DPU发展路线图
  9. 计算机系统安装要点,电脑重新装系统要注意哪些要点 重装系统时的六大事项...
  10. OSDI 2022 Roller 论文解读
  11. ubuntu内部错误
  12. Pyltp的安装使用笔记
  13. 圣诞节计算机老师贺卡祝福语,祝老师圣诞节快乐贺卡 圣诞祝福语贺卡简短
  14. ie ajax十分卡,解决JQuery .ajax 在IE下卡死问题
  15. html5快速制作,html5动画制作(教你如何快速绘制HTML5动画)
  16. 卡尔曼滤波最完整公式推导
  17. 成功举办!805个团队参赛~
  18. realme手机配什么蓝牙耳机?realme蓝牙耳机推荐
  19. 【luogu P3426】SZA-Template(字符串)(KMP)
  20. Github加速访问

热门文章

  1. MyBatis分表分库插件的实现(推荐)
  2. SpringCloudConfig配置中心Client端加载文件不成功问题
  3. linux 卸载32位rar,让CentOS能用yum自动安装rar和unrar
  4. csv和excel php 解析_php读取csv中文
  5. Altium Designer:AD绘制板边框之任意倒角
  6. MOS管电路工作原理及详解
  7. 微信小程序---input 后面加单位
  8. 计算机模拟在铸造领域的应用,铸造过程计算机模拟研究应用现状与发展
  9. SQL server数据库关系图
  10. 酷我音乐盒html代码,【Duilib基础篇】:我是这样开发酷我音乐盒的!