原创 分佈式專題(十三):緩存的那些事

緩存和它的那些淘汰算法們爲什麼我們需要緩存?很久很久以前,在還沒有緩存的時候……用戶經常是去請求一個對象,而這個對象是從數據庫去取,然後,這個對象變得越來越大,這個用戶每次的請求時間也越來越長了,這也把數據庫弄得很痛苦,他無時不

原创 分佈式專題(十八):分佈式事務常用解決方案

分佈式事務的解決方案分佈式事務的解決方案有如下幾種:全局消息基於可靠消息服務的分佈式事務TCC最大努力通知方案1:全局事務(DTP模型)全局事務基於DTP模型實現。DTP是由X/Open組織提出的一種分佈式事務模型——X/Ope

原创 分佈式專題(十六):淺談分佈式鎖的幾種方案

前言隨着互聯網技術的不斷髮展,數據量的不斷增加,業務邏輯日趨複雜,在這種背景下,傳統的集中式系統已經無法滿足我們的業務需求,分佈式系統被應用在更多的場景,而在分佈式系統中訪問共享資源就需要一種互斥機制,來防止彼此之間的互相干擾,

原创 分佈式專題(十七):淺析分佈式事務

衆所周知,數據庫能實現本地事務,也就是在同一個數據庫中,你可以允許一組操作要麼全都正確執行,要麼全都不執行。這裏特別強調了本地事務,也就是目前的數據庫只能支持同一個數據庫中的事務。但現在的系統往往採用微服務架構,業務系統擁有獨立

原创 分佈式專題(十一):分佈式session解決方案與一致性hash

session一致性架構設計實踐 原創: 58沈劍 架構師之路 2017-05-18   一、緣起 什麼是session? 服務器爲每個用戶創建一個會話,存儲用戶的相關信息,以便多次請求能夠定位到同一個上下文。   Web開發中,web-

原创 分佈式專題(十九):使用RocketMQ事務消息解決分佈式事務

初步認識RocketMQ的核心模塊rocketmq模塊rocketmq-broker:接受生產者發來的消息並存儲(通過調用rocketmq-store),消費者從這裏取得消息。rocketmq-client:提供發送、接受消息的

原创 分佈式專題(十二):分佈式ID生成方案

一、需求緣起 幾乎所有的業務系統,都有生成一個唯一記錄標識的需求,例如: 消息標識:message-id 訂單標識:order-id 帖子標識:tiezi-id 這個記錄標識往往就是數據庫中的主鍵,數據庫上會建立聚集索引(cl

原创 分佈式專題(十四):Spring Boot使用註解集成Redis緩存

爲了提高性能,減少數據庫的壓力,使用緩存是非常好的手段之一。本文,講解 Spring Boot 如何集成緩存管理。Spring註解緩存Spring 3.1之後,引入了註解緩存技術,其本質上不是一個具體的緩存實現方案,而是一個對緩

原创 分佈式專題(十五):緩存更新的套路

緩存更新的套路看到好些人在寫更新緩存數據代碼時,先刪除緩存,然後再更新數據庫,而後續的操作會把數據再裝載的緩存中。然而,這個是邏輯是錯誤的。試想,兩個併發操作,一個是更新操作,另一個是查詢操作,更新操作刪除緩存後,查詢操作沒有命

原创 分佈式專題(九):Nginx負載均衡原理與實踐

本篇摘自《億級流量網站架構核心技術》第二章 Nginx負載均衡與反向代理 部分內容。 當我們的應用單實例不能支撐用戶請求時,此時就需要擴容,從一臺服務器擴容到兩臺、幾十臺、幾百臺。然而,用戶訪問時是通過如的方式訪問,在請求時,瀏覽器首先會

原创 分佈式專題(三):初探分佈式協調服務zookeeper

1.Zookeepr是什麼 Zookeeper是一個典型的分佈式數據一致性的解決方案,分佈式應用程序可以基於它實現諸如數據發佈/訂閱,負載均衡,命名服務,分佈式協調/通知。集羣管理,Master選舉,分佈式鎖和分佈式隊列等功能。 2.zo

原创 分佈式專題(二):分佈式一致性協議與Paxos,Raft算法

由於BASE理論需要在一致性和可用性方面做出權衡,因此涌現了很多關於一致性的算法和協議。其中比較著名的有二階提交協議(2 Phase Commitment Protocol),三階提交協議(3 Phase Commitment Prot

原创 分佈式專題(八):負載均衡原理剖析

負載均衡的重要性無需多說,今天帶來:負載均衡原理的解析。 開頭先理解一下所謂的“均衡”。 不能狹義地理解爲分配給所有實際服務器一樣多的工作量,因爲多臺服務器的承載能力各不相同,這可能體現在硬件配置、網絡帶寬的差異,也可能因爲某臺服務器身兼

原创 分佈式專題(六):Zookeeper典型應用場景及實踐

一.ZooKeeper典型應用場景實踐 ZooKeeper是一個高可用的分佈式數據管理與系統協調框架。基於對Paxos算法的實現,使該框架保證了分佈式環境中數據的強一致性,也正是基於這樣的特性,使得ZooKeeper解決很多分佈式問題。網

原创 分佈式專題(四):ZAB協議概述與選主流程詳解

ZAB協議 ZAB(Zookeeper Atomic Broadcast)協議是專門爲zookeeper實現分佈式協調功能而設計。zookeeper主要是根據ZAB協議是實現分佈式系統數據一致性。 zookeeper根據ZAB協議建