1、Eureka叢集配置原理
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL1UkaOdXWq1UMRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5YzNxUDMzITM4IDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
互相注冊!! 互相守望 !
2、叢集搭建
2.1 修改映射檔案
到C:\Windows\System32\drivers\etc下的host檔案中修改!
2.2 建module
2.3 改pom
2.4 改yml
cloud-eureka-server7001
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>cloud2020</artifactId>
<groupId>com.qy</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-eureka-server7001</artifactId>
<dependencies>
<!-- Eureka Server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!--引入自己定義的 api 通用包-->
<dependency>
<groupId>com.qy</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--boot web acutator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--一般通用配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
application.yml
server:
port: 7001
#eureka
eureka:
instance:
hostname: eureka7001.com # eureka 服務端的執行個體名稱
client:
#false 表示不向注冊中心注冊自己
register-with-eureka: false
#false 表示自己端就是注冊中心,我的職責就是維護服務執行個體,并不需要去檢索服務
fetch-registry: false
service-url:
#設定于 Eureka Server 互動的位址查詢服務和注冊服務都需要以來這個位址。
defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka
cloud-eureka-server7002 同理!
cloud-eureka-server7003 同理!
3、負載均衡
- 訂單服務通路位址不能寫死
- 使用[email protected]==注解賦予Template負載均衡的能力
- ApplicationContextBean
最後通路**http://localhost/consumer/payment/get/4** 就可以看到不斷的在變換端口
在Controller層列印出來端口号
4、修改服務ID
修改主機名稱:
這個主機名稱在哪裡顯示呢??
5、顯示通路的IP位址
6、服務發現Discovery
- 對于注冊進 eureka 裡面的微服務,可以通過服務發現來獲得該服務的資訊
- 修改 cloud-provider-payment8001的 Controller
- 8001 主啟動類
6.1 修改 Controller(提供服務端)
列印的資訊如下:
6.2 主啟動類
開啟服務發現
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-sk65uITT-1588048230667)(images/1587909508666.png)]
7、Eureka自我保護機制
7.1 故障現象
7.2 簡單來說
簡單來說,也就是某時刻,某一個微服務不可用了,Eureka不會立即清理,而是會儲存這個微服務的資訊。