前言

海量用户同时进行高频访问对任何平台都是难题,也是行业乐此不疲的研究方向。但值得庆幸的是,虽然业务场景不同,设计和优化的思想却是万变不离宗。

相信大家都同意,互联网发展势头的逐渐凶猛改变了我们很多的生活方式。比如网购、银行转账等业务,不再需要我们必须线下办理,这极大方便了我们的生活。这背后当然也对身为互联网从业人员的我们来说,面临的考验也越来越大,在系统架构升级上也会倾注更大的心血。

高并发系统拥有高并发、高性能、高可用,分布式、集群化,安全性等特性。

我们首先来看一下高并发、高性能、高可用,也就是我们经常提到的三高系统。当我们流量非常大的情况下,我们一定要保证这三高。这其中高并发是指要支持很多并发用户,高性能是在高并发的前提下保证优秀的性能,高可用则是保证系统在某一节点出现问题时不会整体宕机且继续持续提供服务。由此可见三高的主要特性则是分布式和集群化,而我们主要要解决的问题则是安全性。

下面小编帮大家推荐一本如何处理亿级流量的核心技术秘籍,不管你是软件开发人员还是运维人员,通过阅读本书,都能系统地学习实现亿级流量网站的关键方法与技能,并收获解决系统问题的思路和方法。

目录简介

本篇的内容是理论与实战相结合,涉及的知识点比较多,共分为4个部分,读者可按照任何顺序阅读每一个部分,但建议先阅读第1部分进行系统了解。

第1部分:概述,主要介绍开发高并发系统的一些原则,并阐述本书将要讲解的原则。

  • 高并发原则
  • 高可用原则
  • 业务设计原则
  • 总结

对于一个系统设计来说,不仅需要考虑实现业务功能,还要保证系统高并发、高可用、高可靠等。在系统容量规划(流量、容量等)、SLA制定(吞吐量、响应时间、可用性、降级方案等)、压测方案(线上、线上等)、监控报警(机器负载、响应时间、可用率等)、应急预案(容灾、降级、限流、隔离、切流量、可回滚等)等方面,也要有一些原则来指导大家。其中,每一个方向都是很复杂的,为了能讲解得较为深入,本篇将从高并发和高可用两个方面来讲解,并配合案例实战使读者能参考案例,来理解这些原则并解决系统痛点。


第二部分:高可用,帮助读者理解高可用的一些原则,如负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案等,并能实际应用到自己的系统中。

  • 负载均衡与反向代理
  • 隔离术
  • 限流详解
  • 降级特技
  • 超时与重试机制
  • 回滚机制
  • 压测与预案

Nginx提供的负载均衡可以实现上游服务器的负载均衡、故障转移、失败重试、容错、健康检查等,当某些上游服务器出现问题时可以将请求转到其他上游服务器以保障高可用,并可以通过OpenResty实现更智能的负载均衡,如将热点与非热点流量分离、正常流量与爬虫流量分离等。Nginx 负载均衡器本身也是一台反向代理服务器,将用户请求通过Nginx代理到内网中的某台上游服务器处理,反向代理服务器可以对响应结果进行缓存、压缩等处理以提升性能。


第三部分:高并发,介绍开发高并发系统的一些原则,如缓存、池化、异步化、扩容、队列等,并配合大量案例帮助读者更好地掌握和运用。

  • 应用级缓存
  • HTTP缓存
  • 多级缓存
  • 连接池线程池详解
  • 异步并发实战
  • 如何扩容
  • 队列术

浏览器缓存是指当我们使用浏览器访问一些网站页面或者 HTTP服务时,根据服务器端返回的缓存设置响应头将响应内容缓存到浏览器,下次可以直接使用缓存内容或者仅需要去服务器端验证内容是否过期即可。这样的好处是可以减少浏览器和服务器端之间来回传输的数据量,节省带宽以提升性能。


第四部分:案例,介绍笔者开发过的商品详情页、统一服务等系统架构,还有一-些静态化架构的思路,帮助读者理解前边介绍的一些原则

  • 构建需求响应式亿级商品详情页
  • 京东商品详情页服务闭环实践
  • 使用OpenResty开发高性能Web应用
  • 应用数据静态化架构高性能单页Web应用
  • 使用OpenResty开发Web服务
  • 使用OpenResty开发商品详情页

商品详情页是展示商品详细信息的一个页面,其承载着网站的大部分流量和订单的入口。京东商城目前有通用版、全球购、闪购、易车、惠买车、服装、拼购、今日抄底等许多套模板。各套模板的元数据是一样的, 只是展示方式不一样。目前商品详情页的个性化需求非常多,数据来源也非常多,而且许多基础服务做不了的都放我们系统这里,因此,我们需要一种架构能快速响应和优雅地解决这些需求。我们重新设计了商品详情页的架构,主要包括三部分商品详情页系统、商品详情页统一服务系统和商品详情页动态服务系统。商品详情页系统负责静的部分,而统一服务系统负责动的部分,动态服务系统负责给内网其他系统提供一些数据服务。

书签展示

亿级流量网站架构技术 亿级流量是什么意思_后端

亿级流量网站架构技术 亿级流量是什么意思_亿级流量网站架构技术_02

后记

最后,我想说的是所有的高可用系统一定不能忘记一个核心概念,那就是异地多活。举例来讲就是我们需要在多地备署多个机房,拥有多地备份和多地容灾。