SpringCloud 基本配置和健康檢測

2021-08-22 14:39:04 字數 3205 閱讀 7000

- 心跳配置:

配置於eureka客戶端,用於定時向伺服器傳送心跳請求,目的是告知eureka伺服器,服務還活著,要繼續維護我的服務。

#配置心跳間隔

eureka.instance.lease-renewal-interval-in-seconds=5

配置於eureka客戶端,當服務關閉超過這個時間時,eureka伺服器會清除掉這個服務。配置這個引數的時候要關閉伺服器的自我保護模式

#配置服務超時時間(此值將設定為至少高於leaserenewalintervalinseconds中指定的值。)

eureka.instance.lease-expiration-duration-in-seconds=10

- 自我保護模式:

配置於eureka伺服器

#關閉自我保護模式

eureka.server.enable-self-preservation=false

- 伺服器定時清理服務列表(毫秒):

eureka伺服器預設30秒會重新整理服務列表,將已經關閉的服務清除掉
#伺服器定時清理列表(毫秒)

eureka.server.eviction-interval-timer-in-ms=1000

配置於eureka客戶端,用於設定eureka客戶端獲取eureka伺服器的登錄檔頻率

#從eureka伺服器獲取登錄檔資訊的頻率(以秒為單位)。

eureka.client.registry-fetch-interval-seconds=5

**例項:

@autowired

private discoveryclient discoveryclient;

//抓取服務列表

public string getservice()

}return "success";

}

元資料就是自定義資料給其他eureka客戶端呼叫。 

比如在服務a配置如下:

#客戶端元資料

eureka.instance.metadata-map.username=warrior

那麼,我們可以在服務b中通過如下**獲取元資料:

@autowired

private discoveryclient discoveryclient;

//獲取police服務的元資料username

public string getmata()

return "success";

}

什麼是健康檢測呢?

比如,現在有服務a註冊到eureka伺服器上,假如這個時候a服務內部的資料庫連線斷了,那麼對於eureka伺服器來說, 

a服務的狀態仍然是up(也就是正常狀態),那麼這個時候其他服務呼叫者呼叫a服務就會出問題。由此就用到了健康檢測。

如何實現健康檢測呢?

使用spring-boot的actuator元件可以實現服務的健康檢測。通過健康指示器和健康處理器來實現,健康指示器用於修改服務狀態,健康處理器用於將服務狀態通知回給伺服器。由於,健康指示器只是修改了服務的狀態,並沒有將服務狀態通知給伺服器,所以需要再通過健康處理器將服務狀態通知伺服器。

pom.xml

org.springframework.boot

spring-boot-starter-actuator

1.5.13.release

healindication:

import com.warrior.controller.policecontroller;

import org.springframework.boot.actuate.health.health;

import org.springframework.boot.actuate.health.healthindicator;

import org.springframework.boot.actuate.health.status;

import org.springframework.stereotype.component;

/** * @author:

* @description: 健康指示器

* @program: consultingplatform

* @create: 2018-06-14 15:38

**/@component

public class healthindication implements healthindicator else

}}

healhandler

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.boot.actuate.health.status;

import org.springframework.stereotype.component;

/** * @author:

* @description: 健康處理器

* @program: consultingplatform

* @create: 2018-06-14 16:37

**/@component

public class healthhandler implements healthcheckhandlerelse

}}

spring cloud基本介紹

eureka是spring cloud netflix的子專案,提供在分布式環境下的服務發現,服務註冊的功能。zuul是spring cloud netflix的子專案,提供在分布式環境下智慧型路由 反向 等閘道器功能 ribbon是spring cloud netflix的子專案,提供在客戶端的負...

SpringCloud閘道器配置

用了springcloud一段時間了 今天想動手搭建,結果忘了 註冊中心和服務都建好了 天真的以為可以通過註冊中心的位址加上服務名就可以訪問服務了 結果忘了閘道器這一茬 看來還是對springcloud元件的功能了解非常不足 先貼這塊了 package com import org.springfr...

SpringCloud 服務配置

1 新建專案,新增pom依賴 org.springframework.cloud spring cloud config server 2 編寫配置檔案,在朱啟動類新增 enableconfigserver server port 3001 spring name cloud config cent...