架构高可用高并发系统的设计原则

 时间:2024-10-14 11:47:21

1、架构设计三大定律墨菲定律 – 任何事没有表面看起来那么简单 – 所有的事都会比预计的时间长 – 可能出错的事情总会出错 – 担心某种事情发生,那么它就更有可能发生康威定律 – 系统架构师公司组织架构的反映 – 按照业务闭环进行系统拆分/组织架构划分,实现闭环、高内聚、低耦合,减少沟通成本 – 如果沟通出现问题,应该考虑进行系统和组织架构的调整 – 适合时机进行系统拆分,不要一开始就吧系统、服务拆分拆的非常细,虽然闭环,但是每个人维护的系统多,维护成本高 – 微服务架构的理论基础 – 康威定律https://yq.aliyun.com/articles/8611– 每个架构师都应该研究下康威定律http://36kr.com/p/5042735.html二八定律 – 80%的结果取决于20%的原因

2、系统设计遵循的原则1.高并发原则无状态无状态应用,便于水平扩展有状态配置可通过配置中心实现无状态实践: Disconf、Yaconf、Zookpeer、Consul、Confd、Diamond、Xdiamond等拆分系统维度:按照系统功能、业务拆分,如购物车,结算,订单等功能维度:对系统功能在做细粒度拆分读写维度:根据读写比例特征拆分;读多,可考虑多级缓存;写多,可考虑分库分表AOP维度: 根据访问特征,按照AOP进行拆分,比如商品详情页可分为CDN、页面渲染系统,CDN就是一个AOP系统模块维度:对整体代码结构划分Web、Service、DAO服务化服务化演进: 进程内服务-单机远程服务-集群手动注册服务-自动注册和发现服务-服务的分组、隔离、路由-服务治理考虑服务分组、隔离、限流、黑白名单、超时、重试机制、路由、故障补偿等实践:利用Nginx、HaProxy、LVS等实现负载均衡,ZooKeeper、Consul等实现自动注册和发现服消息队列目的: 服务解耦(一对多消费)、异步处理、流量削峰缓冲等大流量缓冲: 牺牲强一致性,保证最终一致性(案例:库存扣减,现在Redis中做扣减,记录扣减日志,通过后台进程将扣减日志应用到DB)数据校对: 解决异步消息机制下消息丢失问题数据异构数据异构: 通过消息队列机制接收数据变更,原子化存储数据闭环: 屏蔽多从数据来源,将数据异构存储,形成闭环缓存银弹用户层:DNS缓存浏览器DNS缓存操作系统DNS缓存本地DNS服务商缓存DNS服务器缓存客户端缓存浏览器缓存(Expires、Cache-Control、Last-Modified、Etag)App客户缓存(js/css/image…)代理层:CDN缓存(一般基于ATS、Varnish、Nginx、Squid等构建,边缘节点-二级节点-中心节点-源站)接入层:Opcache: 缓存PHP的OpcodesProxy_cache: 代理缓存,可以存储到/dev/shm或者SSDFastCGI CacheNginx+Lua+Redis: 业务数据缓存Nginx为例:PHP为例:应用层:页面静态化业务数据缓存(Redis/Memcached/本地文件等)消息队列数据层:NoSQL: Redis、Memcache、SSDB等MySQL: Innodb/MyISAM等Query Cache、Key Cache、Innodb Buffer Size等系统层:CPU : L1/L2/L3 Cache/NUMA内存磁盘:磁盘本身缓存、dirtyratio/dirtybackground_ratio、阵列卡本身缓存并发化

3、高可用原则降级降级开关集中化管理:将开关配置信息推送到各个应用可降级的多级读服务:如服务调用降级为只读本地缓存开关前置化:如Nginx+lua(OpenResty)配置降级策略,引流流量;可基于此做灰度策略业务降级:高并发下,保证核心功能,次要功能可由同步改为异步策略或屏蔽功能限流目的: 防止恶意请求攻击或超出系统峰值实践:恶意请求流量只访问到Cache穿透后端应用的流量使用Nginx的limit处理恶意IP使用Nginx Deny策略或者iptables拒绝切流量目的:屏蔽故障机器实践:DNS: 更改域名解析入口,如DNSPOD可以添加备用IP,正常IP故障时,会自主切换到备用地址;生效实践较慢HttpDNS: 为了绕过运营商LocalDNS实现的精准流量调度LVS/HaProxy/Nginx: 摘除故障节点可回滚发布版本失败时可随时快速回退到上一个稳定版本

4、业务设计原则防重设计幂等设计流程定义状态与状态机后台系统操作可反馈后台系统审批化文档注释备份

5、总结先行规划和设计时有必要的,要对现有问题有方案,对未来有预案;欠下的技术债,迟早都是要还的。本文作者为网易高级运维工程师

  • 中国人中秋的来历是什么?
  • 吃萝卜有什么好处
  • 【简笔画】非洲八哥的画法
  • 小儿手足口病
  • 教你如何清洁小技巧
  • 热门搜索
    关于安全的手抄报资料 手抄报的内容 70周年纪念日手抄报 关于低碳环保的手抄报 以书为友手抄报 地震知识手抄报 关于书的手抄报内容 安全手抄报花边 小学生法制手抄报资料 关于黄河的手抄报初一