該書集科普和啓發於一身,是瞭解分佈式和微服務,擴寬技術視野的不錯的一本書,能夠做爲導論,先從全局角度瞭解技術,而後再經過其餘途徑從具體細節專研。所以這裏只對關鍵概念進行了書寫以提高印象。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
平臺領域模型