官术网_书友最值得收藏!

5.5 優惠券項目改造——高可用注冊中心

5.5.1 創建項目結構

在優惠券項目的根目錄下創建middleware目錄,在本書的微服務架構升級過程中,平臺類型的組件(如注冊中心、配置中心等)都會創建在該目錄下。目錄創建完成后,在目錄下面分別創建eureka-server和eureka-server2兩個Maven子項目,模擬多注冊中心的集群環境。一個搭建完成的雙注冊中心項目結構如圖5-4所示。

圖5-4 雙注冊中心項目結構圖

5.5.2 修改host文件

為了模擬多個注冊中心互備的集群架構,需要為eureka-server和eureka-server2兩個應用分別指定一個hostname,這里我們將eureka-server的hostname指定為peer1,將eureka-server2的hostname指定為peer2。由于大部分讀者是在本機啟動項目上做測試,所以需要對操作系統的host文件做一些改動,將peer1和peer2兩個hostname都綁定在本機的IP地址上,這樣就可以像訪問localhost一樣來訪問這兩個應用。

Mac系統的host文件位于/etc/host之下,這個文件夾下的文件不能被直接修改,我們需要先將它復制到另一個文件夾(比如桌面),然后添加以下兩項配置并保存:

在上面的代碼中,127.0.0.1就是本機的localhost訪問地址。將修改后的host文件復制到/etc/host文件夾下,并替換原文件。

Windows系統的hosts文件位于C:\Windows\System32\drivers\etc文件夾下,找到hosts文件,添加相同的內容并保存。

5.5.3 引入Maven依賴項

我們通過以下兩個步驟,將Spring Cloud和Eureka的依賴項添加到pom.xml文件中:

1. 添加Spring Cloud版本和依賴

在coupon-cloud-center項目的頂層pom.xml文件中創建<dependencyManagement>節點,并添加Spring Cloud的依賴項,具體代碼如下:

在父級項目中添加完依賴項之后,我們在子模塊的pom.xml文件中添加Spring Cloud組件時就不用再指定具體版本了,Maven將從父級pom.xml文件里的spring-cloud-dependencies依賴項中獲取對應的組件版本號。

2. 為注冊中心添加依賴

在eureka-server和eureka-server2兩個Maven項目中的dependencies節點下添加Eureka服務器的依賴項,具體代碼如下:

5.5.4 創建項目啟動類

在eureka-server和eureka-server2項目的src/main/java路徑下創建包com.broadview.coupon,并創建啟動類EurekaApplication,具體代碼如下:

在上面的代碼中,我們通過添加@SpringBootApplication注解將該應用作為標準的Spring Boot應用啟動,并在啟動過程中通過@EnableDiscoverClient注解加載Eureka配置項(在最新版本的Spring Cloud項目中,@EnableDiscoverClient不再是一個必需的注解)。

5.5.5 為注冊中心添加配置

在eureka-server和eureka-server2項目下的src/main/resources路徑下創建配置文件application.yml,并添加配置信息到application.yml文件中,具體代碼如下:

在以上配置中,eureka-server的hostname指定為peer1,端口號指定為10000,并將eureka-server注冊到peer2上。

為eureka-server2創建一個同樣的配置文件,分配一個不同的端口10001,并將其注冊到peer1上,具體配置如下:

配置添加好之后,將整個項目從根目錄編譯一遍(編譯命令為mvn clean install),就可以啟動配置中心了。依次啟動eureka-server和eureka-server2,等待項目加載完成之后,在瀏覽器中打開http://peer1:10000/eureka或者http://peer2:10001/eureka,可以看到如圖5-5所示的Eureka注冊中心界面。

圖5-5 Eureka注冊中心界面

如圖5-5所示,當前頁面是注冊中心peer1的信息,通過訪問http://peer2:10001可以查看注冊中心peer2的信息,一個注冊中心集群內的各個節點會相互同步注冊表信息。配置中心頁面有如下5個主要部分:

(1)System Status:顯示當前注冊中心的系統狀態,包括啟動時間和服務續約指令的接收情況。

(2)DS Replicas:高可用特性,這里會顯示出與當前注冊中心互備的節點。

(3)Instances list:列表中顯示所有當前已注冊的服務,以及對應的服務名、服務下的節點個數、各個節點的地址和節點的當前狀態等。

(4)General Info:注冊中心當前的CPU和內存狀態,以及互備節點的狀態。

(5)Instance Info:注冊中心的IP地址和狀態。

主站蜘蛛池模板: 大城县| 手游| 汤阴县| 鸡东县| 石台县| 名山县| 清苑县| 尉氏县| 新河县| 怀化市| 忻城县| 千阳县| 炉霍县| 元谋县| 临沧市| 普兰县| 娄底市| 嫩江县| 临漳县| 永登县| 客服| 富顺县| 博野县| 类乌齐县| 呼伦贝尔市| 沿河| 武夷山市| 布拖县| 南通市| 蓬莱市| 大英县| 都江堰市| 林周县| 丘北县| 贵州省| 色达县| 紫金县| 桂阳县| 定南县| 通州市| 清新县|