Spring Cloud中,Eureka常見問題總結

Spring Cloud中,Eureka常見問題總結。

指定Eureka的Environment

1
eureka.environment: 指定環境

參考文檔:Configuring Eureka · Netflix/eureka Wiki · GitHub

指定Eureka的DataCenter

1
eureka.datacenter: 指定數據中心

參考文檔:Configuring Eureka · Netflix/eureka Wiki · GitHub
文中指出,配置-Deureka.datacenter=cloud,這樣eureka將會知道是在AWS云上。

如何解決Eureka注冊服務慢的問題

使用配置項:

1
eureka.instance.leaseRenewalIntervalInSeconds

參考文檔:
http://cloud.spring.io/spring-cloud-static/Camden.SR1/#_why_is_it_so_slow_to_register_a_service
原文:

1
2
3
Why is it so Slow to Register a Service?Being an instance also involves a periodic heartbeat to the registry (via the client’s serviceUrl) with default duration 30 seconds. A service is not available for discovery by clients until the instance, the server and the client all have the same metadata in their local cache (so it could take 3 heartbeats). You can change the period using eureka.instance.leaseRenewalIntervalInSeconds and this will speed up the process of getting clients connected to other services. In production it’s probably better to stick with the default because there are some computations internally in the server that make assumptions about the lease renewal period.

翻譯:

1
作為實例還涉及到與注冊中心的周期性心跳,默認持續時間為30秒(通過serviceUrl)。在實例、服務器、客戶端都在本地緩存中具有相同的元數據之前,服務不可用于客戶端發現(所以可能需要3次心跳)。你可以使用eureka.instance.leaseRenewalIntervalInSeconds 配置,這將加快客戶端連接到其他服務的過程。在生產中,最好堅持使用默認值,因為在服務器內部有一些計算,他們對續約做出假設。

Eureka的自我保護模式

如果在Eureka Server的首頁看到以下這段提示,則說明Eureka已經進入了保護模式。

1
EMERGENCY!?EUREKA?MAY?BE?INCORRECTLY?CLAIMING?INSTANCES?ARE?UP?WHEN?THEY'RE?NOT.?RENEWALS?ARE?LESSER?THAN?THRESHOLD?AND?HENCE?THE?INSTANCES?ARE?NOT?BEING?EXPIRED?JUST?TO?BE?SAFE.

保護模式主要用于一組客戶端和Eureka Server之間存在網絡分區場景下的保護。一旦進入保護模式,Eureka Server將會嘗試保護其服務注冊表中的信息,不再刪除服務注冊表中的數據(也就是不會注銷任何微服務)。

詳見:Understanding Eureka Peer to Peer Communication · Netflix/eureka Wiki · GitHub

如何解決Eureka Server不踢出已關停的節點的問題

在開發過程中,我們常常希望Eureka Server能夠迅速有效地踢出已關停的節點,但是新手由于Eureka自我保護模式,以及心跳周期長的原因,常常會遇到Eureka Server不踢出已關停的節點的問題。解決方法如下:

(1) Eureka Server端:配置關閉自我保護,并按需配置Eureka Server清理無效節點的時間間隔。

1
2
eureka.server.enable-self-preservation			# 設為false,關閉自我保護
eureka.server.eviction-interval-timer-in-ms     # 清理間隔(單位毫秒,默認是60*1000)

(2) Eureka Client端:配置開啟健康檢查,并按需配置續約更新時間和到期時間。

1
2
3
eureka.client.healthcheck.enabled			# 開啟健康檢查(需要spring-boot-starter-actuator依賴)
eureka.instance.lease-renewal-interval-in-seconds		# 續約更新時間間隔(默認30秒)
eureka.instance.lease-expiration-duration-in-seconds 	# 續約到期時間(默認90秒)

示例:
服務器端配置:

1
2
3
4
eureka:server:enable-self-preservation: falseeviction-interval-timer-in-ms: 4000

客戶端配置:

1
2
3
4
5
6
7
eureka:client:healthcheck:enabled: trueinstance:lease-expiration-duration-in-seconds: 30 lease-renewal-interval-in-seconds: 10

