源碼地址:SpringCloud學習源碼
Eureka包含了服務器端和客戶端組件。
服務器端,也被稱作是服務註冊中心,用於提供服務的註冊與發現。
客戶端組件包含服務消費者與服務生產者。在應用程序運行時,Eureka客戶端向註冊中心註冊自身提供的服務並週期性的發送心跳來更新它的服務租約。同時也可以從服務端查詢當前註冊的服務信息並把他們緩存到本地並週期性的刷新服務狀態。
1、服務器端搭建
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
使用註解@EnableEurekaServer,啓動Eureka服務器端。
服務器端配置文件,有兩種配置方式properties文件和yml文件,這兩種文件語法有所不同:
在properties文件中,用屬性spring.application.name = eureka-register來定義Eureka Server服務器的名稱,但是用yml文件的話是:
spring:
application:
name: eureka-register
需要注意的是:yml屬性間用:換行隔開,行與行之間不能是tab間隔,是兩個空格。
security屬性爲Eureka註冊中心提供簡單的用戶認證
security:
basic:
enabled: true
user:
name: user
password: password123
security.basic.enabled = true 表示是否開啓基於Http basic的認證
security.user表示訪問Eureka服務器的賬戶和密碼
security.basic.enabled = true
security.user.name = user
security.user.password = password123
server.port = 8761 表示訪問Eureka的端口號
eureka.client.register-with-eureka = false 表示Eureka是否註冊自身到Eureka服務器。如果只有一個Eureka節點的話,就不需要了。對於Eureka集羣管理,就有必要了。
eureka.client.fetch-register表示是否從eureka上獲取註冊信息。
eureka.client.service-url 表示將Eureka自身註冊到哪臺Eureka服務器上。
比如我們有兩個Eureka節點的集羣,我們可以把Eureka server1註冊到Eureka Server2 ,同樣地,我們可以把Eureka Server2註冊到Eureka Server1上,以此完成兩個server服務間的相互註冊。
其實Eureka server也可以看做是一個Eureka Client,通過register-with-eureka :false;fetch-registry: false 表明自己是一個Eureka Server。
好了,現在我們啓動這個簡單的Eureka Server服務器:
spring:
application:
name: eureka-register
security:
basic:
enabled: true
user:
name: user
password: password123
server:
port: 8761
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://user:password123@localhost:8761/eureka
2、Eureka服務器訪問
啓動EurekaApplication,訪問http://localhost:8761/ ,需要輸入Eureka賬戶名和密碼,完成http basic認證。
登錄之後,就可以看到Eureka註冊中心的情況:
可以看出來,EUREKA-REGISTER (Eureka配置的名稱),已經註冊到自身上
我在微信訂閱號等你!