该书集科普和启发于一身,是了解分布式和微服务,扩宽技术视野的不错的一本书,能够做为导论,先从全局角度了解技术,而后再经过其余途径从具体细节专研。所以这里只对关键概念进行了书写以提高印象。web
该书思路是注重来龙去脉与发展历程,软硬件兼并,以网络,内存,cpu,存储等计算机组件为章节,介绍了如何从单体应用到分布式应用或者所起到的做用。通俗易懂的描述了微服务和分布式,固然本书中也有一些晦涩难懂的部分,对于非科班出身或者计算机组成原理和操做系统学的不太好的同窗不是很友好,可是也只是部分。算法
计算机发展历程:sql
划时代第一台超大型计算机ENIAC(1946)——IBM大型机(1964)——我的PC/小型UNIX服务器——超级计算机数据库
分布式系统的基石:网络编程
分组交换试验网ARPANET,TCP/IP技术,NSFNET,以太网,Telent协议,万维网,HTTP协议,CDN缓存
网络基础服务器
国际骨干网——国家骨干网——城域网——园区网,网络
IDC机房:出口路由,核心交换区,网络接入区,增值业务区架构
NIO并发
Buffer:字节buffer,堆外buffer,MappedByteBuffer等原理
Netty
非阻塞:TCP/IP滑动窗口,socket底层原理,Reactor模型,mycat-nio
AIO
NIO2,Retry模型,AIO-Linux陷阱
序列化
原由:面向网络,传输对象。数据大传输效率低,其余语言没法对接。
XML,webService——Json,rest——MessagePack/ProtocolBuffer,RPC——Avro/Thrift
特征:目标是提高总体性能和吞吐量,故障几率增长
性能,容错。中心化,去中心化,脑裂
一致性:
Kafka一致性案例,Paxos算法,Raft
zookeeper
配置中心,服务注册中心,集群通讯与子系统控制
CAP理论
一致性,可用性,网络分区。
BASE理论
主要可用,软状态,最终一致性
分布式事务
数据库单机事务
原子性,一致性,隔离性,持久性
Mysql事务执行流程
X/OpenDTP事务模型
二阶段提交,三阶段提交
分布式事务解决方案:
业务接口整合,最终一致性方案ebay模式,X/OpenDTP模型支付宝DTS框架
socket通讯
SunRPC
CORBA的功败垂成
XML-RPC
ZeroC IceGrid
服务治理,Dubbo
SOA
Thrift,gRPC
CPU,内存,Cache
多核CPU与内存共享
Cache伪共享问题
不一致性内存
内存缓存技术:
淘汰策略,LRU,LFU,FIFO
缓存实现方式:
进程内村换,单机缓存中间件,分布式缓存中间件
Memcache内存管理策略
内存页,page,chunk,slab。浪费现象slab automove。
Redis:
为什么单线程,优点
内存计算产品:
SAP HANA,数据所有放入内存中,充分并行编程,最小化数据传输
VoltDB,采用分区表结合副本表方式处理数据库水平扩展问题
磁盘,磁盘阵列,DAS,SAN
NAS,NFS
GFS,GPFS
GlusterFS
Ceph
充分发挥存储设备自身计算能力,彻底去中心化的设计思路
CRUSH算法
Actor模型
Akka:
并发并行程序简单的高级别抽象,异步非阻塞高性能时间驱动编程模型,轻量级事件驱动处理
Storm
MapReduce
Lucene
solr
es
消息队列
第一代:ActiveMq,J2EE时代产物,企业级特性。消息持久化存储,事务要求。
第二代:RabbitMq,后Java时代。ActiveMq APollo。AMQP协议。
第三代:Kafka,互联网时代。rocketmq
JMS
点对点消息通讯模型,发布订阅模型
容器技术
Docker
微服务架构:
1.Rpc框架进化的ICeGrid
2.Rest演化的SpringCloud
3.基于容器技术的kunernetes
常见的微服务方案:
IceGrid,注册中心,独立进程,内嵌负载均衡,一键部署
SpringCloud,Netflix,Eureka,Zuul,Ribbon,Hystric
基于消息队列的微服务,网易蜂巢平台
Docker Swarm
kunernetes
平台领域模型