Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 视频教程 | 打赏(Donations) | About
知乎专栏多维度架构 微信号 netkiller-ebook | QQ群:128659835 请注明“读者”

Netkiller Architect 手札

Multi-dimension Architecture Design & Implementation / Full Stack Architect

Mr. Neo Chan, 陈景峯(BG7NYT)



中国广东省深圳市望海路半岛城邦三期
518067
+86 13113668890


电子书最近一次更新于 2020-08-04 16:30:57 .

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

http://www.netkiller.cn
http://netkiller.github.io
http://netkiller.sourceforge.net
微信订阅号 netkiller-ebook (微信扫描二维码)
QQ:13721218 请注明“读者”
QQ群:128659835 请注明“读者”

2020-08-04 16:30:57

本电子书采用碎片化写作方式,所以没有截止时间,写作也很随意,内容不断填充,更新,章节不断扩展和调整。每年的年底我会推出 epub, Kindle mobi 等格式的电子书。


目录

1. 自述
1.1. 写给读者
1.2. 作者简介
1.3. 如何获得文档
1.4. 打赏(Donations)
1.5. 联系方式
I. 前端架构
1. 网站架构
1.1. 集群(Cluster)
1.1.1. 负载均衡
1.1.1.1. DNS负载均衡
1.1.1.2. 软件四层交换负载均衡
1.1.1.3. 应用层负载均衡
1.1.2. 高可用性集群
1.1.3. 负载均衡设备
1.1.4. 会话保持
1.1.5. 健康状态检查
1.2. 缓存技术
1.2.1. 浏览器缓存
1.2.1.1. Expires
1.2.1.2. If-Modified-Since / Last-Modified
1.2.1.3. ETag / If-None-Match
1.2.2. CDN/逆向代理缓存
1.2.3. 负载均衡设备
1.2.4. WEB服务器缓存
1.2.5. 应用程序缓存
1.2.6. 数据库缓存
1.3. 网站静态内容出版
1.3.1. 架构总览
1.3.2. 静态化实现手段有哪些?
1.3.2.1. 生成方式
1.3.2.2. 抓取方式
1.3.2.3. 伪静态化
1.3.2.4. 混合方式
1.3.2.5. 静态化中的动态内容
1.3.3. cdn
1.3.4. www 服务器
1.3.5. cms 服务器
1.3.6. img
1.3.7. Ajax 局部更新与缓存
1.4. 多媒体数据分离
1.4.1. 图片服务器分离
1.4.2. 目录层次规划
1.4.3. 多域名访问
1.5. 图片尺寸优化与自动裁剪
1.5.1. 背景
1.5.2. 实现思路
1.5.2.1. 尺寸动态变化
1.5.2.2. 实时裁剪并静态化
1.5.3. web或代理服务器插件实现方案
1.6. 压缩数据传输
1.7. SSL
1.8. 搜索引擎相关优化
1.8.1. 搜索结果静态化
1.8.2. robots.txt
1.8.3. sitemaps
1.8.4. Sitemap in robots.txt
1.8.5. sitemap 静态内容生成工具
1.9. 静态网站繁简转换
2. Javascript Framework
2.1. Minify JS
2.1.1. jsmin
2.1.2. yuicompressor
2.1.3. shrinksafe
II. 后端架构
3. 微服务安全解决方案
3.1. Restful 安全问提
3.2. 第一个阶段采用 HTTP Basic Auth
3.3. 第二阶段 HTTP Basic Auth + SSL
3.4. 第三阶段 Oauth
3.5. 第三阶段,终极版诞生,SSL使用双向认证
3.6. 第四个阶段,HTTP2 + HTTP Basic Auth + Oauth2 + Jwt
4. 分布式计划任务
4.1. 什么是分布式计划任务
4.2. 为什么采用分布式计划任务
4.3. 何时使用分布式计划任务
4.4. 分布式计划任务的部署
4.5. 谁来写分布式计划任务
4.6. 怎么实现分布式计划任务
4.6.1. 分布式互斥锁
4.6.2. 队列
4.6.3. 其他
5. 应用防火墙
5.1. 什么是应用防火墙
5.2. 功能需求
5.2.1. 计数器
5.2.2. 访问控制列表 ACL
5.2.3. 用户认证
5.2.4. 协议
5.3. 简单实现
5.3.1. 权限控制与实现
5.3.2. 演示
5.3.3. 增加7 Layer防火墙
6. 数据与应用程序间通信
6.1. 管道通信
6.1.1. 背景
6.1.2. 解决思路
6.1.3. Mysql plugin
6.1.4. plugin 的开发与使用
6.1.5. 插件如何使用
6.1.6. 部署相关问题
6.2. 消息队列
6.2.1. 背景
6.2.2. 应用场景
6.2.3. Mysql plugin
6.2.4. plugin 的开发与使用
6.2.5. 插件如何使用
6.3. 数据库与外界文件
6.3.1. 背景
6.3.2. 解决思路
6.3.3. 解决方案
6.3.4. plugin 的开发与使用
6.3.5. 在事务中使用该插件
6.3.6. 通过触发器调用图片处理函数
6.4. Socket 方式
6.4.1. UDP
7. PHP 安全与性能优化
7.1. Apache mod_php / php-fpm
7.1.1. 用户权限
7.1.1.1. Apache
7.1.1.2. Nginx / lighttpd + fastcgi
7.1.2. web server 版本信息
7.1.3. php_flag / php_admin_flag
7.1.4. 防止URL注入
7.2. php.ini
7.2.1. Magic quotes
7.2.2. 危险PHP函数
7.2.2.1. chdir()函数安全演示
7.2.3. 隐藏PHP版本信息
7.2.4. session名字可以泄露你的服务器采用php技术
7.2.5. 隐藏PHP出错信息
7.2.6. open_basedir 防止操作web环境意外文件目录
7.3. 开发于安全
7.3.1. 彻底解决目录于文件的安全
7.3.2. Session / Cookie安全
7.3.3. 注入安全
7.3.3.1. 禁止输出调试信息
7.3.3.2. 预防SQL注入攻击
7.3.3.3. SHELL 命令注入
7.4. 执行效率
7.4.1. timeout
7.4.1.1. mysql
7.4.2. 浏览器上传文件尺寸控制
III. Database Modeling Design
8. 关系型数据库设计
8.1. 数据字典
8.2. 用户帐号表
8.2.1. 用户注册键盘跟踪表设计
8.3. 分类表设计
8.3.1. 树形分类表
8.3.2. 多对多分类
8.3.3. 快速检索子分类设计
8.3.4. 计算节点数量
8.3.5. Example
8.4. 文章表设计
8.4.1. 分区表设计
8.4.2. Title性能优化
8.5. 评论表
8.6. 记录点击率,阅读次数,及评分表
8.7. 产品属性表
8.7.1. 简单实现
8.7.2. 实现属性组管理
8.7.3. 可编辑属表
8.8. 商品库存表
8.9. 国际化语言表
8.10. Workflow
8.11. 内容版本控制
8.12. logging 日志表的设计
8.13. uuid 替代传统序列 id
8.14. 动态配置表
8.14.1. 配置表历史记录
8.15. 验证码
8.16. 手机归属地数据库表
8.17. 数据检查
8.17.1. 身份证校验
8.18. 创建与修改时间
8.19. 在线用户表
8.20. HTML TO Text
8.21. SNS 数据库设计
8.21.1. people 表
8.21.2. firend 表
8.21.3. 演示
8.21.4. network 表
8.22. 数据库与缓存
8.22.1. 什么是数据库缓存?
8.22.2. 为什么缓存数据呢?
8.22.3. 什么时候使用数据库缓存
8.22.4. 涉及缓存的地方有哪些
8.22.5. 谁来控制数据库缓存
8.22.6. 怎么控制数据库缓存
8.22.6.1. SQL_CACHE 缓存
8.22.6.2. 禁止缓存 SQL_NO_CACHE
8.22.6.3. 关闭缓存 set session query_cache_type=off
8.23. PostgreSQL 所特有数据库设计
8.23.1. 国家地区表的设计
8.23.2. 话题讨论表的设计
8.23.3. 账户表/余额表/消费储蓄表
8.24. 数据库并行访问控制
8.24.1. 防止并行显示
8.25. Sharding
8.25.1. horizontal
8.25.2. vertical
8.25.3. 新闻数据库分表案例
8.26. 数据库安全
8.26.1. 数据库结构版本控制
8.26.1.1. 什么是数据库结构版本控制
8.26.1.2. 为什么要做数据库结构本版控制
8.26.1.3. 何时做数据库结构本版控制
8.26.1.4. 在哪里做数据库结构本版控制
8.26.1.5. 谁来负责数据库结构本版控制
8.26.1.6. 怎样做数据库结构本版控制
8.26.2. 保护表
8.26.3. 保护表字段
8.26.4. 时间一致性
8.26.5. 为数据安全而分库
8.26.6. 内容版本控制,撰改留痕
8.26.7. 数据库审计表
8.26.8. 用户/角色认证
8.26.9. Token 认证
8.26.10. 数据加密
8.26.10.1. AES_ENCRYPT / AES_DECRYPT
8.26.10.2. 加密字段
8.26.11. 开发加密插件开发
8.26.12. 数据区块链
8.26.13. 状态保护
8.26.14. 数据归档
8.27. MySQL 大数据操作注意事项
8.27.1. 关于 delete
8.27.2. 关于 update
8.27.3. 关于创建索引
8.27.4. 关于 OPTIMIZE
8.27.5. 关于切换引擎
8.27.6. 确保SELECT不被受阻
9. 参考例子
9.1. CMS 数据库设计
9.2. 数据属性例子
9.2.1. 布尔状态
9.2.2. 流状态
9.2.3. 商品属性
9.2.3.1. 鞋
9.2.3.2. 裤子
9.2.3.3. 服装
9.2.3.4. 内衣
9.2.3.5. 隐形眼镜
9.2.3.6. 戒指
9.2.4. 手机号码分配
9.2.5. 身份证
9.2.6. 银行卡
10. NoSQL OOD(Object-Oriented Design)
10.1. MongoDB
10.1.1. 配置表 config
10.1.2. 日志表
10.2. Cassandra
10.2.1. User And Profile
10.2.2. Category
10.2.3. Article
10.2.4. Product and ProductAttribute
10.2.5. Address
10.2.6. 练习
11. Spring Data 最佳实践
11.1. MySQL
11.1.1. 分类表
11.1.2. 为字段增加索引
11.1.3. 复合索引
11.1.4. 一对多实例
11.1.5. ManyToMany 多对多
11.1.6. 外键级联删除
11.2. MongoDB
11.2.1. 枚举定义
11.2.2. 日志表
11.2.3. 地址与定位
IV. 运维篇
12. 理解 DevOps
12.1. 什么是DevOps?
12.2. 为什么会诞生DevOps?
12.3. DevOps 虽好,为什么难以普及呢?
12.4. 软件工程的历史与进化
12.5. 为什么很多企业为什么实施 DevOps 以失败告终?
12.6. 持续集成不是DevOps
12.7. 持续交付不是 DevOps
12.8. 自动化部署
12.9. 收集各部门问题
12.9.1. 自运维的需求
12.10. 收缩技术栈
12.10.1. 模块化思维
12.11. 被遗忘的数据库
12.12. 建立中心仓库
12.13. 缓存
12.14. 安全
13. Linux 系统安全与优化配置
13.1. Openssh 安全配置
13.1.1. 禁止root用户登录
13.1.2. 限制SSH验证重试次数
13.1.3. 禁止证书登陆
13.1.4. 使用证书替代密码认证
13.1.5. 图形窗口客户端记忆密码的问题
13.1.6. 关闭 GSSAPI
13.1.7. 禁止SSH端口映射
13.1.8. IP地址限制
13.1.9. 禁止SSH密码穷举
13.2. Shell 安全
13.2.1. .history 文件
13.2.2. sudo 安全问题
13.2.3. 临时文件安全
13.2.4. 执行权限
13.3. 防火墙
13.3.1. 策略
13.3.2. 防止成为跳板机
13.3.3. 端口安全
13.3.4. 封锁特定字符串
13.4. Linux 系统资源调配
13.4.1. /etc/security/limits.conf
13.4.2. 关闭写磁盘I/O功能
13.5. PAM 插件认证加固配置
13.5.1. pam_tally2.so
13.5.2. pam_listfile.so
13.5.3. pam_access.so
13.5.4. pam_wheel.so
14. 环境安装模板化
14.1. 云主机初始化
14.2. CentOS 7 初始化
14.3. Nginx
14.4. Tomcat
14.5. Node.js
14.6. MongoDB
15. Shell 高级编程
15.1. 递归调用
15.2. 实现守护进程
15.3. 进程间通信
15.4. Shell 历史记录异地留痕审计与监控
15.4.1. 什么是Shell历史记录异地留痕与监控
15.4.2. 什么要将Shell历史记录异地留痕并监控
15.4.3. 何时做历史记录异地留痕
15.4.4. 在哪里做历史记录异地留痕
15.4.5. 角色与权限
15.4.6. 怎么实现历史记录异地留痕
15.4.6.1. 节点配置
15.4.6.2. 推送端
15.4.6.3. 收集端
15.4.7. 延伸阅读
16. IDC
16.1. 网络设备配置管理与版本控制
16.1.1. 背景
16.1.2. 怎样实现网络设备配置管理
16.1.3. 总结
16.2. 机房迁移
16.2.1. 拓扑确立
16.2.2. 存储规划
16.2.2.1. RAID Disk Group 规划
16.2.2.2. 文件系统规划
16.2.2.3. 目录规划
16.2.3. 设备上架
16.2.4. 操作系统初始化
16.2.5. 服务器及运行环境
16.2.6. 部署应用程序
16.2.7. 监控系统
16.2.8. 日志中心
16.2.9. 测试
16.3. 网线怎样连接才合理
16.3.1. 单个硬件防火墙方案
16.3.1.1. 防火墙
16.3.1.2. 交换机
16.3.2. 双防火墙方案
16.3.3. 网卡
16.3.3.1. 内外隔离
16.3.3.2. 负载均衡
16.3.3.3. 交叉互联
16.3.3.4. 网络适配器
16.4. 记录思科路由器/防火墙/交换机日志
16.4.1. 开启日志
16.4.2. syslogd 服务器脚本
16.5. 影响网络流量的因素
16.5.1. 带宽
16.5.1.1. 防火墙带宽
16.5.1.2. 交换机带宽
16.5.1.3. 服务器带宽
16.5.2. 会话数
16.5.2.1. 防火墙会话数
16.5.2.2. 服务器会话数
16.5.2.3. 应用服务器会话数
16.5.3. IO
16.5.3.1. 硬盘 HDD
16.5.3.2. 固态硬盘 SSD
16.5.3.3. 分布IO
16.5.3.4. FC SAN
16.5.3.5. iSCSI / FCoE
16.5.3.6. InfiniBand 或 RDMA
17. Server
17.1. Tomcat 安全配置与性能优化
17.1.1. JVM
17.1.1.1. 使用 Server JRE 替代JDK。
17.1.1.2. JAVA_OPTS
17.1.1.3. java.security 优化
17.1.2. Tomcat 优化
17.1.2.1. maxThreads 连接数限制
17.1.2.2. 虚拟主机
17.1.2.3. 压缩传输
17.1.3. Tomcat 安全配置
17.1.3.1. 禁用8005端口
17.1.3.2. 安装后初始化配置
17.1.3.3. 启动用户与端口
17.1.4. 如何部署应用程序
17.1.5. 延伸阅读
17.2. 一次切割日志引发的血案
17.2.1. 日志是怎么产生的
17.2.2. 让我们看个究竟
17.2.2.1. 第一种情况,日志文件被重命名
17.2.2.2. 第二种情况,日志文件被删除
17.2.2.3. 第三种情况,日志没有被删除,也没有被重命名,而是被其他程序做了修改
17.2.3. 经典案例分析
17.2.4. 怎样监控日志
17.2.5. 总结
17.3. 日志归档与数据挖掘
17.3.1. 什么日志归档
17.3.2. 为什么要做日志归档
17.3.3. 何时做日志归档
17.3.4. 归档日志放在哪里
17.3.5. 谁去做日志归档
17.3.6. 怎样做日志归档
17.3.6.1. 日志格式转换
17.3.6.2. 日志中心方案
17.4. 日志集中管理
17.4.1. 系统日志
17.4.2. 应用程序日志
17.5. 时间同步
17.6. 邮件系统
17.6.1. Mailing List
17.7. TPC
17.8. IOPS (Input/Output Operations Per Second, pronounced i-ops)
17.9. rPerf
17.10. 磁盘规划
17.10.1. 物理隔离
17.10.2. 硬件逻辑卷隔离
17.11. Fibre Channel HBA 卡
17.12. iDRAC / iLO / IMM
18. 安全
18.1. 植入式攻击入侵检测解决方案
18.1.1. 什么是植入式攻击?
18.1.2. 为什么骇客会在你的系统里面植入木马?
18.1.3. 什么时候被挂马?
18.1.4. 在那里挂马的?
18.1.5. 谁会在你的系统里挂马?
18.1.6. 怎样监控植入式攻击
18.1.6.1. 程序与数据分离
18.1.6.2. 监控文件变化
18.1.6.3. 安装日志收集程序
18.1.7. 延伸阅读
19. Distributed File System(簇文件系统)
19.1. 聚合文件系统
19.2. 全局文件系统
19.3. 负载均衡文件系统
19.4. 网络块设备
19.5. Storage 存储
19.5.1. 存储种类
19.5.1.1. Direct Attached Storage
19.5.1.2. Network-attached storage
19.5.1.3. Storage area network
19.5.2. RAID
19.5.2.1. 缓存服务器
19.5.2.2. Web 服务器
19.5.2.3. 数据库
19.5.2.4. 数据备份
19.5.3. File System 文件系统
19.5.3.1. Distributed File System(DFS)
19.5.4. 数据访问协议
19.5.5. 数据管理
19.5.5.1. Share 共享
19.5.5.2. Mirror 远程镜像同步
19.5.5.3. 压缩与重复数据消除
19.5.5.4. Backup 备份与恢复
19.5.5.5. 故障报告
19.6. 磁盘快照
V. Software architecture (软件架构)
20. Project
20.1. 开源模式
20.2. 开发语言及平台
20.2.1. 分层架构
20.2.1.1. 中间件 Middleware
20.2.1.2. 分层
20.2.2. Web 2.0
20.2.3. 云计算
20.2.3.1. 云计算的三种服务模式
20.2.4. 跨平台
20.2.5. 编译语言比脚本语言安全
20.2.6. 封装重用
20.2.7. 相关的工具
20.2.7.1. 开发工具
21. Design pattern (设计模式)
21.1. Singleton 单件模式
22. AOP(Aspect Oriented Programming)
23. Framework Design
23.1. 开发框架 Framework
23.1.1. HMVC
23.1.2. REST
23.1.3. SNA (Shared Nothing Architecture)
23.1.4. 其他
23.2. MVC Framework Design (设计MVC框架)
23.2.1. HMVC Framework
23.3. REST
23.3.1. RESTful JSON API
23.3.2. Ajax 与 RESTful 跨域
23.4. Service-oriented architecture (SOA)
23.4.1. SOAP实现
23.4.2. MQ 实现
23.5. Dispatcher MVC核心分发器
23.5.1. URL设计
23.5.1.1. URL 作为MVC 的Controller
23.5.1.2. URL 伪静态化,用于SEO优化
23.5.2. Dispatcher 的实现方式
23.6. Plugin & Hook 设计与实现
23.6.1. 插件管理平台
23.6.2. 接口定义
23.6.3. 插件
23.6.4. 测试
23.7. Interface
23.7.1. 访问接口协议
23.7.2. 接口性能问题
23.7.3. 接口安全问题
23.7.3.1. 访问权限
23.8. 模板(template)
23.8.1. HTML 页面优化
23.9. Session/Cookie
23.9.1. Session
23.9.2. Session 共享
23.9.3. Cookie
23.9.3.1. Cookie 安全
23.9.3.2. cookie-free domains
23.9.3.3. P3P
23.10. 国际化 Locale database。
23.10.1. Unicode
23.11. 数据库访问
23.11.1. CRUD
23.11.2. Active Record
23.11.3. OR Mapping
23.12. Cache
23.12.1. 页面缓存
23.12.2. 局部缓存
23.13. Single sign-on (SSO) 单点登录
23.14. 搜索引擎
23.15. Synchronous/Asynchronous
23.16. Message Queuing
23.17. Hash
23.18. Sharding 垂直/水平切割
23.18.1. 面向服务
23.18.2. 面向数据库
23.19. 日志系统
23.20. Cache
23.20.1. CDN (Content Delivery Network) 与反向代理
23.20.1.1. CDN接口API
23.20.1.2. 方向代理页面过期处理
23.20.1.3. 内容版本化
23.20.2. HTTP Cache
23.20.2.1. 在程序中灵活操作 Cache-Control
23.20.2.2. 非程序文件缓存处理
23.20.3. Cache 生存时间
23.21. i18n 国际化
23.21.1. 数组方式
23.21.2. 数据库方式
23.21.3. 文件文件
23.21.4. Gettext
23.21.5. 数据结构
23.22. RSS / ATom
23.22.1. Atom
23.23. Logging 日志
23.23.1. 日志的格式
23.23.2. 日志存贮
23.23.2.1. 本地存储
23.23.2.2. 远程存储
23.23.3. Log4cpp/Log4j/Log2PHP
23.23.4. Remote Syslog
23.24. debug
23.25. 性能优化
23.25.1. 尽量使用单引号
24. 信息安全
24.1. CSRF(Cross-site request forgery)跨站请求伪造
24.2. Session 撰改演示
24.3. 用户注册与登录安全
24.4. 目录文件与权限
24.4.1. 读写权限
24.4.2. 访问权限
24.5. 密码安全
24.6. 注入检查
24.7. 防止恶意刷新与重复提交
24.8. 屏蔽出错信息
24.8.1. 屏蔽php出错信息
25. 序列化
VI. Testing
VII. 设计与解决方案
26. 金融交易系统异地灾备方案
26.1. 背景
26.1.1. 建立容灾系统需要考虑哪些因素
26.1.2. 目前容灾系统的实现方式
26.1.3. 系统灾难恢复等级划分
26.1.4. 做灾备你面临最大的挑战是什么?
26.2. 灾备整体解决方案
26.2.1. 双活互备方案
26.2.2. 三机房互备方案
26.3. 数据中心网络
26.3.1. 单机房高可用双活互备解决方案
26.3.2. 双机房互备异地灾备方案
26.3.3. 三机房互备异地灾备方案
26.4. 服务器部署
26.4.1. 网站
26.4.2. 数据源
26.4.3. 数据库
26.5. 软件开发
26.5.1. 交易软件分布式交易
26.5.1.1. 分布式交易解决方案一
26.5.1.2. 分布式交易解决方案一
26.5.1.3. 分布式交易解决方案一
26.5.2. 交易终端
26.5.2.1. 用户分流
26.5.2.2. 会话保持
26.5.3. API 应用程序接口
26.5.4. 大数据的问题
26.5.4.1. 第一个阶分区表
26.5.4.2. 第二个阶分库分表
26.5.5. 数据校对
26.6. 自动化运维
26.7. 灾备培训和演练
26.7.1. 培训内容
26.7.1.1. 培训对象
26.7.1.2. 操作流程
26.7.2. 演练环境设置
26.7.3. 演练级别与方式
26.7.4. 开始演练
26.7.4.1. 切换前操作
26.7.4.2. 切换操作
26.7.4.3. 切换后检查
26.7.5. 演练结果检查
26.7.6. 可能存在的风险
26.7.6.1. 主交易系统短期无法恢复
26.7.6.2. 切换灾备系统后业务的影响
26.7.6.3. 数据不同步产生的影响
26.7.7. 灾备系统备份
26.7.8. 系统运营维护
26.8. FAQ
26.8.1. 实现双活最大的障碍是什么?
26.8.2. 双活怎么解决数据冲突问题
27. Architecture Overview
27.1. CDN (Content Delivery Network)
28. Enterprise Architecture
28.1. 仓库管理系统(warehouse management system)
29. Monitor solution
29.1. 网络监控
29.1.1. 流量监控
29.1.2. 交换机监控
29.2. 集群监控
29.3. 操作系统监控需求
29.3.1. CPU 相关监控
29.3.2. 磁盘相关监控
29.3.3. 内存相关监控
29.3.4. 网络监控
29.3.5. 权限监控
29.3.6. 进程相关监控
29.3.7. 时间同步监控
29.3.8. 文件系统与系统日志监控
29.4. 服务监控
29.4.1. Nginx 监控
29.4.2. Redis 监控
29.4.3. Rabbit 监控
29.4.4. Elasticsearch 监控
29.4.5. 数据库监控需求
29.4.5.1. 数据库监控指标
29.5. 网站安全与预警机制
29.6. 网络监控
29.6.1. DNS解析監控
29.6.2. 路由監控
29.6.3. 流量監控
29.6.4. 会话数监控
29.7. 内容监控
29.8. DHCP
29.8.1. DHCP Server
29.9. Routing
29.9.1. 策略路由
29.10. routing-table
29.11. Example
29.12. 监控方法
29.12.1. 人工监控
29.12.2. 机器监控
30. Backup
30.1. help
30.1.1. Task
30.1.2. Schedule
30.1.3. Crontab
30.2. 配置文件备份
30.2.1. Firewall and Switch
30.2.2. Server
31. 支付平台方案
31.1. 方案
31.1.1. 商户方案
31.1.2. 银行方案
31.2. 支付接口
31.3. 支付派台后台
32. 电子商务网站
32.1. Product
32.2. Cart & Checkout
32.2.1. 物流配送插件设计
32.3. 促销优惠组件设计
33. 微信公众平台
33.1. 微信公众平台原理
33.2. 微信公众平台通常提供的服务模式
33.3. 微信公众平台开发
34. DIY Firewall & VPN
34.1. Firewall
34.2. 3 Layer VPN
34.3. 7 Layer VPN
34.4. 替代 CentOS 7/8 中的 firewalld
34.4.1. Demo
34.4.2. Firewall Script
35. 日志
36. Automatic Testing
36.1. Cluster Testing
36.2. 静态内容并发测试
36.3. 动态内容测试
36.4. 业务逻辑并发能力
1. 附录
术语表

