网站核心技术-阅读笔记

时间:2021-7-3 作者:qvyue

marp: true
theme: gaia
_class: lead
footer: ‘zlqian 2020/3/24’
paginate: true

backgroundImage: url(‘https://marp.app/assets/hero-background.jpg’)

style: |
section {
background-color: #aaa;
font-size: 20px;
}


网站核心技术-阅读笔记

最近要离职,不能使用公司电脑做一些博客和网盘记录,用手机进行简单的阅读笔记记录。

交易系统设计选择

  • 高并发原则
    无状态,拆分,服务化,消息队列,数据异构,缓存(浏览器,客户端,cdn,接入层,应用层,分布式缓存),并发
  • 高可用原则
    降级(开关,多级读,业务降级),限流,切流量,可回滚,故障切换
  • 业务设计原则
    防重,幂等,流程可定义,状态机,后台系统操作可反馈,后台系统审核化,文档化,备份

均衡负载与反向代理

访问链路:客户端-dns-f5/lvs-nginx-upstream

  • nginx均衡负载算法
    round-robin,ip-hash,hash,hash-consistent
  • 其他配置
    失败重试,健康检查,备份服务器,nginx和upstream长连接
  • upstream动态均衡
    可以借助consul来进行upstream存储,然后使用consul-agent刷新nginx-conf来生效
  • 4层负载均衡
    从1.9.0版本开始支持,借助consul也可以实现动态均衡负载

隔离

线程隔离,进程隔离,集群隔离,机房隔离,动静隔离,爬虫隔离,热点隔离,资源隔离

  • 应用开发
    hystrix可以使用线程池隔离或者信号量隔离,
    servlet3.0可以定制业务线程池实现隔离

限流

  • 算法
  1. 令牌
  2. 漏斗
    令牌算法允许一定的突发流量,漏斗更加平缓
  • 应用中限流
  1. 可以通过guava的ratelimiter滑动窗口限流
  2. 分布式,可以通过redis结合lua实现
  3. 接入层流控,nginx结合lua,也可以使用nginx自带的限流模块实现
  • 节流
    前段在窗口事件内将多个重复事件只对第一个或者最后一个处理,例如前端多次点击事件

降级

  • 种类
    超时降级,多次失败降级,故障降级,限流降级
  • 人工降级
    可以配合配置中心实现
  • 自动降级
    java应用可以使用hystrix自动降级,原理是窗口时间出现一定频率的异常会进行熔断降级,同时采样判断服务是否恢复

超时与重试

  • 代理超时
  1. 客户端超时
  2. dns解析超时
  3. 代理超时
  • 其他
    容器超时,业务处理,中间件客户端超时,数据库,nosql,服务调用
  • 后置处理
    重试,托底,降级,心跳探活

回滚

  • 代码回滚
  • 部署回滚
    灰度发布
  • 数据回滚
    全量和增量数据回滚
  • 静态资源
    多个目录隔离静态资源

压测

  • 线下压测
    可以使用jmeter,ab
  • 线上
    可以引流压测,但是数据要进入影子表,不能影响线上数据
  • 应急
    压测发现系统的隐患,需要对系统进行分级,然后进行全链路分析,配置监控与告警
    网络层由运维工程师负责
    应用层开发工程师负责,限流降级,隔离,故障切换
  • 演习
    制定演习方案,验证应急方案的可用性

缓存

  • 缓存策略
    命中率,失效策略
  • 缓存类型
    java堆缓存,堆外缓存,磁盘缓存,分布式缓存
  • http缓存
    nginx代理侧可以设置缓存,http客户端,还有浏览器都可以进行缓存设置
  • 多级缓存
    多级缓存之间数据的同步问题
  • 异步并发
    线程异步,合并调用等
  • 拆分
    应用拆分,数据库,分库分表
  • 消息队列
    消息可靠性,幂等性,有序性

openrestry在web应用服务器上的应用

  • 区别
    openrestry是基于nginx实现的,nginx是一个反向代理服务器,而openrestry是web应用服务器
    它利用nginx非阻塞io特性,提供多种模块,不仅可以和http客户端实现非阻塞io,和很多第三方服务也可以实现非阻塞io连接
    可以使用openrestry开发很多应用,例如网关系统等

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。