注意:
更改Eureka更新頻率將打破服務器的自我保護功能,生產環境下不建議自定義這些配置。
詳見:Documentation: changing Eureka renewal frequency *WILL* break the self-preservation feature of the server · Issue #373 · spring-cloud/spring-cloud-netflix · GitHub

自定義Eureka的Instance ID

在Spring Cloud中,服務的Instance ID的默認值是${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}},也就是機器主機名:應用名稱:應用端口?。因此在Eureka Server首頁中看到的服務的信息類似如下:itmuch:microservice-provider-user:8000?。如果想要自定義這部分的信息怎么辦?

示例:

eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/instance:preferIpAddress: trueinstance-id: ${spring.cloud.client.ipAddress}:${server.port}        # 將Instance ID設置成IP:端口的形式

Eureka配置最佳實踐參考

Eureka Clustering documentation and best practices · Issue #203 · spring-cloud/spring-cloud-netflix · GitHub

注意點:eureka.client.healthcheck.enabled=true配置項必須設置在application.yml中

eureka.client.healthcheck.enabled=true?只應該在application.yml中設置。如果設置在bootstrap.yml中將會導致一些不良的副作用,例如在Eureka中注冊的應用名稱是UNKNOWN等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716212.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot:Invalid bound statement (not found)的原因和解決方案

🐓 報錯信息: (無效綁定聲明)找不到 解析: 你的mapper實例對象和對應的mapper.xml對象未找到 🐓 排查: 情況一: 1.排除相對應的mapper實例對象路徑是否正確 查看相對應的mapper中…

unity3d中單例模式兩種簡單寫法與對比