插图清单

4.1. 分时方案
4.2. HA 高可用方案
4.3. 多路心跳方案
4.4. 任务抢占方案
4.5. 任务轮循或任务轮循+抢占排队方案
26.1. 单机房高可用双活互备解决方案
26.2. 双机房异地灾备方案
26.3. 三机房互备异地灾备方案
26.4. 动态页面方案
26.5. 数据源灾备解决方案
26.6. 数据库灾备解决方案
26.7. 双向通知解决方案
26.8. 消息对列解决方案
26.9. CVS开发框架
26.10. 传统的分表方案
26.11. 推荐的分表方案
26.12. 基于功能分表方案

表格清单

8.1. 工作流模拟

范例清单

1.1. example robots.txt
6.1. 发送短信
6.2. 处理图片
6.3. 身份证号码校验
6.4. 静态化案例
6.5. 数据同步案例
8.1. identity_card 身份证归属地表
8.2. 演示 SQL_CACHE
8.3. 演示 SQL_NO_CACHE
8.4. 演示 query_cache_type=off 关闭查询缓存
8.5. 递归查询实例 city 表
8.6. 话题讨论表的设计
13.1. /etc/pam.d/sshd - pam_tally2.so
13.2. /etc/pam.d/sshd - pam_listfile.so
23.1. php language package
23.2. sql table language package
24.1. Example for ECSHOP
29.1. dhcp vlan rip
30.1. Backup program
修订历史
修订 1.0.0Jun 29, 2020Neo
计划改变,启动写作计划
修订 0.1.1Sep 12, 2011Neo
章节做了大调整,将文档分为五块,多维度架构,开发,运维,SQA,还有DevOps。
修订 0.1.0May 15, 2010Neo
增加解决方案一节,并填充了大量章节。同时对完成这篇文档信心大增
修订 0.0.42010Neo
这篇文档几乎没有时间和精力编辑,内容增加不多。
修订 0.0.4April 15, 2009Neo
这篇文档几乎搁浅,没有时间和精力,没有编辑加入。今天做了一下布局调整,增加一些内容。
修订 0.0.3Sep. 17, 2008Neo
加入关于存储的内容
修订 0.0.1May 24, 2008Neo
李振韬加入编译团队
修订 0.0.0May 22, 2008Neo
这是一个值得纪念的日子