3.2.1 Eureka服務註冊與發現機制

無服務註冊中心

在這裏插入圖片描述

Eureka的作用

在這裏插入圖片描述

服務註冊流程

在這裏插入圖片描述

Eureka核心知識

在這裏插入圖片描述

服務端如何保存這些信息

在這裏插入圖片描述

消費者服務發現

在這裏插入圖片描述

高可用集羣

在這裏插入圖片描述### 心跳和服務剔除機制是什麼
在這裏插入圖片描述

註冊中心配置過程

  1. 導入依賴
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
-----
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 在springboot啓動類上添加@EnableEurekaServer註解
  2. 在application.properties添加Eureka的相關配置
spring.application.name=eureka-peer
  
server.port=10000

eureka.instance.hostname=dev
eureka.instance.instance-id=dev

eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://localhost:10000/eureka/
//Zone是Eureka提出區域的概念,服務器是分區域部署
//eureka.client.availability-zones.beijing:zone-1	使用方法:將北京設爲zone-1
//eureka.client.service-url.zone1=http://localhost:10001/eureka	如果在北京的區域會訪問該url

eureka.server.wait-time-in-ms-when-sync-empty=0	//服務等待時間
eureka.server.enable-self-preservation=true	//自我保護機制開啓後,服務下線,也不會將其剔除
eureka.server.peer-eureka-nodes-update-interval-ms=1000000	//eureka結點更新頻率
----client端
spring.application.name=helloserver
  
server.port=10000

eureka.client.service-url-defaultZone://localhost:10000/eureka/

application.yml使用—分割可以在一份文件中設置多個配置,最後選擇其中一個進行運行。

如果使用註冊中心通過服務名來訪問需要在調用的方法上面加@LoadBalanced註解

服務註冊流程

在我們client初始化時會初始一大堆定時任務,這些定時任務中肯定包含了一個心跳的定時任務,如果說我們心跳的定時任務啓動後,就會向服務中心發起一次請求,判斷一下我當前的服務實例有沒有被註冊在Eureka上面,若沒有註冊會返回一個404,就進入一個註冊的狀態,若不是404只會返回當前服務實例是否正常的狀態。

服務端如何保存這些信息

服務端有一個json的攔截器,對客戶端發送過來我們相應的請求進行攔截處理。

服務端就是通過一個json框架發送了一個http請求將自己的服務實例存放到concurrentHashMap.

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