eureka學習筆記(一)-server端初始化和控制檯簡介

參考資料

Eureka控制檯參數說明:https://www.cnblogs.com/linjiqin/p/10087462.html

前言

eureka作爲springcloud框架的核心組成部分,主要分爲server端和client端,本篇主要就eureka的一些基本概念進行講解,同時完成server端的搭建,爲接下來的源碼學習做好準備。

服務搭建

gitee地址:https://gitee.com/zhengyh25/eureka-server.git
github地址:https://github.com/MrXiaoguai/eureka-server.git
因爲網上已經有很多搭建教程了,這裏就不進行贅述了,只對大致的搭建流程進行描述,並對一些常見問題進行解答。另外提供我搭建完成的項目地址,方便大家學習。

搭建環境

  1. 系統:macos 10.15.3
  2. jdk:1.8
  3. springboot:2.2.4.RELEASE
  4. 開發環境:idea2019.3.3

server端搭建

項目初始化

項目初始化:idea->create new project->選擇Spring Initializr(選擇jdk1.8,Service URL爲default)->設置project Metadata(根據自己習慣設置即可)->引入依賴(Spring Cloud Discovery->Eureka Server)->自定義項目路徑->finish。
初始化完成,進入項目,打開pom文件,我們可以看到項目自動添加了需要的依賴包。

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

至此,只需在springboot啓動類上添加@EnableEurekaServer註釋,即可按其默認配置啓動一個單實例server。

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaApplication.class, args);
	}
}

Eureka Server控制檯簡介

啓動EurekaApplication,我們可以進入server的註冊中心頁面,下面簡單介紹以下注冊中心的相關內容。

  1. System Status
    System Status
    Environment:環境,默認爲test。該參數在實際生產中使用。
    Data center:數據中心。
    Current time:當前系統時間。
    Uptime:server已運行時間。
    Lease expiration enabled:是否啓動租約到期。默認自我保護機制開啓,爲false。關閉自我保護機制,該值爲true。
    Renews threshold:續約閾值,即每分鐘server期待收到的client端的續約請求數。
    Renew (last min):上一分鐘收到的client端的續約請求數。
  2. 紅字提醒
    系統可能會出現三種紅色加粗的字體提示:
    • RENEWALS ARE LESSER THAN THE THRESHOLD. THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
      原因:關閉了自我保護機制,並且續約實例少於閾值,server可能會剔除一些因爲網絡原因沒有續約的實例。
    • 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.

      原因:開啓自我保護機制,server可能會記錄一些已經下線了的client實例。
    • THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
      原因:關閉了自我保護機制,提醒管理者server不再爲因爲網絡問題沒有續約的client提供保護。
  3. DS Replicas
    DS Replicas
    DS Replicas中是server的同伴(peer),即該server的相鄰節點,根據配置eureka.client.service-url.defaultZone中的ip取值。集羣中用到,單例中不使用。因爲我們沒有配置server屬性,所以eureka.client.service-url.defaultZone默認爲http://localhost:8761/eureka/。因此上圖中顯示爲localhost。
  4. Instances currently registered with Eureka
    Instances currently registered with Eureka
    該部分爲本server的註冊表,用於記錄註冊到該服務的實例,application爲應用名,一個應用可以有多個實例,記錄於Availability Zones。
  5. General Info
    在這裏插入圖片描述
    本部分用於記錄server的通用信息。
    total-avail-memory:總共可用內存大小。
    environment:環境名稱。
    num-of-cpus:主機cpu核數。
    current-memory-usage:當前已用內存。
    server-uptime:服務已啓動時間。
    registered-replicas:相鄰集羣複製節點,即配置的eureka.client.service-url.defaultZone。
    unavailable-replicas:不可用的集羣複製節點,如何確定不可用? 主要是server1 向 peer節點發送接口查詢自身的註冊信息,如果查詢不到,則默認爲不可用,也就是說如果Eureka Server自身不作爲客戶端註冊到上面去,則相鄰節點都會顯示爲不可用。
    available-replicas:可用的相鄰集羣複製節點。
    注:有一種特殊情況暫時不知道原因,先記錄下來。配置7901,7902,7903三個端口的server集羣。啓動時候,當7901的defaultZone: http://root:root@localhost:7902/eureka/,http://root:root@localhost:7903/eureka/時,其他節點同樣使用localhost作爲ip,各個實例都能互相註冊,卻都在unavailable-replicas中,這三個實例互相註冊和同步註冊信息都沒有問題。只有將localhost改成hostname後纔在available-replicas,這個會接下來的集羣配置中提及。
  6. Instance Info
    Instance Info
    本部分爲實例信息:
    ipAddr:server實例的ip地址
    status:server實例的狀態
  7. LAST 1000 SINCE START UP
    LAST 1000 SINCE START UP
    Last 1000 cancelled leases:最後1000個取消的租約
    Last 1000 newly registered leases:最後1000個新註冊的租約

總結

本章主要就service的初始化和控制檯進行講解,使用的是默認的當然我們也可以通過配置application.yml來修改server屬性,同理適用於client端,下一章會就server單實例和集羣配置,client端註冊的實現進行講解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章