知識整理(八) SpringCloud 相關知識

2021-10-05 11:45:52 字數 2574 閱讀 3897

1. spring cloud 架構圖

2. eureka 原理

答:eureka兩大核心功能:服務的發現與註冊、心跳和故障。

3. eureka 集群原理

答:eureka集群是peer to peer模式,也就是說集群中的每個eureka例項是平等的,每個例項都可以進行服務的發現和註冊,這點與zookeeper是不同的。

4. eureka和zookeeper的區別答:

集群模式不同:eureka是peer to peer模式,zookeeper是leader - follower模式。

一致保障性不同

什麼是cap? 答:

c是一致性,a是可用性,p是分割槽容錯性。

eureka可以保障ap,zookeeper可以保障cp。

當eureka集群中一台機器「死掉」時,呼叫者仍可在eureka其他節點中獲取登錄檔,但是這個登錄檔可能不是最新的資料。因為假設當服務a向eureka-1註冊時,eureka-1死掉了,它還沒來及將服務a的資料同步給其他eureka節點,所以呼叫者從其他eureka節點中可能獲取不到服務a。所以,eureka集群保障了可用性,但是強一致性沒法保障。

當zookeeper集群中的leader「死掉」時,整個zookeeper集群將不可用,直到選舉出新的leader並同步完資料後,zookeeper集群才可以對外使用。所以,zookeeper集群保障了一致性,卻無法保障始終可用。

服務註冊感知的時效性

eureka預設配置速度比較慢,甚至能達到兩三分鐘。而zookeeper感知速度很快,秒級感知。

5. eureka 引數優化(必須)

答:因為如果使用eureka預設引數配置,服務的註冊和發現會很慢,不符合生產使用。所以,必須手動配置引數。

以下為調整後的引數: 引數

說明eureka.server.responsecacheupdateintervalms= 3000(單位毫秒)

eureka server重新整理readcachemap的時間,注意,client讀取的是readcachemap,這個時間決定了多久會把readwritecachemap的快取更新到readcachemap上(預設30秒)

eureka.client.registryfetchintervalseconds=3(單位秒)

從eureka伺服器登錄檔中獲取註冊資訊的時間間隔(s),預設為30秒

eureka.client.leaserenewalintervalseconds=3

eureka客戶需要多長時間傳送心跳給eureka伺服器,表明它仍然活著,預設為30 秒

eureka.server.evictionintervaltimerinms=3000

過期例項應該啟動並執行的時間間隔,單位為毫秒,預設為60 * 1000

eureka.instance.leaseexpirationdurationinseconds=3

eureka伺服器在接收到例項的最後一次發出的心跳後,需要等待多久才可以將此例項刪除,預設為90秒

經過調整後,服務發現變為秒級。

6. 生產機器選擇答:

服務註冊中心部署個2臺機器,每台機器就是4核8g,每台機器每秒鐘輕鬆抗幾百請求,上千請求也是可以的,高可用冗餘,任何一台機器死掉,不會影響系統的執行。

微服務通常來說,如果每秒鐘的併發在1000以內的話,每個服務部署2臺機器,每台機器4核8g,每台機器每秒抗個幾百請求,一點問題都沒有

大部分的系統,高峰期每秒幾百請求,低峰期每秒幾十請求,甚至幾個請求。

閘道器系統,4核8g的機器,一台機器抗每秒幾百請求,部署3~4臺機器,保證可以閘道器系統每台機器的壓力比較小,進一步保證閘道器系統可靠性。

mysql資料庫,16核32g,物理機最佳,最多抗個每秒鐘幾千請求問題不大,平時抗個每秒鐘幾百或者幾十請求。

7. 如何統計qps、介面請求數等答:

做乙個簡單的metric統計機制,atomiclong,原子性,併發下資料統計準確,不會錯誤,每個介面被呼叫的時候,乙個是可以對每個介面每分鐘都做乙個metric統計。

對每個介面每天的請求使用乙個atomiclong做乙個計數,統計出來每天的請求次數。

8. 如何實現冪等性

答:插入新資料保障訂單欄位是唯一索引,更新資料先查再更新。

9. 分布式事務如何實現

答:常用tcc可靠訊息一致性。前者需要使用tcc框架,給需要保持事務的介面多寫乙個回滾介面,這樣如果發生異常,tcc框架會呼叫回滾介面,保障事務。可靠訊息一致性則需要使用訊息中介軟體。

知識整理的八種筆記方法

文章最後總結了幾種筆記方法的應用場景及邏輯順序 適用情況 課堂筆記 讀書筆記 如圖,將筆記本分為三部分 線索欄 筆記欄 總結欄 1.記錄 record 在筆記欄內盡量多既有意義的論據 概念等內容 3.背誦 recite 把筆記欄遮住,只用線索欄中的摘記提示,回憶筆記欄內容 4.思考 reflect ...

oracle 知識整理

刪除使用者 例如建立了乙個使用者 a,要刪除它可以這樣做 connect sys 密碼 as sysdba drop user a cascade 就這樣使用者就被刪除了 使用者修改密碼,解鎖 alter user scott identified by alter user scott accou...

ORACLE PROFILE 知識整理

1 配置檔案 profile 是乙個只允許具有create profile 的許可權的使用者設定口令管理和資源限制的物件。2 建立資料庫時會建立乙個預設 default 配置檔案,該檔案對所有資源不做任何限制。3 乙個使用者只能擁有1個配置檔案 4 配置檔案分兩部分,資源引數 resource pa...