- 微服務從小白到專家:Spring Cloud和Kubernetes實戰
- 姚秋辰 張昕 卿睿
- 1231字
- 2021-10-29 12:24:36
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地址和狀態。
- Reporting with Visual Studio and Crystal Reports
- 程序員面試白皮書
- Spring Cloud Alibaba微服務架構設計與開發實戰
- Linux C/C++服務器開發實踐
- CentOS 7 Linux Server Cookbook(Second Edition)
- Magento 2 Theme Design(Second Edition)
- R語言游戲數據分析與挖掘
- Monitoring Elasticsearch
- Creating Data Stories with Tableau Public
- Cocos2d-x Game Development Blueprints
- Laravel Application Development Blueprints
- 石墨烯改性塑料
- Java自然語言處理(原書第2版)
- Learning ECMAScript 6
- 從零開始學UI設計·基礎篇