分佈式架構筆記(一)--分佈式架構的演進

@mysql

分佈式架構的演進

  • 架構的本質
  • 大型網站的架構演進

分佈式、架構

阿里:去IOE,IBM,Oracle,EMCsql

需求:數據庫

  • 有序化重構瀏覽器

    分與合,按照 子系統、模塊,組件,進行拆分緩存

    業務架構/技術架構安全

抽象思惟服務器

架構的演變過程

開始:人員問題,時間週期cookie

Session保存數據,分多個服務器,http是無狀態的網絡

如何解決:Session +cookiesession

session 服務端保存狀態

cookie 客戶端保存狀態

分佈式架構,須要考慮Session共享,實現單點

Session共享

  1. Session複製,同步Session,
    1. 增長網絡開銷(只能在小的負載上)
    2. 消耗內存
  2. Session共享,同一存儲,基於Redis存儲
  3. 無狀態存儲,生成一個標識,把Session直接存儲在客戶端(token)----(存在安全性問題)

數據庫性能提高

  1. 讀寫分離,->讀多寫少的場景
  2. 分庫分表 ->歷史庫

數據庫如何同步:mysql - master/slave

應用如何對數據源進行路由:mycat/sharding-jdbc

特性的問題

搜索引擎:Lucene,solr,elaticsearch(商業服務)

索引:基於原始數據,

全量構建->第一次構建

增量構建->後續商品新增,增量同步

非實時(異步/實時任務)、實時

ELK,ElasticSearch

Nosql存儲,後者其餘存儲方式

hbase,MongoDB,Redis;。。。

瀏覽器緩存,應用緩存,數據庫緩存,cpu緩存。。。

文件存儲,OSS,HTFS...

分佈式數據庫

經過分表分庫實現數據拆分

  1. 分佈式事務問題->分佈式數據一致性問題
    1. Spring cloud alibaba ->fecser

遠程調用

Dubbo、thrift