一、 public class UlManager {private static UlManager instance;private void Awake(){if(instance ! null)Destroy(this);else instance this;} }二、 public class UlManager {private static UlManager instance;public static UlManager Instance{get{if (instance …

ChatGPT聊YOLO

最近ChatGPT大伙,其概括摘要能力非常強。YOLO系列算法也是目標檢測領域非常重要的一個研究路線,那么ChatGPT是如何看待各個YOLO算法的呢?那我們去問問它如何看待各個版本的YOLO。 截止到2021年9月,YOLOv6尚未發布。因此&#xff0…

類復習【C#】

【訪問級別】【修飾】【返回類型】 類名 : 【被繼承類】【被繼承接口】 { 字段; 屬性; 默認構造器;// 無參構造器 有參構造器; 私有方法; public 公共方法; } 修飾: 修飾符【C#】-CSDN…

pycharm實現上傳excel生成word

下載需要的依賴包 pip install openpyxl python-docx flaskmain.py文件 from flask import Flask, request, render_template from openpyxl import load_workbook from docx import Documentapp Flask(__name__, template_foldertemplates)app.route(/) def index():return…

小程序面試題:js、vue、uni、小程序的頁面傳參方式區別

js、vue、uni、小程序的頁面傳參方式區別? 1、 js傳參 通過location.href跳轉傳參和接收參數,url后面拼接參數來進行跳轉傳參。 2、 vue傳參 可以通過標簽router-link的to屬性跳轉傳參,也可以通過事件里的this.$router.push跳轉傳參。傳參有…

寒假作業Day 03

寒假作業Day 03 一、選擇題 在C語言中,字符型指針char *p;通常用于指向字符數組(即字符串)的首字符。對于給定的選項,我們來分析每一個選項是否可以將字符串正確地賦值給p: A: pgetchar(); getchar()函數從標準輸入讀…

K8S—Pod控制器

目錄 1.什么是POD控制器 2.POD控制器有幾種類型 3.POD與控制器之間的關系 4.示例 4.1 Deployment 4.2 SatefulSet ①為什么要有headless? ②為什么要有volumeClainTemplate? ③服務發現:就是應用服務之間相互定位的過程。 ④K8S里服…

圖的簡單介紹

定義及術語 G(V,E):圖G的頂點集為V,邊集為E。分為有向圖和無向圖兩類。 頂點的度:與該結點相連的邊的條數。 出度:頂點的出邊條數 入度:頂點的入邊條數 頂點的權值稱為點權,邊的權值稱為邊權。 存儲 1.鄰…

SpringCache【緩存接口返回值信息】【前端訪問后端,后端訪問數據庫(可以緩存這個過程,前端訪問后端,保存記錄,下次訪問直接返回之前的數據)】

SpringCache 針對不同的緩存技術需要實現不同的CacheManager:注解入門程序CachePut注解CacheEvict注解Cacheable注解 Spring Cache是一個框架,實現了基于注解的緩存功能,只需要簡單地加一個注解,就能實現緩存功能,大大…

Mongodb基礎(node.js版)

一、Mongodb 介紹 Mongodb 是一個文檔數據庫,以文檔形式存儲數據,格式類似于 JSON 與 Mysql 的特點及選型對照 MongodbMysql關系類型非關系型關系型存儲類型文檔存儲(類似于寫 Word )表格存儲 (類似于寫 Excle&…

Java玩轉《啊哈算法》之模擬鏈表

人應該支配習慣,而絕不是讓習慣支配人。一個人要是不能改掉壞習慣,那么他就一文不值。 目錄 緣代碼地址模擬鏈表創建遍歷打印插入插入優化 完整代碼 緣 各位小伙伴們好呀!本人最近看了下《啊哈算法》,寫的確實不錯。 但稍顯遺憾…

【C++】string 類 ( 上)

標準庫中的string類 注意: 1. string是表示字符串的字符串類 2. 該類的接口與常規容器的接口基本相同,再添加了一些專門用來操作string的常規操作。 比特就業課 3. string在底層實際是:basic_string模板類的別名,typedef basi…

python爬蟲之selenium知識點記錄

selenium 一、前期準備 1、概述 selenium本身是一個自動化測試工具。它可以讓python代碼調用瀏覽器。并獲取到瀏覽器中加載的各種資源。 我們可以利用selenium提供的各項功能。 幫助我們完成數據的抓取。 2、學習目標 掌握 selenium發送請求,加載網頁的方法 掌…

Stable-Diffusion ubuntu服務器部署,報錯解決方法(小白教程)

Stable Diffusion是一個深度學習模型,專注于生成高質量的圖像。它由CompVis團隊與Stability AI合作開發,并在2022年公開發布。這個模型使用文本提示(text prompts)生成詳細、逼真的圖像,是目前人工智能圖像生成領域的一…

逆向案例四:360k靜態和精靈數據動態AES解密,用js的方法

一、360K 網頁鏈接:https://www.36kr.com/p/2672600261670407 頁面中有靜態的需要解密的內容,確定html包,確定方法 1.1方法步驟 在下方的搜索中輸入decrypt(或者關鍵字window.initialState ,進入js文件 在AES.decrypt處打上斷點&#xff0…

機器學習-03-機器學習算法流程

總結 本系列是機器學習課程的第02篇,主要介紹機器學習中專家系統的應用介紹 本門課程的目標 完成一個特定行業的算法應用全過程: 定義問題(Problem Definition) -> 數據收集(Data Collection) -> 數據分割(Dataset Spit…

[LeetBook]【學習日記】類鏈表反轉——尋找倒數第cnt個元素

來源于「Krahets」的《圖解算法數據結構》 https://leetcode.cn/leetbook/detail/illustration-of-algorithm/ 題目描述 訓練計劃 II 給定一個頭節點為 head 的鏈表用于記錄一系列核心肌群訓練項目編號,請查找并返回倒數第 cnt 個訓練項目編號。 示例 1&#xff1…

守護無價數據:文件備份的重要性與實用策略

一、數據安全:為何文件備份至關重要 在數字化時代,我們的生活和工作越來越離不開電子設備與其中的文件數據。這些文件可能包含重要的工作文檔、珍貴的家庭照片、個人的創意作品等,它們是我們回憶的載體,也是我們工作和創新的基石…

PDF Expert for Mac v3.9.2中文激活版下載

PDF Expert for Mac是一款易于使用的 PDF 編輯器和注釋器,專為 Mac 設備設計。它允許用戶輕松查看、編輯、簽名、注釋和共享 PDF。該軟件使用戶能夠向他們的 PDF 添加文本、圖像、鏈接和形狀,突出顯示和標記文本,填寫表格以及簽署數字文檔。它…