每日溫習04 僅供學習參考使用

2021-10-08 20:04:29 字數 964 閱讀 8138

微服務架構的ribbon介紹

spring cloud ribbon是基於netflix ribbon實現的一套客戶端       負載均衡的工具。

簡單的說,ribbon是netflix發布的開源專案,主要功能是提供客戶端的軟體負載均衡演算法,將netflix的中間層服務連線在一。ribbon客戶端元件提供一系列完善的配置項如連線超時,重試等。簡單的說,就是在配置檔案中列出load balancer(簡稱lb)後面所有的機器,ribbon會自動的幫助你基於某種規則(如簡單輪詢,隨機連線等)去連線這些機器。我們也很容易使用ribbon實現自定義的負載均衡演算法。

load balance負載均衡是用於解決一台機器(乙個程序)無法解決所有請求而產生的一種演算法。像nginx可以使用負載均衡分配流量,ribbon為客戶端提供負載均衡,dubbo服務呼叫裡的負載均衡等等,很多地方都使用到了負載均衡。

使用負載均衡帶來的好處很明顯:

當集群裡的1臺或者多台伺服器down的時候,剩餘的沒有down的伺服器可以保證服務的繼續使用

使用了更多的機器保證了機器的良性使用,不會由於某一高峰時刻導致系統cpu急劇上公升

負載均衡有好幾種實現策略,常見的有:

隨機 (random)

輪詢 (roundrobin)

一致性雜湊 (consistenthash)

雜湊 (hash)

加權(weighted)

2.服務的指定位置不同,ribbon是在@ribbonclient註解上宣告,feign則是在定義抽象方法的介面中使用@feignclient宣告。

3.呼叫方式不同,ribbon需要自己構建http請求,模擬http請求然後使用resttemplate傳送給其他服務,步驟相當繁瑣。

feign則是在ribbon的基礎上進行了一次改進,採用介面的方式,將需要呼叫的其他服務的方法定義成抽象方法即可,

不需要自己構建http請求。不過要注意的是抽象方法的註解、方法簽名要和提供服務的方法完全一致。

位元組對齊(c c ) (僅供學習參考)

概述 對於結構體 位元組對齊準則 1 結構體變數的首位址能夠被其最寬基本型別成員大小所整除 2 結構體每個成員相對於結構體首位址的偏移量 offset 都是該成員大小的整數倍,如有需要,編譯器會在成員之間加上中間填充位元組 3 結構體總大小為結構體最寬基本型別成員大小的整數倍,如有需要,編譯器會在最...

Docker安裝和使用 僅供參考

docker 倉庫容器 小鯨魚 本身是乙個容器技術 作用 用來快速的部署開發環境 例如 環境是7.2 給到甲方 甲方放到線上報錯,發現甲方環境是5.4,最開始寫base和shell指令碼 但php更新還得更新指令碼 後進入3.0時代用docker遠端部署映象dockerhub 第一步 安裝 準備 s...

log4j學習 僅供自己參考

2.新建log4j的配置檔案log4j.properties,放到 web inf 目錄下 3.配置log4j.properties檔案,詳細的配置資訊和方法可以在google中找,不再贅述 這裡是將日誌輸出到控制台和檔案,配置如下 log4j.rootlogger info,toconsole,t...