我們上一次搭建了eureka註冊中心,但在實際生產中,我們很難保證這個註冊中心不掛。一旦註冊中心掛了,服務提供者不能註冊服務,服務消費者也不能消費。這是很致命,為了保證註冊中心高可用並且穩定。我們來搭建註冊中心eureka叢集。
第一步:
先進入到電腦C:\\Windows\\System32\\drivers\\etc\\目錄下。裡邊有一個hosts檔案。開啟它,在裡邊新增如下內容:
127.0.0.1 eureka2001
127.0.0.1 eureka2002
127.0.0.1 eureka2003
第二步:
按照以前新建註冊中心eureka在新建一個專案springcloud-eureka-server-2001。
專案springcloud-eureka-server-2001
第三步:
修改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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.example</groupId>
<artifactId>springcloud-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com</groupId>
<artifactId>springcloud-eureka-server-2001</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>springcloud-eureka-server-2001</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
檔案和springcloud-eureka-server專案中的pom.xml檔案一樣,可以直接從springcloud-eureka-server拷貝過來。記得修改artifactId和name。
第四步:
修改專案springcloud-eureka-server-2001的application.yml檔案如下:
server:
port: 2001
servlet:
context-path: /springcloud-eureka-server-2001
eureka:
instance:
hostname: eureka2001
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka2002:2002/eureka/,http://eureka2003:2003/eureka/
第五步:
在仿照springcloud-eureka-server-2001新建兩個專案,分別是springcloud-eureka-server-2002和springcloud-eureka-server-2003。
按照springcloud-eureka-server-2001修改pom.xml檔案,分別修改artifactId和name。
springcloud-eureka-server-2002和springcloud-eureka-server-2003專案中application.yml也按照springcloud-eureka-server-2001專案中application.yml檔案修改。
springcloud-eureka-server-2002專案中application.yml修改如下:
server:
port: 2002
servlet:
context-path: /springcloud-eureka-server-2002
eureka:
instance:
hostname: eureka2002
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka2001:2001/eureka/,http://eureka2003:2003/eureka/
springcloud-eureka-server-2003專案中application.yml修改如下:
server:
port: 2003
servlet:
context-path: /springcloud-eureka-server-2003
eureka:
instance:
hostname: eureka2003
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka2001:2001/eureka/,http://eureka2002:2002/eureka/
這裡注意比較一下
專案springcloud-eureka-server-2001中eureka.client.service-url.defaultZone配置的是:
http://eureka2002:2002/eureka/,http://eureka2003:2003/eureka/
專案springcloud-eureka-server-2002中eureka.client.service-url.defaultZone配置的是:
http://eureka2001:2001/eureka/,http://eureka2003:2003/eureka/
專案springcloud-eureka-server-2003中eureka.client.service-url.defaultZone配置的是:
http://eureka2001:2001/eureka/,http://eureka2002:2002/eureka/
第六步:
同時啟動專案springcloud-eureka-server-2001,
springcloud-eureka-server-2002
springcloud-eureka-server-2001。
在瀏覽器位址列中輸入 http://eureka2001:2001/
專案springcloud-eureka-server-2001
在瀏覽器位址列中輸入 http://eureka2002:2002/
在瀏覽器位址列中輸入 http://eureka2003:2003/
專案springcloud-eureka-server-2002
能出現這幾個頁面,代表eureka叢集搭建成功。
此專案的原始碼已上傳到github上。
地址:https://github.com/18772847471/SpringCloud.git