1. 程式人生 > >讀書筆記:大型分散式網站架構設計與實踐(2)

讀書筆記:大型分散式網站架構設計與實踐(2)

2 分散式系統基礎設施

一個大型、成熟的分散式系統的背後,往往會涉及眾多的支撐系統,也即所謂的分散式系統的基礎設施,如第一章介紹過的分散式協作及配置管理系統Zookeeper,還有本章將要介紹的分散式快取系統、持久化儲存系統、分散式訊息系統、搜尋引擎,另外還有CDN系統、負載均衡系統、運維自動化系統等等。

本章一共分為四個小節,分別介紹了分散式快取,持久化儲存,分散式訊息系統和垂直化搜尋引擎。

2.1 分散式快取

分散式快取主要用於在高併發環境下減輕資料庫的壓力,提高系統的響應速度和併發吞吐。常用的分散式快取方案有memcache、redis等。

2.2 持久化儲存

持久化儲存方案有傳統的關係型資料庫Mysql,也有非關係型的Nosql。

2.3 訊息系統

在分散式系統中,訊息作為應用間通訊的一種方式,得到了廣泛的應用。訊息可以被儲存在佇列中,直到被接受者取出。由於訊息傳送者不需要同步等待訊息接受者的響應,訊息的非同步接收降低了系統整合的耦合度,提升了分散式系統協作的效率,使得系統能夠更快響應使用者,提供更高的吞吐。當系統處於峰值壓力時,分散式訊息佇列還能夠作為緩衝。

2.4 垂直化搜尋引擎

垂直化搜尋引擎在分散式系統中是一個非常重要的角色,它既能夠滿足使用者對於全文檢索、模糊匹配的需求,解決資料庫like查詢效率低下的問題,又能夠解決分散式環境下,由於採用分庫分表,或者使用NoSql資料庫,導致無法進行多表關聯或者複雜查詢的問題。

總結

對這一章內容總結如下:

分散式系統的基礎設施有很多,分散式快取、持久化儲存、訊息系統和垂直化搜尋引擎都是常用的基礎組成部分。

分散式快取主要介紹了memcache和redis,包括memcache使用的分散式策略和Hash演算法的選擇。

分散式儲存解決方案介紹了關係型資料庫Mysql,包括Mysql的分庫分表。還介紹了檔案儲存系統HDFS中的HBase。

常用的分散式訊息系統有ActiveMQ,Kafka,RabbitMQ等,本章主要通過ActiveMQ來介紹分散式訊息系統的使用與叢集架構。

垂直化搜尋引擎主要介紹了垂直化搜尋引擎的基本原理和開源檢索工具Lucene,以及基於Lucene的Solr檢索工具。