原创 《分佈式技術原理與算法解析》學習筆記Day04

分佈式選舉算法 爲什麼需要分佈式選舉? 分佈式意味着我們的應用部署在一個集羣中,集羣包含多個節點或者服務器,對於一個集羣來說,多個節點是怎麼協同工作的呢?我們需要有一個主節點來負責對其他節點的協調和管理。 分佈式選舉是爲了選出一個主節點,由

原创 《分佈式技術原理與算法解析》學習筆記Day03

分佈式互斥方法 什麼是分佈式互斥? 對於同一個共享資源,當一個程序正在使用的時候,不希望被其他程序打擾,這種排他性的資源訪問方式,叫做分佈式互斥,被互斥訪問的共享資源被稱作臨界資源(Critical Resource). 有什麼方法可以讓分

原创 《分佈式技術原理與算法解析》學習筆記Day02

分佈式系統發展歷程 分佈式的發展過程經歷了三個階段: 單機模式(單兵模式) 數據並行或者數據分佈式(游擊隊模式) 任務並行或者任務分佈式(集團軍模式) 什麼是單機模式,它的優缺點是什麼? 單機模式是指所有應用程序和數據均步數在同一臺電腦

原创 《分佈式技術原理與算法解析》學習筆記Day01

開篇詞 | 四縱四橫,帶你透徹理解分佈式技術 誰更好掌握了分佈式技術,誰就更容易在新一輪技術浪潮中獲得主動。 很多有多年工作經驗的人,在分佈式上面,也可能會有下面的問題: 各種分佈式概念、名詞學了一大堆,但經常張冠李戴,傻傻分不清楚。 做

原创 《RPC實戰與核心原理》學習筆記Day16

23 | 如何在沒有接口的情況下進行RPC調用? 我們什麼情況下需要在沒有接口時進行RPC調用? 列舉2個典型場景: 我們搭建一個測試平臺,允許各個業務方在測試憑條上通過輸入接口、分組名、方法名以及參數值,在線測試自己發佈的RPC服務。

原创 《RPC實戰與核心原理》學習筆記Day15

21 | 流量回放:保障業務技術升級的神器 什麼是流量回放? 流量就是指在某個時間段內的所有請求,我們通過某種手段把發送到A應用的所有請求錄製下來,然後把這些請求統一轉發到B應用,讓B應用接收到的請求參數和A應用保持一致,從而實現A接收到

原创 《RPC實戰與核心原理》學習筆記Day14

19 | 分佈式環境下如何快速定位問題? 分佈式環境下定位問題有什麼難點? 分佈式環境下定位問題的難點在於,各子應用、子服務之間有複雜的依賴關係,我們有時很難確定是哪個服務的哪個環節出現的問題。如果要通過日誌來排查問題,就需要對每個子應用

原创 《RPC實戰與核心原理》學習筆記Day13

17 | 異步RPC:壓榨單機吞吐量 在我們知道RPC框架基礎知識後,我們需要從RPC框架整體性能去考慮問題,例如怎麼提升RPC框架的性能、穩定性、安全性、吞吐量,以及如何在分佈式的場景下快速定位問題等。 影響RPC調用吞吐量的根本原因是什

原创 《RPC實戰與核心原理》學習筆記Day12

15 | 熔斷限流:業務如何實現自我保護? 爲什麼我們的服務需要自我保護? RPC是解決分佈式系統通信問題的一大利器,它會面臨高併發的場景,這意味着我們提供服務的每個服務節點都有可能由於訪問量過大而引起一系列的問題,例如業務處理耗時過長、

原创 《RPC實戰與核心原理》學習筆記Day11

13 | 優雅關閉:如何避免服務停機帶來的業務損失? 我們在RPC架構下,需要考慮當服務重啓時,如何做到讓調用方系統不出問題。 當服務提供方要上線時,一般是通過部署系統完成實例重啓,在這個過程彙總,服務提供方不會事先告訴調用方哪些實例會被重

原创 《RPC實戰與核心原理》學習筆記Day10

11 | 負載均衡:節點負載差距這麼大,爲什麼收到的流量還一樣? 什麼是負載均衡? 當我們的一個服務節點無法支撐現有的訪問量時,我們會部署多個節點,組成一個集羣,然後通過負載均衡,將請求分發給這個集羣下的每個服務節點,從而達到多個服務節點

原创 《RPC實戰與核心原理》學習筆記Day9

10 | 路由策略:怎麼讓請求按照設計的規則發到不同的節點上? 我們在真實的環境中,服務提供方是以集羣的方式對外提供服務,這對於服務調用方來說,就是一個藉口會有多個服務提供方同時提供服務,所以RCP在每次發起請求的時候,都需要從多個服務提供

原创 《RPC實戰與核心原理》學習筆記Day8

09 | 健康檢測:這個節點掛了,爲啥還要瘋狂發請求? 服務調用方在每次調用服務提供方的服務時,RPC框架會根據路由和負載均衡算法選擇一個具體的IP地址,爲了保證請求成功,我們需要確保每次選擇出來的IP對應的連接是健康的。 調用方和集羣節點

原创 《RPC實戰與核心原理》學習筆記Day7

08 | 服務發現:到底是要CP還是AP? 我們爲什麼需要“服務發現”? 從高可用的角度出發,在生產環境中,服務提供方通常會以集羣的方式對外提供服務,集羣中的IP地址隨時可能發生變化,因此我們需要一本“通訊錄”來及時獲取對應的服務節點信息

原创 《RPC實戰與核心原理》學習筆記Day6

07 | 架構設計:設計一個靈活的RPC框架 RPC就是把攔截到的方法參數,轉成可以在網絡中傳輸的二進制,並保證在服務提供方能正確地還原出語義,最終實現像調用本地一樣地調用遠程的目的。 RPC的本質是一個遠程調用,需要通過網絡來傳輸數據,我