高手之路 服務無狀態化設計與實踐

2021-10-02 14:58:43 字數 546 閱讀 6019

登入成功

使用者的session存放在哪一層?

閘道器層使用者的sesson怎麼存放

[✔]外部儲存(統一的分布式儲存/客戶端儲存,每次請求攜帶資料)

[x]記憶體中。(即使是id通過hash,固定到一台,但是還是有可能因為機器掛了,導致出現問題)

redis集群擴容方案

由於使用者量的增加,原來乙個128個節點的機器需要擴容一倍。

faq

為啥不使用redis-cluster?

使用mget對多個key查詢時,如果多個key在不同的節點,需要客戶端多次請求,不太支援。

為啥不使用一致性hash?

一致性hash中,如果a節點網路瞬斷,那麼會訪問順時針的b節點,那麼當a節點恢復時,session不是最新的。可以解決,但是一些強資料一致性要求的不太支援。

微服務化之無狀態化與容器化

此文已由作者劉超授權網易雲社群發布。一 為什麼要做無狀態化和容器化 很多應用拆分成微服務,是為了承載高併發,往往乙個程序扛不住這麼大的量,因而需要拆分成多組程序,每組程序承載特定的工作,根據併發的壓力用多個副本公共承擔流量。將乙個程序變成多組程序,每組程序多個副本,需要程式的修改支撐這種分布式的架構...

高手之路 分布式鎖設計與實踐

mq訊息冪等性 在使用者對商品下單後,訂單狀態為待支付,在某一時刻使用者正在對該訂單做支付操作,商家對該訂單進行改價操作 存在問題 單點問題 官方建議 問題本質 分布式鎖是cp模型,redis集群是ap模型通過cp模型解決 儲存層產品對比 redis zookeeper etcd 一致性演算法 無p...

無狀態伺服器與有狀態伺服器

定義 是指兩個來自相同發起者的請求在伺服器端是否具備上下文關係,具有上下文關係則為有狀態伺服器,沒有則為無狀態伺服器 狀態化請求 那麼伺服器端一般都要儲存請求的相關資訊,每個請求可以預設地使用以前的請求資訊,傳送的資訊量較少 無狀態請求 伺服器端所能夠處理的過程必須全部來自於請求所攜帶的資訊,以及其...