《亿级流量网站架构核心技术》读书笔记

虽然本人平时主要从事OA系统的开发,系统并发量不会特别大,主要是注重业务逻辑和快速交付,但是通过学习电商网站对高并发高可用的处理,可以促进自己对系统架构的思考,提升自己的业务水平,以后出现高并发高可用问题的时候,才不会手足无措,而且,系统架构原理是想通的,即使是小系统,也可以从大系统的架构中学习到相关技术解决方案和设计思路,也就是所谓的触类旁通。


一,系统设计的一些原则

在我们的技术生涯中,总是不断针对新的需求去研发新的系统,而很多系统的设计都是可以触类旁通的。在设计系统时,要因场景、时间而异,一个系统也不是一下子就能设计得非常完美,在具有有限资源的情况下,一定是先解决当下最核心的问题,预测并发现未来可能出现的问题,一步步解决最痛点的问题。也就是说,系统设计是一个不断迭代的过程,在迭代中发现问题并修复问题,即满足需求的系统是不断迭代优化出来的,这是一个持续的过程,个人不相信完美架构银弹。不过,如果一开始就有好的基础系统设计,未来可以更容易达到一个比较满意的目标。一个好的设计要做到,解决现有需求和问题,把控实现和进度风险,预测和规划未来,不要过度设计,从迭代中演进和完善。

在设计系统时,应该多思考墨菲定律。

  1. 任何事都没有表面看起来那么简单。
  2. 所有的事都会比你预计的时间长。
  3. 可能出错的事总会出错。
  4. 如果你担心某种情况发生,那么它就更有可能发生。

在系统划分时,也要思考康威定律。

  1. 系统架构是公司组织架构的反映。
  2. 应该按照业务闭环进行系统拆分/组织架构划分,实现闭环/高内聚/低耦合,减少沟通成本。
  3. 如果沟通出现问题,那么就应该考虑进行系统和组织架构的调整。
  4. 在合适时机进行系统拆分,不要一开始就把系统/服务拆得非常细,虽然闭环,但是每个人维护的系统多,维护成本高。

应该多鼓励团队成员积极主动沟通并推动系统演进。另外,也要多思考二八定律,在系统设计初期将有限的资源用到刀刃上,以最小化可行产品方式进行推进。

在持续开发系统的过程中,会有一些设计原则/经验可以用来遵循和指导我们。但设计原则应该在系统迭代过程中,根据现有问题或特征匹配使用,如果刚开始遇到不是核心问题,那么不要复杂化系统设计,但先行规划和设计是有必要的,要对现有问题有方案,对未来架构有预案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值