讀書筆記:《架構解密:從分佈式到微服務》

0.前言

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

  該書思路是注重來龍去脈與發展歷程,軟硬件兼併,以網絡,內存,cpu,存儲等計算機組件爲章節,介紹瞭如何從單體應用到分佈式應用或者所起到的做用。通俗易懂的描述了微服務和分佈式,固然本書中也有一些晦澀難懂的部分,對於非科班出身或者計算機組成原理和操做系統學的不太好的同窗不是很友好,可是也只是部分。算法

1.基礎

   計算機發展歷程: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

2.理論

  特徵:目標是提高總體性能和吞吐量,故障機率增長

  性能,容錯。中心化,去中心化,腦裂

 一致性:

  Kafka一致性案例,Paxos算法,Raft

 zookeeper

  配置中心,服務註冊中心,集羣通訊與子系統控制

 CAP理論

  一致性,可用性,網絡分區。

 BASE理論

  主要可用,軟狀態,最終一致性

 分佈式事務

  數據庫單機事務

  原子性,一致性,隔離性,持久性

  Mysql事務執行流程

  X/OpenDTP事務模型

  二階段提交,三階段提交

 分佈式事務解決方案:

  業務接口整合,最終一致性方案ebay模式,X/OpenDTP模型支付寶DTS框架

3.RPC

  socket通訊

  SunRPC

  CORBA的功敗垂成

  XML-RPC

  ZeroC IceGrid

  服務治理,Dubbo

  SOA

  Thrift,gRPC

4.內存

  CPU,內存,Cache

  多核CPU與內存共享

  Cache僞共享問題

  不一致性內存

 內存緩存技術:

  淘汰策略,LRU,LFU,FIFO

 緩存實現方式:

  進程內村換,單機緩存中間件,分佈式緩存中間件

 Memcache內存管理策略

  內存頁,page,chunk,slab。浪費現象slab automove。

 Redis:

  爲什麼單線程,優點

 內存計算產品:

  SAP HANA,數據所有放入內存中,充分並行編程,最小化數據傳輸

  VoltDB,採用分區表結合副本表方式處理數據庫水平擴展問題

4.存儲

  磁盤,磁盤陣列,DAS,SAN

  NAS,NFS

  GFS,GPFS

  GlusterFS

 Ceph

   充分發揮存儲設備自身計算能力,徹底去中心化的設計思路

  CRUSH算法

5.分佈式計算

 Actor模型

 Akka:

  併發並行程序簡單的高級別抽象,異步非阻塞高性能時間驅動編程模型,輕量級事件驅動處理

 Storm

 MapReduce

6.全文檢索與消息中間件

 Lucene

 solr

 es

 消息隊列

  第一代:ActiveMq,J2EE時代產物,企業級特性。消息持久化存儲,事務要求。

  第二代:RabbitMq,後Java時代。ActiveMq APollo。AMQP協議。

  第三代:Kafka,互聯網時代。rocketmq

 JMS

  點對點消息通訊模型,發佈訂閱模型

7.微服務架構

 容器技術

 Docker

 微服務架構:

  1.Rpc框架進化的ICeGrid

  2.Rest演化的SpringCloud

  3.基於容器技術的kunernetes

 常見的微服務方案:

  IceGrid,註冊中心,獨立進程,內嵌負載均衡,一鍵部署

  SpringCloud,Netflix,Eureka,Zuul,Ribbon,Hystric

  基於消息隊列的微服務,網易蜂巢平臺

  Docker Swarm

  kunernetes

 平臺領域模型

相關文章
相關標籤/搜索