架构学习-----架构概览(一)

   笔者做java开发已经四年多了 , 这个  架构学习  系列 , 算是对四年时间的一个积累 , 也是做一个记录 , 


概括:






《可扩展的艺术》一书提出了一个更加系统的可扩展模型——AKF可扩展立方(Scalability Cube)。这个立方体中沿着三个坐标轴设置分别为:X、Y、Z。

X轴扩展 —— 关注水平的数据和服务克隆,也就是前文提到的“加机器解决问题” Y轴扩展 —— 关注应用中职责的划分,比如数据类型,交易执行类型的划分  Z轴扩展 —— 关注服务和数据的优先级划分,如分地域划分 

借用一下别人得总结 , 感觉挺模糊的 , 不过笔者个人感觉很有道理 . 



  • X轴扩展 —— 关注水平的数据和服务克隆 , 也就是所谓的  加机器 , 部署多个节点 ,实现负载均衡 ;  缓存集群 ;  使用消息队列 ; 数据库的主从复制,读写分离 , 升级硬件 等等 , 个人感觉 先升级硬件(scale up) , 再水平扩展(scale out)这样的顺序更好一些; 当然这只是对应一般的业务场景 , 一些特殊的业务 , 比如秒杀 之类的需要在单纯的增加节点之后做一些额外的操作 , 在这里只做一个概括  , 之后的系列会分开详细说明
  • Y轴扩展 —— 关注应用中职责的划分 ; 这个通俗的来说主要就是服务化和分库分表了 ,  着重需要注意分布式事务问题
  • Z轴扩展 —— 关注服务和数据的优先级划分 ; 这个形象点说就是多机房了



上面说了架构的概括 , 接下来详细说一下架构的具体 , 让这篇文章干一些 , 没有那么虚 , 笔者工作以来的方向主要是 互联网社区  ,  但是架构这东西我觉得都差不多,
接下来我给大家展示几幅图 , 表现出架构的升级过程.







这个是笔者之前的一个公司的架构 , 相信这个简单的架构是很多中小公司的标配了 , 当时公司的产品大概有百万用户 , 每天日活最高是两万 , 用这套架构完全可以承载用户的请求 , 不过这里省略了一些细节, 比如说是图片的存储 , 还有im消息 , 这些都是使用的付费服务 , 主要的目的是这些产品比较完善 , cdn加速可以提高用户体验 ; 初期减少运维成本 , 人少 , 精力有限等.









这个是笔者目前公司的架构 , 这个只是一部分 , 涵盖的是APP相关的架构





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值