1. 程式人生 > 其它 >程式設計師必備知識點

程式設計師必備知識點

限流演算法:

1.1:漏桶演算法

​ 漏桶演算法(Leaky Bucket)是網路世界中流量整形(Traffic Shaping)或速率限制(Rate Limiting)時經常使用的一種演算法,它的主要目的是控制資料注入到網路的速率,平滑網路上的突發流量。漏桶演算法提供了一種機制,通過它,突發流量可以被整形以便為網路提供一個穩定的流量

1.2:令牌桶演算法

​ 令牌桶演算法是網路流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一種演算法。典型情況下,令牌桶演算法用來控制傳送到網路上的資料的數目,並允許突發資料的傳送。

應用場景:利用redis實現限流和併發

1.3:滑動視窗演算法

​ 為統計單位事件內發生事件的數量,例如需求---每小時訪問登入介面的數量,如果我們統計的規則為1點,2點...這樣的統計方法肯定不夠準確(1:30-2:30也是一個小時)。為了減弱這種不準確引入了滑動視窗。我們可以把一小時劃分成60份,或者更多份這樣就可以減弱統計的誤差。這種思路就是滑動視窗演算法。

應用場景:hystrix的熔斷機制。

分散式與微服務

​ 個人理解,微服務是架構設計方式,分散式是系統部署方式,比較可知兩者解決的問題不通,故不能做比較。

微服務:重在解耦合,使單個應用服務體積變小。

分散式:即把服務分散的部署在不同的機器上的,然後通過網路關聯個個服務。目的可累加多個計算機的計算能力,同時也避免的一臺計算機宕機後導致的不可用。

CAP定理

​ CAP原則又稱CAP定理,指的是在一個分散式系統中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分割槽容錯性),三者不可兼得理論。

Consistency(一致性):即資料一致性,若是主備資料庫系統,即保證資料的強一致性(任意時刻訪問資料,主備資料庫的資料都是一樣的)。也可理解關聯的資料一直性,例如 訂單表和庫存表,即order增加,庫存減少。

可用性(Availability):保證每個請求不管成功或者失敗都有響應。

分割槽容忍性(Partition tolerance):即指分散式部署。