作為分布式系統,當集群節點增長到數千時,不可避免的出現效能下降的問題。而consul本身提供了一些快取模式,可以減少這種影響。
一致性模式
嚴格的說,這個不是乙個快取模式。
預設情況下,所有來自於agent的請求,都會由leader來處理。這樣導致leader的負擔特別重。如果把一致性模式設定為stale,那麼所有的server節點都會處理請求,就可以大幅降低leader的壓力。缺點是,只有leader的資料是最新的,其他server返回的資料可能會是過時的資料。但是,這個過時的時間通常也是毫秒級的。
簡單快取
簡單快取通過http請求的 cache-control 來控制,只有部分介面提供支援。介面文件裡會有明確說明是否支援。
通過max-age來指定過期時間,通過stale-if-error來指定server異常時的緩衝時間。
server正常的情況下,max-age時間內的資料會直接返回,超出max-age時agent會向server查詢新資料。
如果server崩潰了,那麼stale-if-error就會產生作用,在這段時間裡,agent仍然會返回快取的資料。stale-if-error的值應該遠遠大於max-age的值。
自動重新整理快取
這個是最強大的快取,他會監控server的資料變化,自動跟server保持同步。如果server的資料沒有變化,那麼快取就會一直保持,如果server資料有變化,則會自動重新整理快取。所以實際上,這個快取和server的資料是一致的。
server不可用時就會持續使用快取資料,這個時間可以長達數天,足夠server集群恢復工作了。
Ehcache快取模式
ehcache快取模式 簡介 快取有多種不同的快取模式。以下是ehcache支援的快取模式 直接操作 direct manipulation 推送模式 pull through 自填充 self populating 直接操作 direct manipulation 你可以通過方法cache.put...
consul和eureka的區別
consul和eureka為服務註冊中心,它們一般是集群部署的 1.consul提供了cp一致性 分割槽容錯性,對於consul集群來說,consul註冊中心分為leader和fellow,服務註冊和發現會落地到leader去提供,當乙個專案a想要註冊到consul時,leader需要保證a服務註冊...
consul的安裝和測試
consul的安裝 一台伺服器端,多台客戶端。服務端 nohup consul agent server bootstrap data dir home hanxt workspace data consul bind 192.168.220.139 客戶端 nohup consul agent d...