《亿级流量网站架构核心技术》概要

2024-06-02 19:38

本文主要是介绍《亿级流量网站架构核心技术》概要,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《亿级流量网站架构核心技术》目录一览

本书暂定名称为《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》,如有好的书名建议欢迎留言,必当重谢。内容已交由出版社编辑,相信很快就会和大家见面。主要内容结构和目录如下所示:




  

 

 

第一部分概述

高并发原则

无状态

拆分

服务化

消息队列

数据异构

缓存银弹

并发化

高可用原则

降级

限流

切流量

可回滚

业务设计原则

防重设计

幂等设计

流程可定义

状态与状态机

后台系统操作可反馈.

后台系统审批化.

文档&注释

备份

 

第二部分 高可用

负载均衡与反向代理

upstream配置

负载均衡算法

失败重试

健康检查

tcp心跳检查

http心跳检查

其他配置

域名上游服务器

备份上游服务器

不可用上游服务器

长连接

HTTP反向代理示例

HTTP动态负载均衡

Consul+Consul-template

Consul+OpenResty

TCP四层负载均衡

静态负载均衡

动态负载均衡

 

隔离术

线程隔离

进程隔离

集群隔离

机房隔离

读写隔离

动静隔离

爬虫隔离

热点隔离

资源隔离

使用Hystrix实现隔离

Hystrix简介

隔离示例

基于Servlet3实现请求隔离

请求解析和业务处理线程池分离

业务线程池隔离

业务线程池监控/运维/降级

如何使用Servlet3异步化

 

限流详解

限流算法

令牌桶算法

漏桶算法

应用级限流

限流总并发/连接/请求数

限流总资源数

限流某个接口的总并发/请求数

限流某个接口的时间窗请求数

平滑限流某个接口的请求数

分布式限流

redis+lua实现

Nginx+Lua实现

接入层限流

ngx_http_limit_conn_module

ngx_http_limit_req_module

lua-resty-limit-traffic

 

降级特技

降级预案

自动开关降级

超时降级

统计失败次数降级

故障降级

限流降级

人工开关降级

读服务降级

写服务降级

多级降级

配置中心

应用层API封装

配置文件实现开关配置

配置中心实现开关配置

使用Hystrix实现降级

使用Hystrix实现熔断

熔断机制实现

配置示例

采样统计

 

超时与重试机制

简介

代理层超时与重试

Web容器超时

中间件客户端超时与重试

数据库客户端超时

NoSQL客户端超时

业务超时

前端Ajax超时

 

回滚机制

事务回滚

代码库回滚

部署版本回滚

数据版本回滚

静态资源版本回滚

 

压测与预案

系统压测

线下压测

线上压测

系统优化和容灾

应急预案

 

第三部分 高并发

应用级缓存

缓存简介

缓存命中率

缓存回收策略

基于空间

基于容量

基于时间

基于Java对象引用

回收策略

Java缓存类型

堆缓存

堆外缓存

磁盘缓存

分布式缓存

多级缓存

应用级缓存示例

多级缓存API封装

NULL Cache

强制获取最新数据

失败统计

延迟报警

缓存使用模式实践

Cache-Aside

Cache-As-SoR

Copy Pattern

性能测试

 

HTTP缓存

简介

HTTP缓存

Last-Modified

ETag

HttpClient客户端缓存

主流程

清除无效缓存

查找缓存

缓存未命中

缓存命中

缓存内容陈旧需重新验证

缓存内容无效需重新执行请求

缓存响应

缓存头总结

Nginx HTTP缓存设置

expires

if-modified-since

nginx proxy expires

Nginx代理层缓存

Nginx代理层缓存配置

清理缓存

一些经验

 

多级缓存

多级缓存介绍

如何缓存数据

过期与不过期

维度化缓存与增量缓存

分布式缓存与应用负载均衡

缓存分布式

应用负载均衡

热点数据与更新缓存

单机全量缓存+主从

分布式缓存+应用本地热点

更新缓存与原子性

缓存崩溃与快速修复

取模

一致性哈希

快速恢复

 

连接池线程池详解

数据库连接池

DBCP连接池配置

DBCP配置建议

HttpClient连接池

HttpClient4.5.2配置

HttpClient连接池源码分析

HttpClient4.2.3配置

问题示例

线程池

Java线程池

