秒杀系统

解决高并发问题(并发读写问题)

  • 稳:解决可用性
  • 准:解决数据一致性问题
  • 快:高性能

架构原则:

减少用户和服务端的交互
  • 数据要少:请求参数要少,降低对网络带宽的占用,降低对cpu的消耗,减少对数据库IO的访问
  • 请求数要少(合并多个请求为一个)
  • 访问链路尽量短(CDN能解决就不要到负载均衡,网关能解决就不要到服务端……)
  • 依赖要少:优先级高的展示,优先级低的去掉。
  • 保证高可用:负载均衡;水平扩展节点:k8s(修改relicates数值)
    用户访问链路
动静分离
  • nginx端直接指向到静态资源
  • CDN:放到离用户最近的地方
  • 服务器缓存:guava chache、map、redis、文件缓存
  • CSI:ajax、iframe局部刷新。
协程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
jvm目前不支持协程,需要第三方工具的支持。Go是实现协程最好的语言。

在这里插入图片描述
举例:

  • 传统方式1

在这里插入图片描述
在这里插入图片描述

  • 异步方式2:把cpu的利用率提高了
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 协程方式3:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

待续

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