交易型系统设计原则

设计系统:墨菲定律

  • 1.任何事都没有表面看起来的那么简单
  • 2.所有的事都会比你预期的时间长
  • 3.可能出错的事走会出错
  • 4.如果你担心某事会发生,那么他就更有可能发生

系统划分:康威定律

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

重要参考:二八原则

高并发原则

  • 1.无状态
  • 2.拆分(拆分纬度)
  • 1.系统纬度
  • 2.功能纬度
  • 3.读写纬度
  • 4.AOP纬度
  • 5.模块纬度
  • 3.服务化
  • 4.消息队列
  • 1.大流量缓冲
    1. 数据校对
  • 5.数据异构
    1. 数据异构
  • 2.数据闭环
  • 6.缓存


    3145530-fd4ea063b2bcc2d7.png
    主要技术
  • 1.浏览器缓存 通过请求设置,如Expires,Cache-control进行控制
  • 2.App客户端缓存
  • 3.CDN缓存
  • 4.接入层缓存
    对于没有CDN缓存的应用来说,可以使用nginx搭建一层接入层,实现机制如下
  • 1.URL重写:将url按照顺序或者格式重写,去除随机数
  • 2.一致性哈希:按照指定参数做一致性Hash化,从而抱着个相同数据落到同一服务器上
  • 3.proxy_cache:使用内存级/SSD级代理缓存来缓存
  • 4.proxy_cache_lock:使用lock机制,经多个回源合并为一个,以减少回源量,并设置lock
  • 5.share_dict:架构使用nginx+lua实现,则可以考虑使用lua share_dict 进行cache。最大的好处就是reload缓存不丢失
  • 5.应用层缓存
  • 6.分布式缓存


    3145530-de00dd3db3a4bee3.png
    分布式缓存

高可用原则

  • 1.降级
  • 2.限流
  • 3.切流量
  • 4.可回滚

业务设计原则

  • 1.防重设计
  • 2.幂等设计
    1. 流程可定义
  • 4.状态与状态机
  • 5.后台系统操作可反馈
  • 6.后台系统审批化
  • 7.文档与注释
  • 8.备份

总结

3145530-43cf7d98d0c472c6.png
高并发

3145530-35f43c2b4dfde87b.png
高可用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lpfasd123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值