扫一扫,关注我的公众号
我的新书 购买地址
在2011年年底的时候笔者就曾规划写一本Spring的书,但是因为是Spring入门类型的书,框架的内容更新太快,觉得还是写博客好一些,因此就把写完的书稿放到了博客(jinnianshilongnian.iteye.com,因为是龙年开的博客,所以很多网友喊我龙年兄),并持续更新,到现在已经不多五年了。大家再网上找资源时会发现很多内容不成体系,不能系统的学习,这也是我的痛点,因此我写博客的一个特色就是坚持写系列文章,想学习某种技术只要我博客有的不需要去其他地方再找了,到现在已经写过《跟我学Spring》、《Spring杂谈》、《跟我学Spring MVC》、《跟我学Shiro》、《跟我学Nginx+Lua》等系列,累计访问量已超过1000万。我写博客还有一个私心:带新人,当时我们系统架构使用了OpenResty,而我们团队都是Java程序员,所以就写了《跟我学Nginx+Lua》,新人跟着教程学一遍就能上手干活了。
2015年开始笔者在个人公众号“开涛的博客”写《聊聊高并发系统》系列文章,陆续发表了聊聊高并发系统之限流特技、聊聊高并发系统之降级特技、聊聊高并发系统之队列术、构建需求响应式亿级商品详情页等文章。这些内容都是笔者在一线使用过的一些,而这些技能是一线程序员或架构师应该掌握的必备技能。而且这一系列也得到了很多读者反馈和认可,帮助他们解决了系统的一些问题。公众号发表的有些内容偏理论,很多人不知道怎么去用,因此就有了丰富理论和实战内容并出版本书的想法,想学习高可用和高并发系统技能看本书就够了,并且可以作为案头工具书。
本书暂定名称为《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》,如有好的书名建议欢迎留言,必当重谢。内容已交由出版社编辑,相信很快就会和大家见面。主要内容结构和目录如下所示:
第一部分概述
高并发原则
无状态
拆分
服务化
消息队列
数据异构
缓存银弹
并发化
高可用原则
降级
限流
切流量
可回滚
业务设计原则
防重设计
幂等设计
流程可定义
状态与状态机
后台系统操作可反馈.
后台系统审批化.
文档&注释
备份
第二部分 高可用
负载均衡与反向代理
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配置
测试
优化
欢迎关注我的公众号获取书的最新动态
扫一扫,关注我的公众号
我的新书 购买地址
相关推荐
作为一个地级市,它下辖的区域包括了区、县、乡镇和村落,形成了多层次的行政管理架构。根据提供的【石家庄市县乡镇村一览表】,我们可以观察到石家庄市的行政区划具体构成。 整个石家庄市由16个区县组成,加上一个...
1. 核心定位:作为服装印花行业的网络中心,该网站旨在为用户提供最新的行业信息、技术支持,并提供在线交易平台。 2. 经营目标:以收取年度顾问式会员费和进行网上商品贸易为主要盈利方式,为终端用户提供技术咨询...
- **研究内容**:探索在万亿级数据量背景下广域计算与数据管理的关键技术。 - **应用前景**:支撑大数据时代的科学研究与商业应用。 **16. 移动环境下的实时事务及其处理研究** - **负责人**:李国徽 - **评审结果*...
- 当前行业内领先的网站之一是慧聪丝印特印网,该网站具有较高的知名度、流量和信息量,能够为企业提供有效的电子商务服务。 - 其他一些竞争对手,如印染在线、集萃印花网和中华印花网,在某些方面也有所成就,但...
产品架构可能包括多个核心组件,如服务治理、调度中心、监控系统、配置中心等,这些组件协同工作,提供服务注册、发现、负载均衡、容错、流量控制等功能,确保企业应用的稳定运行。 2. 运维架构: EDAS的运维架构...
2.4中详述了核心交换机S6800的相关技术,如Port Security、DHCP Snooping、Dynamic ARP Inspection、IP Source Guard、Filter过滤技术、ACL访问列表控制、Storm-Control以及QoS技术,这些都是保障网络安全、防止攻击...
- **流量分类、流量监管和流量整形**:通过流量控制技术确保网络资源的合理分配。 - **拥塞管理与避免**:探讨了如何有效管理和避免网络拥塞问题,提高网络效率。 #### 四、重要设备介绍 这部分详细列举了项目...
- **动静分离架构**:引入了静态缓存和文件存储技术,提高了网站的响应速度。 - **分布式架构**:随着业务规模的扩大,需要将应用拆分成多个服务,并通过负载均衡技术来提高系统的稳定性和性能。 - **微服务架构**:...
以下是招标文件中提到的一些核心知识点: 1. **授权与知识产权**: - 供应商需获得所投标产品的生产厂商针对本次项目的专门授权,以证明产品的合法性。 - 所有设备不应存在知识产权纠纷,确保供应商能够提供无...
- **端口一览**:显示端口状态、流量、用途等信息,帮助快速定位问题端口。 - **关键设备监控**:对重要设备和链路提供特别监控支持,确保关键业务稳定运行。 - **终端监控管理** - **无需代理的终端监控**:...
1. **建设目标**:可能是提高网络性能、保障数据安全、优化网络架构等,指导投标方制定相应的技术方案。 2. **建设原则**:可能包括成本效益分析、可持续性、技术先进性等原则,作为评价投标方案的重要依据。 总的...
机房运维是信息技术领域中至关重要的环节,主要负责保障数据中心的稳定运行,确保各类系统的正常服务。这份《机房运维工作报告》详细记录了一年内的运维工作内容,涵盖了网络介绍、设备维护、系统运行状况等多个方面...
品牌CDP(Customer Data Platform,客户数据平台)是一种新兴的数据管理和分析技术,旨在帮助企业收集并整合来自不同渠道和设备的客户数据,以实现更加个性化和精准的营销策略。随着数字化转型的推进,CDP在营销领域...
管理服务器和受管服务器是WebLogic服务器架构的核心组成部分。管理服务器用于管理整个域,而受管服务器用于运行应用程序。 - **启动时的错误消息** 在启动WebLogic服务器时可能会遇到各种错误消息,这些错误消息...
15.2.3 流量控制 315 15.3 缓冲区管理和并发控制 315 15.4 设备实例:以太网nic 316 15.5 isa网络驱动程序 321 15.6 atm 321 15.7 网络吞吐量 322 15.7.1 驱动程序性能 322 15.7.2 协议性能 323 ...