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

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

相关文章

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)