背景
平常时间不多,看书断断续续,这本书基本从18年年末看起,看到现在才看完,作者花了半年写书我花了半年才看完,惭愧~
整本书450页,前面偏作者总结的理论知识,大章后面会带有小案例,后面讲京东的商品页偏实践,也算是理论+实践了
不过读前半段总感觉例子比较牵强,直到后面看到商品页时发展原来都是这个大例子中拆出来的小例子,所以前面的例子很别扭,后面很重复,也算作本书的缺点之一
全篇知识比较硬,作者不开玩笑不举现实例子全篇抽象与代码例子,内容相对死板一点,不过也有不少干货小点
说说作者
其实我在15年工作的时候就经常看开涛的博客,原因是我搜索时百度给我的头几个帖子都是他的博客内容,看来那时候他就很知名了
记得最初看他的博客是关于「跟我学Shiro」的系列文章,因为那时候正好在负责公司多业务线的基础平台整合需要用到Shiro框架,看他博客带入门了
感觉他博客学习技术由浅入深还不错,所以后面还看过他的「跟我学Spring」「跟我学SpringMVC」系列回顾了下基础知识颇有意思
后面再关注时发现他在发一些nginx与lua技术的文章就不太感兴趣了,原来他15年去了京东,就开始搞这块东西了
总体来说,我当时只是觉得他写基础入门博客还是挺好的,直到他出书发现当了京东资深架构师才发现这家伙成长真够快的,原来他还能写一些架构的知识,不过就是写的一般=。=
内容
全篇围绕互联网架构技术中的特点,把所有关键字基本过了一遍
包括了单机能力的提升与分布式领域能力提升多个维度,我把其点重新分分类,这样看起来会更加清晰
同时作者对高可用高并发的分离也有些混乱与错乱,我也稍微调整了下顺序更加合理
流程与原则
- 经验规律:墨菲定律、康威定律、最小产品、二八原则
- 设计原则
主题达成
- 高并发:TPS,多短时间内请求量、增加吞吐,降低延迟
- 吞吐:扩容、负载均衡、反向代理、池化
- 查:缓存、并发、异构
- 写:队列、批量
- 高可用:3个9,4个9,多长时间内成功率
- 隔离
- 部分可用兜底:降级、限流
- 循环执行:超时、重试
- 灾备:冗余、回滚、压测、预案
- 人肉高可用:告警
高并发方法论
- 扩容、负责均衡、反向代理
- 池化技术
- 缓存技术
- 异步并发
- 队列
高可用方法论
- 隔离
- 限流
- 降级
- 超时与重试
具体技术
- Servlet3
- Nginx
- OpenResty:Nginx+lua
总结与思考
其实高并发在业务实践中有更多的可玩性与灵活性,往往是提供可靠的中间件与运维组件,而业务方依赖这些组件定制策略,灵活度高,这个往往是业务线的专家做的事情
而高可用往往会做到环境与中间件中,往往高可用是需要上下文联动才能达到高可用,所以只有环境做的不好周边设施不完善时才有业务自己去定制开发,这个往往是平台架构师做的事情
高并发是多短时间内请求量,高可用是多长时间内成功率,简单总结一下就是要让系统又猛又持久
整体书的内容对于自己的架构还是有能引起思考的,书中提到的东西基本也是技术老生常谈并不新鲜但是很实用,由于加了实践的经验还是值得一读,最终采用nginx做网关的设计虽然我不是太赞同作者架构观点,但就像开篇点评说的一样,虽然内容不一定是对的但是经过推演假设实践后不断优化就越接近本质,设计也就更合理,做一个有思想的架构师很重要,所以我还是比较欣赏作者的,很有思想自成体系,内容则可去其糟粕取其精华