Tomcat线程池配置

 

异步并发实战

同步阻塞调用

异步Future

异步Callback

异步编排CompletableFuture

异步Web服务实现

请求缓存

CompletableFuture实现批量查询

请求合并

 

如何扩容

单体应用垂直扩容

单体应用水平扩容

应用拆分

数据库拆分

数据库分库分表示例

应用层还是中间件层

分库分表策略

使用sharding-jdbc分库分表

使用sharding-jdbc读写分离

数据异构

查询维度异构

聚合数据异构

任务系统扩容

简单任务

分布式任务

Elastic-Job简介

Elastic-Job-Lite功能与架构

Elastic-Job-Lite示例

 

队列术

应用场景

缓冲队列

任务队列

消息队列

请求队列

数据总线队列

混合队列

其他队列

Disruptor+Redis队列

简介

XML配置

EventWorker

EventPublishThread

EventHandler

EventQueue

下单系统水平可扩展架构

下单服务

同步Worker

基于Canal实现数据异构

mysql主从复制

Canal简介

Canal示例 

 

第四部分 案例

构建需求响应式亿级商品详情页

商品详情页是什么

商品详情页前端结构

我们的性能数据

单品页流量特点

单品页技术架构发展

架构1.0

架构2.0

架构3.0

详情页架构设计原则

数据闭环

数据维度化

拆分系统

Worker无状态化+任务化

异步化+并发化

多级缓存化

动态化

弹性化

降级开关

多机房多活

多种压测方案

遇到的一些坑和问题

SSD性能差

键值存储选型压测

数据量大时JIMDB同步不动

切换主从

分片配置

模板元数据存储HTML

库存接口访问量600w/分钟

微信接口调用量暴增

开启Nginx Proxy Cache性能不升反降

配送至读服务因依赖太多,响应时间偏慢

网络抖动时,返回502错误

机器流量太大

总结

 

京东商品详情页服务闭环实践

为什么需要统一服务

整体架构

一些架构思路和总结

两种读服务架构模式

本地缓存

多级缓存

统一入口/服务闭环

引入Nginx接入层

数据校验/过滤逻辑前置

缓存前置

业务逻辑前置

降级开关前置

AB测试

灰度发布/流量切换

监控服务质量

限流

前端业务逻辑后置

前端接口服务端聚合

服务隔离

 

使用OpenResty开发高性能Web应用

OpenResty简介

Nginx优点

Lua的优点

什么是ngx_lua

开发环境

OpenResty生态

场景

基于OpenResty的常用架构模式

负载均衡

单机闭环

分布式闭环

接入网关

核心接入Nginx功能

业务Nginx功能

Web应用

如何使用OpenResty开发Web应用

项目搭建

启停脚本

配置文件

nginx.conf配置文件

nginx.conf项目配置文件

业务代码

模板

公共Lua库

功能开发

基于OpenResty的常用功能总结

一些问题

 

应用数据静态化架构高性能单页Web应用

整体架构

CMS系统

前端展示系统

控制系统

数据和模板动态化

多版本机制

异常问题

 

使用OpenResty开发Web服务

架构

单DB架构

DB+Cache/数据库读写分离架构

OpenResty+Local Redis+Mysql集群架构

OpenResty+Redis集群+Mysql集群架构

实现

后台逻辑

前台逻辑

项目搭建

Redis+Twemproxy配置

Mysql+Atlas配置

Java+Tomcat安装

Java+Tomcat逻辑开发

Nginx+Lua逻辑开发

 

使用OpenResty开发商品详情页

技术选型

核心流程

项目搭建

数据存储实现

商品基本信息SSDB集群配置

商品介绍SSDB集群配置

其他信息Redis配置

集群测试

Twemproxy配置

动态服务实现

项目搭建

项目依赖

核心代码

基本信息服务

商品介绍服务

其他信息服务

辅助工具

web.xml配置

打WAR包

配置Tomcat

测试

nginx配置

绑定hosts测试

前端展示实现

基础组件

商品介绍

nginx配置

前端展示

核心代码

初始化模块

模板html片段

nginx配置

测试

优化

pdf书籍下载: https://pan.baidu.com/s/1dNRS4z2cbjtZby8tCPct7A 密码: 9ujp  


                                                                                                 -END-

这篇关于《亿级流量网站架构核心技术》概要的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024903

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应