天天看點

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

1、Eureka叢集配置原理

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

互相注冊!! 互相守望 !

2、叢集搭建

2.1 修改映射檔案

到C:\Windows\System32\drivers\etc下的host檔案中修改!

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

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 同理!

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

3、負載均衡

  • 訂單服務通路位址不能寫死
  • 使用[email protected]==注解賦予Template負載均衡的能力
  • ApplicationContextBean
SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制
SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

最後通路**http://localhost/consumer/payment/get/4** 就可以看到不斷的在變換端口

在Controller層列印出來端口号

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

4、修改服務ID

修改主機名稱:

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

這個主機名稱在哪裡顯示呢??

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

5、顯示通路的IP位址

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制
SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

6、服務發現Discovery

  • 對于注冊進 eureka 裡面的微服務,可以通過服務發現來獲得該服務的資訊
  • 修改 cloud-provider-payment8001的 Controller
  • 8001 主啟動類

6.1 修改 Controller(提供服務端)

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制
SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

列印的資訊如下:

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

6.2 主啟動類

開啟服務發現

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-sk65uITT-1588048230667)(images/1587909508666.png)]

7、Eureka自我保護機制

7.1 故障現象

SpringCloud(三 Eureka叢集配置)1、Eureka叢集配置原理2、叢集搭建3、負載均衡4、修改服務ID5、顯示通路的IP位址6、服務發現Discovery7、Eureka自我保護機制

7.2 簡單來說

簡單來說,也就是某時刻,某一個微服務不可用了,Eureka不會立即清理,而是會儲存這個微服務的資訊。