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


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




      

    第一部分概述

    高并发原则

    无状态

    拆分

    服务化

    消息队列

    数据异构

    缓存银弹

    并发化

    高可用原则

    降级

    限流

    切流量

    可回滚

    业务设计原则

    防重设计

    幂等设计

    流程可定义

    状态与状态机

    后台系统操作可反馈.

    后台系统审批化.

    文档&注释

    备份

    第二部分 高可用

    负载均衡与反向代理

    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配置

    测试

    优化

  • 相关阅读:
    取消Win10自动更新?
    Mybatis入门调试错误:Could not find resource XXX
    IDEA导入新Module出现的问题
    WEB-INF目录下的存放包的目录只能命名为lib
    rocketmq 同步刷盘、异步刷盘和同步复制、异步复制
    spring 集成mybatis
    Spring <aop:aspectj-autoproxy proxy-target-class="false|true"/>
    spring中expose-proxy的作用与原理
    分布式事物
    <context:annotation-config/>,<mvc:annotation-driven/>和<context:component-scan>之间的关联
  • 原文地址:https://www.cnblogs.com/lixiaoran/p/6708084.html
Copyright © 2020-2023  润新知