Java性能优化打造亿级流量秒杀系统:0.项目目标

Java性能优化打造亿级流量秒杀系统:0.项目目标

一、背景:

在抢购等场景下,服务会收到很大的流量请求。此时如果这些流量完全交由业务服务从数据库查询再去响应,具有两大弊端:

  1. 数据库连接过多导致崩溃
  2. 响应迟缓,影响用户体验


因此打算采用缓存的思路来应对大流量场景。
缓存之处有两个,

  1. 一个是对页面的静态资源进行缓存,这样可以减轻主服务的压力。动态信息可以通过Ajax获取。
  2. 另一个是对数据库中部分数据进行缓存,减轻数据库压力,并且可以提高操作数据库的速度。

二、初步具体方案为:

  1. 使用Nginx进行反向代理与缓存静态资源
  2. 在数据库侧添加Redis,用于支持动态数据的获取

架构图如下:
image.png

考虑 Redis 的主从或者一致性Hash 算法做分片的 Redis 集群;使用缓存这种架­构要求应用对数据的一致性要求不是很高;比如像下订单这种要落地的数据不适合用 Redis 存储,但是订单的读取可以使用缓存。
https://wiki.jikexueyuan.com/project/nginx-lua/http.html

三、高级方案:

将单DB架构升级为Twemproxy组织Redis集群,Atlas组织Mysql集群。
image.png===>>>image.png

Ref: https://wiki.jikexueyuan.com/project/nginx-lua/http.html


四、学习抓手:

学习课程:《聚焦Java性能优化 打造亿级流量秒杀系统》
https://coding.imooc.com/class/338.html

五、参考资料:

  1. https://wiki.jikexueyuan.com/project/nginx-lua/http.html
  2. https://wiki.jikexueyuan.com/project/nginx-lua/product-details-page.html
  3. https://www.iteye.com/blog/jinnianshilongnian-2319573
  4. 亿级流量网站架构核心技术[b]

猜你喜欢

转载自blog.csdn.net/xiaohaigary/article/details/108007860