高并发如何优化?

82 阅读1分钟

1.性能

1.1高读

  • 少读(分层校验,一致性)

1.2并发锁

  • 应用层排队:分布式锁(减少数据库连接占用)
  • 数据层排队:patch,alisql

1.3高写

  • 拆分(动静分离,热点优化,服务器优化)

1. 动静分离

  • 数据拆分
  • 静态缓存(浏览器,CDN(失效,命中率(二级缓存)))
  • 数据整合(动态数据加载)

2. 热点优化

  • 热点操作
  1. 用户
  • 热点数据
  1. 热点识别:异步收集
  2. 热点隔离:业务隔离(预热),系统隔离(单独部署),数据隔离
  3. 热点优化:限流,缓存

3. 服务器性能优化

  • 硬件
  • jvm调优
  • 代码优化:
  1. 减少序列化(减少rpc调用),
  2. 直接输出流数据,
  3. 减少堆栈信息输出深度,
  4. 去组件框架,使用servlet

2.一致性(库存扣减)

  • 下单减库存:存在恶意下单(通过黑名单,设置最大购买件数)
  • 付款减库存:用户体验差(超卖付款失败)
  • 预扣减库存:缓存扣减,数据库字段设置为无符号整数,事务

3.高可用

  • 流量削峰:答题
  • 延缓请求:排队,过滤,限流,读缓存,写校验