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

架构扩展性

架构扩展性:应用扩展 数据扩展 组织扩展 流程扩展

核心方法论–扩展立方体:
x轴:无脑克隆

				y轴:功能分割z轴:客户分割

扩展立方体在应用扩展的应用:
x轴:横向克隆
对于无状态的应用,多节点克隆复制
负载均衡器,控制业务负载流向
有状态应用,状态剥离(比如Session的处理)

			y轴:服务分割 子系统 模块 聚合拆分后台数据相应进行y轴分割z轴:用户UserID分割,多节点水平复制地理位置分割,Set单元化产品ID分割,SPU/SKU

应用扩展–套娃组合法:
在这里插入图片描述
扩展立方体在数据扩展的应用:
x轴:水平复制
传统SQL,读写分离,1写多读
NoSql 多副本replica
缓存读取,横向扩展
y轴:库表分割
配合应用Y轴分割
表、库享有独立数据库集群/节点
微服务、康威定律
z轴:hash取模
支持各种key:user spu sku
传统sql 分表分库
Nosql 多shard/chunk分片
在这里插入图片描述
组织扩展的应用:
目标一致
人员数量少
配合应用和数据的Y轴扩展
流程扩展的应用:
CMMI软件成熟度模型
在这里插入图片描述
SMART原则:
在这里插入图片描述
在这里插入图片描述

扩展性实现方案:
如何多快好省实现扩展性:
多:分布式架构设计、横向扩展
快:X轴无脑克隆和复制
应用:无状态、容器化、Serverless无服务器化
数据:多副本、读写分离,冷热分离
中间件:缓存、最终一致性
工具:SQL CDC技术

			好:Y轴服务和数据分割服务拆分、界限上下文交互服务发现、服务治理、负载均衡、服务追踪省:z轴哈希取模特征分割应用:负载均衡 客户端Ribbon 服务端Nginx k8s Service 中间件ESB API Gateway数据:分布式多片架构 分库分表 客户端sharding-jdbc 数据库Spanner  中间件(Mycat aurora)

单体应用从100节点到10000节点的扩展历程:
在这里插入图片描述
扩展到10000个:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • Redis 八种常用数据类型详解
  • Elastic Agent 的安装及使用
  • Hero Talk|无缝扩展:Kubernetes 上的 Amazon Aurora 分片和流量管理
  • 【Swing】Java Swing实现省市区选择编辑器
  • 【Vue3】Vue3中的编程式路由导航 重点!!!
  • Java项目利用Redisson实现真正生产可用高并发秒杀功能 支持分布式高并发秒杀
  • Alma Linux - Primavera P6 EPPM 安装及分享
  • C++程序设计-练手题集合【期末复习|考研复习】
  • PHP 服务实现监控可观测性最佳实践
  • 性能测试 —— 数据准备与基准场景设计!
  • LAMP架构部署--yum安装方式
  • node核心模块之Process
  • GPT能复制人类的决策和直觉吗?
  • C语言---指针的两个运算符:点和箭头
  • 价值学习和策略学习的区别
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • CSS盒模型深入
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Golang-长连接-状态推送
  • Java知识点总结(JavaIO-打印流)
  • Linux快速复制或删除大量小文件
  • rc-form之最单纯情况
  • React的组件模式
  • 从零搭建Koa2 Server
  • 浮现式设计
  • 汉诺塔算法
  • 蓝海存储开关机注意事项总结
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 深度解析利用ES6进行Promise封装总结
  • 使用 @font-face
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 微服务框架lagom
  • 中文输入法与React文本输入框的问题与解决方案
  • 2017年360最后一道编程题
  • #Z2294. 打印树的直径
  • $.ajax中的eval及dataType
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (阿里云万网)-域名注册购买实名流程
  • (二)windows配置JDK环境
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (剑指Offer)面试题34:丑数
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (三)elasticsearch 源码之启动流程分析
  • (学习日记)2024.01.09
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (正则)提取页面里的img标签
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • ******之网络***——物理***
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net 按比例显示图片的缩略图