Eureka-註冊中心

概念

註冊表存儲結構		CocurrentHashMap
部署數量
訪問壓力				日均千萬級別
心跳機制		Client發送心跳Server,30s/次,拉取註冊表信息-是否變化
			[1]Client		向Server,註冊服務信息
			[2]Server		
			[3]Client		向Server,拉取註冊表
			[4]Client		向Server,註冊服務信息【後續部署註冊】
			[5]Server		向Client,請求註冊表信息變化,30s/次
			[6]Client		更新註冊表
			[7]Client		向Server,發送心跳,30s/次
優勢特點
			[1]解決讀寫衝突
			[2]提升請求性能

註冊表

存儲位置		純內存		
存儲結構		CocurrentHashMap
			Key		服務名稱		inventory-service
			Value	服務實例		Map<String,Lease<InstanceInfo>>
					[1]InstanceInfo	實例信息		IP、Portn、Hostname
					[2]Lease		發佈實體		維護服務最近一次發送心跳時間		
數據結構	
			[1]Memory				內存註冊表
			[2]ReadWriteCacheMap	讀寫緩存註冊表
			[3]ReadOnlyCacheMap		只讀緩存註冊表								
優先位置
			[1]Client-Provider		Memory、ReadWriteCacheMap、ReadOnlyCacheMap
			[2]Client-Consumer		ReadOnlyCacheMap、ReadWriteCacheMap、Memory
內存處理
			[1]維護註冊表
			[2]拉取註冊表
			[3]更新心跳時間
實例:主機 = 1 : 1

多級緩存機制

背景			解決併發衝突	[讀寫內存數據結構造成]
目的			提升響應速度
拉取註冊表
			[1]ReadOnlyCacheMap		首先,查詢只讀緩存的註冊表
			[2]ReadWriteCacheMap	若無,查詢讀寫緩存的註冊表
			[3]Memory內存			若無,查詢實際內存的註冊表
註冊表變化
			[1]Memory				變更,內存的註冊表
			[2]ReadWriteCacheMap	過期,讀寫緩存的註冊表
			[3]ReadOnlyCacheMap		不會影響,提供只讀緩存的註冊表
			[4]首個30s				服務拉取註冊表,直接讀取ReadOnlyCacheMap
			[5]次個30s				EurekaServer,判斷已經清空ReadWriteCacheMap,清空ReadOnlyCacheMap
			[6]最後					下次服務拉取註冊表,重新從Memory內存獲取數據,填充緩存ReadOnlyCacheMap、ReadWriteCacheMap

原理

背景			同一個服務,新增部署主機
Step1		Client,發起註冊
Step2		Server,依次填充註冊表:	ReadWriteCacheMap,ReadOnlyCacheMap
Step3		Client,拉取註冊表,依次查詢:ReadOnlyCacheMap,若無ReadWriteCacheMap,若無Memory
Step4		Client,部署新的主機,再次註冊
Step5		Server,Memory內存註冊表改變,同時過期ReadWriteVachemap
Step6		Client,30秒,拉取註冊表,ReadOnlyCacheMap。	【可能通信舊的主機】
Step7		Server,30秒,後臺線程自動同步新的ReadOnlyCacheMap、ReadWriteCacheMap,過期舊的ReadOnlyCacheMap
Step8		Client,再次拉取,依次查詢:ReadOnlyCacheMap[過期],若無ReadWriteCacheMap[過期],若無Memory

在這裏插入圖片描述

案例

分佈式系統		
	[1]服務數量			100個
	[2]部署主機			服務:主機 = 1:20
	[3]主機配置			核心:4個	
						內存:8G
計算
	服務實例				100 * 20 =	2000 個
	拉取註冊表次數		2次/min
	心跳請求次數			2次/min
	每個服務請求次數		4次/min * 2000 = 8000次/( min * 個 )
							8000 /  60 = 133 次/( s * 個 )
						8000 *  60 * 24 = 11520000 次 / ( day * 個)		【每天千萬級訪問量】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章