Spring Cloud的Eureka註冊中心叢集搭建
Spring Cloud也包含了許多的子專案 , 下面等下要使用的Eureka只是其中的一個子專案
Eureka的功能有點類似於我們之前寫過的zookeeper,它是一個服務治理元件,包含了服務註冊中心、服務註冊與發現機制。
Eureka的使用非常簡單
我們首先在idea裡建立一個maven專案 , 等下方便我們進行操作
服務治理元件 我們需要弄服務註冊中心、服務註冊(提供者)與發現機制(消費者)三個Spring Boot專案,我把他們都放在maven裡進行管理 ,具體步驟如下:
先在maven專案上在去新建一個module ,作為我們的服務註冊中心(eureka)
新建的module我們選擇Spring Boot專案 , 勾選如下依賴
具體依賴如下
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.liy</groupId> <artifactId>eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <name>eureka</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
這個服務中心 ,我們只需要在配置檔案中配置一下 , 然後在啟動類裡使用一個註解 ,然後啟動專案即可
application.properties
#埠號 server.port=1111 spring.application.name=eureka #是否向註冊中心(eureka)註冊 ,不必向自己註冊 ,除非是搭建一個註冊中心的叢集,那麼這裡就要為true了 eureka.client.register-with-eureka=false #是否允許它去獲取其他的註冊的服務,因為他是註冊中心,所以不需要去獲取的 eureka.client.fetch-registry=false
啟動類裡添加個@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
啟動專案看到如下頁面 , 即註冊中心ok了(下面截圖只截取了頭部)
如果是要搭建這個註冊中心的叢集的話 ,也是相當簡單的 ,
複製這個application.properties配置檔案的兩份
application-peer1.properties
server.port=1111
spring.application.name=eureka
eureka.instance.hostname=peer1
#搭建eureka叢集 ,開啟向eureka註冊
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=false
#搭建eureka叢集,那麼需要註冊到eureka去,這是註冊的eureka的路徑
eureka.client.service-url.defaultZone=http://peer2:1112/eureka
application-peer2.properties
server.port=1112
spring.application.name=eureka
eureka.instance.hostname=peer2
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=false
#互相註冊,保持訊息服務同步
eureka.client.service-url.defaultZone=http://peer1:1111/eureka
還需要在 本機的C:\Windows\System32\drivers\etc 路徑下去到 hosts 檔案裡去加上下面圖片上的兩行
這是在一個Spring Boot專案裡 ,怎麼執行不同的配置檔案呢 , 我們把專案進行打包
選擇左邊的maven ,然後選擇要打包的Spring Boot專案 ,雙擊如圖的package ,就開始打包了 ,如下打包成功
然後我們點選Terminal
進入打包的目錄裡去
分別啟動兩個
如果你只啟動了一個 ,或者另一個還沒有啟動起來 , 那麼那個已經啟動了的會一直報錯
,
你只需把另一個啟動即可 ,兩個啟動成功
這樣我的註冊中心eureka叢集就就搭建好了 , 下一篇我們講提供者(provider)以及提供者叢集和消費者(