Eureka instance
一個服務,如:訂單系統,會部署多臺服務器,而每臺服務器上提供的服務就是instance; 負載配置。
Eureka service
指的是服務,提供一種特定功能的服務,如:訂單系統,而同一個服務能夠提供多個instance;
Eureka client
主要將本身的服務註冊到服務中心。但它既能夠是服務的提供者也能夠是消費者。它與Eureka instance感受差很少,但其實意義是不同的,Eureka client是相較於Eureka server來講的。而Eureka instance更傾向於負載技術。
Eureka server
服務註冊中心。並管理各服務的中心。html
Eureka instance 配置項:node
#服務註冊中心實例的主機名 eureka.instance.hostname=localhost #註冊在Eureka服務中的應用組名 eureka.instance.app-group-name= #註冊在的Eureka服務中的應用名稱 eureka.instance.appname= #該實例註冊到服務中心的惟一ID eureka.instance.instance-id= #該實例的IP地址 eureka.instance.ip-address= #該實例,相較於hostname是否優先使用IP eureka.instance.prefer-ip-address=false #用於AWS平臺自動擴展的與此實例關聯的組名, eureka.instance.a-s-g-name= #部署此實例的數據中心 eureka.instance.data-center-info= #默認的地址解析順序 eureka.instance.default-address-resolution-order= #該實例的環境配置 eureka.instance.environment= #初始化該實例,註冊到服務中心的初始狀態 eureka.instance.initial-status=up #代表是否只要此實例註冊到服務中心,立馬就進行通訊 eureka.instance.instance-enabled-onit=false #該服務實例的命名空間,用於查找屬性 eureka.instance.namespace=eureka #該服務實例的子定義元數據,能夠被服務中心接受到 eureka.instance.metadata-map.test = test #服務中心刪除此服務實例的等待時間(秒爲單位),時間間隔爲最後一次服務中心接受到的心跳時間 eureka.instance.lease-expiration-duration-in-seconds=90 #該實例給服務中心發送心跳的間隔時間,用於代表該服務實例可用 eureka.instance.lease-renewal-interval-in-seconds=30 #該實例,註冊服務中心,默認打開的通訊數量 eureka.instance.registry.default-open-for-traffic-count=1 #每分鐘續約次數 eureka.instance.registry.expected-number-of-renews-per-min=1 #該實例健康檢查url,絕對路徑 eureka.instance.health-check-url= #該實例健康檢查url,相對路徑 eureka.instance.health-check-url-path=/health #該實例的主頁url,絕對路徑 eureka.instance.home-page-url= #該實例的主頁url,相對路徑 eureka.instance.home-page-url-path=/ #該實例的安全健康檢查url,絕對路徑 eureka.instance.secure-health-check-url= #https通訊端口 eureka.instance.secure-port=443 #https通訊端口是否啓用 eureka.instance.secure-port-enabled=false #http通訊端口 eureka.instance.non-secure-port=80 #http通訊端口是否啓用 eureka.instance.non-secure-port-enabled=true #該實例的安全虛擬主機名稱(https) eureka.instance.secure-virtual-host-name=unknown #該實例的虛擬主機名稱(http) eureka.instance.virtual-host-name=unknown #該實例的狀態呈現url,絕對路徑 eureka.instance.status-page-url= #該實例的狀態呈現url,相對路徑 eureka.instance.status-page-url-path=/status
Eureka client 配置spring
#該客戶端是否可用 eureka.client.enabled=true #實例是否在eureka服務器上註冊本身的信息以供其餘服務發現,默認爲true eureka.client.register-with-eureka=false #此客戶端是否獲取eureka服務器註冊表上的註冊信息,默認爲true eureka.client.fetch-registry=false #是否過濾掉,非UP的實例。默認爲true eureka.client.filter-only-up-instances=true #與Eureka註冊服務中心的通訊zone和url地址 eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/ #client鏈接Eureka服務端後的空閒等待時間,默認爲30 秒 eureka.client.eureka-connection-idle-timeout-seconds=30 #client鏈接eureka服務端的鏈接超時時間,默認爲5秒 eureka.client.eureka-server-connect-timeout-seconds=5 #client對服務端的讀超時時長 eureka.client.eureka-server-read-timeout-seconds=8 #client鏈接all eureka服務端的總鏈接數,默認200 eureka.client.eureka-server-total-connections=200 #client鏈接eureka服務端的單機鏈接數量,默認50 eureka.client.eureka-server-total-connections-per-host=50 #執行程序指數回退刷新的相關屬性,是重試延遲的最大倍數值,默認爲10 eureka.client.cache-refresh-executor-exponential-back-off-bound=10 #執行程序緩存刷新線程池的大小,默認爲5 eureka.client.cache-refresh-executor-thread-pool-size=2 #心跳執行程序回退相關的屬性,是重試延遲的最大倍數值,默認爲10 eureka.client.heartbeat-executor-exponential-back-off-bound=10 #心跳執行程序線程池的大小,默認爲5 eureka.client.heartbeat-executor-thread-pool-size=5 # 詢問Eureka服務url信息變化的頻率(s),默認爲300秒 eureka.client.eureka-service-url-poll-interval-seconds=300 #最初複製實例信息到eureka服務器所需的時間(s),默認爲40秒 eureka.client.initial-instance-info-replication-interval-seconds=40 #間隔多長時間再次複製實例信息到eureka服務器,默認爲30秒 eureka.client.instance-info-replication-interval-seconds=30 #從eureka服務器註冊表中獲取註冊信息的時間間隔(s),默認爲30秒 eureka.client.registry-fetch-interval-seconds=30 # 獲取實例所在的地區。默認爲us-east-1 eureka.client.region=us-east-1 #實例是否使用同一zone裏的eureka服務器,默認爲true,理想狀態下,eureka客戶端與服務端是在同一zone下 eureka.client.prefer-same-zone-eureka=true # 獲取實例所在的地區下可用性的區域列表,用逗號隔開。(AWS) eureka.client.availability-zones.china=defaultZone,defaultZone1,defaultZone2 #eureka服務註冊表信息裏的以逗號隔開的地區名單,若是不這樣返回這些地區名單,則客戶端啓動將會出錯。默認爲null eureka.client.fetch-remote-regions-registry= #服務器是否可以重定向客戶端請求到備份服務器。 若是設置爲false,服務器將直接處理請求,若是設置爲true,它可能發送HTTP重定向到客戶端。默認爲false eureka.client.allow-redirects=false #客戶端數據接收 eureka.client.client-data-accept= #增量信息是否能夠提供給客戶端看,默認爲false eureka.client.disable-delta=false #eureka服務器序列化/反序列化的信息中獲取「_」符號的的替換字符串。默認爲「__「 eureka.client.escape-char-replacement=__ #eureka服務器序列化/反序列化的信息中獲取「$」符號的替換字符串。默認爲「_-」 eureka.client.dollar-replacement="_-" #當服務端支持壓縮的狀況下,是否支持從服務端獲取的信息進行壓縮。默認爲true eureka.client.g-zip-content=true #是否記錄eureka服務器和客戶端之間在註冊表的信息方面的差別,默認爲false eureka.client.log-delta-diff=false # 若是設置爲true,客戶端的狀態更新將會點播更新到遠程服務器上,默認爲true eureka.client.on-demand-update-status-change=true #此客戶端只對一個單一的VIP註冊表的信息感興趣。默認爲null eureka.client.registry-refresh-single-vip-address= #client是否在初始化階段強行註冊到服務中心,默認爲false eureka.client.should-enforce-registration-at-init=false #client在shutdown的時候是否顯示的註銷服務從服務中心,默認爲true eureka.client.should-unregister-on-shutdown=true # 獲取eureka服務的代理主機,默認爲null eureka.client.proxy-host= #獲取eureka服務的代理密碼,默認爲null eureka.client.proxy-password= # 獲取eureka服務的代理端口, 默認爲null eureka.client.proxy-port= # 獲取eureka服務的代理用戶名,默認爲null eureka.client.proxy-user-name= #屬性解釋器 eureka.client.property-resolver= #獲取實現了eureka客戶端在第一次啓動時讀取註冊表的信息做爲回退選項的實現名稱 eureka.client.backup-registry-impl= #這是一個短暫的×××的配置,若是最新的×××是穩定的,則能夠去除,默認爲null eureka.client.decoder-name= #這是一個短暫的編碼器的配置,若是最新的編碼器是穩定的,則能夠去除,默認爲null eureka.client.encoder-name= #是否使用DNS機制去獲取服務列表,而後進行通訊。默認爲false eureka.client.use-dns-for-fetching-service-urls=false #獲取要查詢的DNS名稱來得到eureka服務器,此配置只有在eureka服務器ip地址列表是在DNS中才會用到。默認爲null eureka.client.eureka-server-d-n-s-name= #獲取eureka服務器的端口,此配置只有在eureka服務器ip地址列表是在DNS中才會用到。默認爲null eureka.client.eureka-server-port= #表示eureka註冊中心的路徑,若是配置爲eureka,則爲http://x.x.x.x:x/eureka/,在eureka的配置文件中加入此配置表示eureka做爲客戶端向註冊中心註冊,從而構成eureka集羣。此配置只有在eureka服務器ip地址列表是在DNS中才會用到,默認爲null eureka.client.eureka-server-u-r-l-context=
Eureka Server配置json
################server 與 client 關聯的配置#####################33 #服務端開啓自我保護模式。不管什麼狀況,服務端都會保持必定數量的服務。避免client與server的網絡問題,而出現大量的服務被清除。 eureka.server.enable-self-preservation=true #開啓清除無效服務的定時任務,時間間隔。默認1分鐘 eureka.server.eviction-interval-timer-in-ms= 60000 #間隔多長時間,清除過時的delta數據 eureka.server.delta-retention-timer-interval-in-ms=0 #過時數據,是否也提供給client eureka.server.disable-delta=false #eureka服務端是否記錄client的身份header eureka.server.log-identity-headers=true #請求頻率限制器 eureka.server.rate-limiter-burst-size=10 #是否開啓請求頻率限制器 eureka.server.rate-limiter-enabled=false #請求頻率的平均值 eureka.server.rate-limiter-full-fetch-average-rate=100 #是否對標準的client進行頻率請求限制。若是是false,則只對非標準client進行限制 eureka.server.rate-limiter-throttle-standard-clients=false #註冊服務、拉去服務列表數據的請求頻率的平均值 eureka.server.rate-limiter-registry-fetch-average-rate=500 #設置信任的client list eureka.server.rate-limiter-privileged-clients= #在設置的時間範圍類,指望與client續約的百分比。 eureka.server.renewal-percent-threshold=0.85 #多長時間更新續約的閾值 eureka.server.renewal-threshold-update-interval-ms=0 #對於緩存的註冊數據,多長時間過時 eureka.server.response-cache-auto-expiration-in-seconds=180 #多長時間更新一次緩存中的服務註冊數據 eureka.server.response-cache-update-interval-ms=0 #緩存增量數據的時間,以便在檢索的時候不丟失信息 eureka.server.retention-time-in-m-s-in-delta-queue=0 #當時間戳不一致的時候,是否進行同步 eureka.server.sync-when-timestamp-differs=true #是否採用只讀緩存策略,只讀策略對於緩存的數據不會過時。 eureka.server.use-read-only-response-cache=true ################server 自定義實現的配置#####################33 #json的轉換的實現類名 eureka.server.json-codec-name= #PropertyResolver eureka.server.property-resolver= #eureka server xml的編解碼實現名稱 eureka.server.xml-codec-name= ################server node 與 node 之間關聯的配置#####################33 #發送複製數據是否在request中,老是壓縮 eureka.server.enable-replicated-request-compression=false #指示羣集節點之間的複製是否應批處理以提升網絡效率。 eureka.server.batch-replication=false #容許備份到備份池的最大複製事件數量。而這個備份池負責除狀態更新的其餘事件。能夠根據內存大小,超時和複製流量,來設置此值得大小 eureka.server.max-elements-in-peer-replication-pool=10000 #容許備份到狀態備份池的最大複製事件數量 eureka.server.max-elements-in-status-replication-pool=10000 #多個服務中心相互同步信息線程的最大空閒時間 eureka.server.max-idle-thread-age-in-minutes-for-peer-replication=15 #狀態同步線程的最大空閒時間 eureka.server.max-idle-thread-in-minutes-age-for-status-replication=15 #服務註冊中心各個instance相互複製數據的最大線程數量 eureka.server.max-threads-for-peer-replication=20 #服務註冊中心各個instance相互複製狀態數據的最大線程數量 eureka.server.max-threads-for-status-replication=1 #instance之間複製數據的通訊時長 eureka.server.max-time-for-replication=30000 #正常的對等服務instance最小數量。-1表示服務中心爲單節點。 eureka.server.min-available-instances-for-peer-replication=-1 #instance之間相互複製開啓的最小線程數量 eureka.server.min-threads-for-peer-replication=5 #instance之間用於狀態複製,開啓的最小線程數量 eureka.server.min-threads-for-status-replication=1 #instance之間複製數據時能夠重試的次數 eureka.server.number-of-replication-retries=5 #eureka節點間間隔多長時間更新一次數據。默認10分鐘。 eureka.server.peer-eureka-nodes-update-interval-ms=600000 #eureka服務狀態的相互更新的時間間隔。 eureka.server.peer-eureka-status-refresh-time-interval-ms=0 #eureka對等節點間鏈接超時時間 eureka.server.peer-node-connect-timeout-ms=200 #eureka對等節點鏈接後的空閒時間 eureka.server.peer-node-connection-idle-timeout-seconds=30 #節點間的讀數據鏈接超時時間 eureka.server.peer-node-read-timeout-ms=200 #eureka server 節點間鏈接的總共最大數量 eureka.server.peer-node-total-connections=1000 #eureka server 節點間鏈接的單機最大數量 eureka.server.peer-node-total-connections-per-host=10 #在服務節點啓動時,eureka嘗試獲取註冊信息的次數 eureka.server.registry-sync-retries= #在服務節點啓動時,eureka屢次嘗試獲取註冊信息的間隔時間 eureka.server.registry-sync-retry-wait-ms= #當eureka server啓動的時候,不能從對等節點獲取instance註冊信息的狀況,應等待多長時間。 eureka.server.wait-time-in-ms-when-sync-empty=0 ################server 與 remote 關聯的配置#####################33 #過時數據,是否也提供給遠程region eureka.server.disable-delta-for-remote-regions=false #回退到遠程區域中的應用程序的舊行爲 (若是已配置) 若是本地區域中沒有該應用程序的實例, 則將被禁用。 eureka.server.disable-transparent-fallback-to-other-region=false #指示在服務器支持的狀況下, 是否必須爲遠程區域壓縮從尤里卡服務器獲取的內容。 eureka.server.g-zip-content-from-remote-region=true #鏈接eureka remote note的鏈接超時時間 eureka.server.remote-region-connect-timeout-ms=1000 #remote region 應用白名單 eureka.server.remote-region-app-whitelist. #鏈接eureka remote note的鏈接空閒時間 eureka.server.remote-region-connection-idle-timeout-seconds=30 #執行remote region 獲取註冊信息的請求線程池大小 eureka.server.remote-region-fetch-thread-pool-size=20 #remote region 從對等eureka加點讀取數據的超時時間 eureka.server.remote-region-read-timeout-ms=1000 #從remote region 獲取註冊信息的時間間隔 eureka.server.remote-region-registry-fetch-interval=30 #remote region 鏈接eureka節點的總鏈接數量 eureka.server.remote-region-total-connections=1000 #remote region 鏈接eureka節點的單機鏈接數量 eureka.server.remote-region-total-connections-per-host=50 #remote region抓取註冊信息的存儲文件,而這個可靠的存儲文件須要全限定名來指定 eureka.server.remote-region-trust-store= #remote region 儲存的文件的密碼 eureka.server.remote-region-trust-store-password= #remote region url.多個逗號隔開 eureka.server.remote-region-urls= #remote region url.多個逗號隔開 eureka.server.remote-region-urls-with-name. ################server 與 ASG/AWS/EIP/route52 之間關聯的配置#####################33 #緩存ASG信息的過時時間。 eureka.server.a-s-g-cache-expiry-timeout-ms=0 #查詢ASG信息的超時時間 eureka.server.a-s-g-query-timeout-ms=300 #服務更新ASG信息的頻率 eureka.server.a-s-g-update-interval-ms=0 #AWS訪問ID eureka.server.a-w-s-access-id= #AWS安全密鑰 eureka.server.a-w-s-secret-key= #AWS綁定策略 eureka.server.binding-strategy=eip #用於從第三方AWS 賬戶描述自動擴展分組的角色的名稱。 eureka.server.list-auto-scaling-groups-role-name= #是否應該創建鏈接引導 eureka.server.prime-aws-replica-connections=true #服務端嘗試綁定候選EIP的次數 eureka.server.e-i-p-bind-rebind-retries=3 #服務端綁定EIP的時間間隔.若是綁定就檢查;若是綁定失效就從新綁定。當且僅當已經綁定的狀況 eureka.server.e-i-p-binding-retry-interval-ms=10 #服務端綁定EIP的時間間隔.當且僅當服務爲綁定的狀況 eureka.server.e-i-p-binding-retry-interval-ms-when-unbound= #服務端嘗試綁定route53的次數 eureka.server.route53-bind-rebind-retries=3 #服務端間隔多長時間嘗試綁定route53 eureka.server.route53-binding-retry-interval-ms=30 # eureka.server.route53-domain-t-t-l=10
參考文檔:
http://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.0.0.RC1/single/spring-cloud-netflix.html
http://www.javashuo.com/article/p-djzxaiku-kt.html
https://blog.csdn.net/zhxdick/article/details/79153711
https://stackoverflow.com/questions/36557646/what-is-eureka-service-eureka-client-eureka-instance-and-eureka-server
http://www.javashuo.com/article/p-msmvghob-hp.html緩存