SpringCloud注冊中心高可用搭建

之所以進(jìn)行eureka集群的搭建,在于我們平時的生產(chǎn)環(huán)境中,很難保證單節(jié)點的eureka服務(wù)能提供百分百不間斷的服務(wù),如果eureka無響應(yīng)了,整個項目應(yīng)用都會出現(xiàn)問題,因此要保證eureka隨時都能提供服務(wù)的情況下,最好的方式就是采用eureka的集群模式,也就是搭建eureka的高可用,在eureka的集群模式下,多個eureka server之間可以同步注冊服務(wù),因此,在一個eureka宕掉的情況下,仍然可以提供服務(wù)注冊和服務(wù)發(fā)現(xiàn)的能力,從而達(dá)到注冊中心的高可用。


3個節(jié)點的集群,每個節(jié)點向其它節(jié)點注冊,這樣只要集群中有一個節(jié)點正常工作即可



正式開始

一.建立項目

本項目主要還是使用了多模塊進(jìn)行開發(fā),包括服務(wù)注冊中心模塊,商品服務(wù)模塊和訂單模塊,本篇文章主要講解的是如何搭建eureka的高可用,所以使用三個eureka服務(wù)注冊中心,以及product商品服務(wù)模塊進(jìn)行搭建即可。項目目錄如下圖所示:


二.建立服務(wù)注冊中心

pom文件

<?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">

<modelVersion>4.0.0</modelVersion>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.4.RELEASE</version>

<relativePath/>

<!-- lookup parent from repository -->

</parent>

<groupId>com.yhs</groupId>

<artifactId>eureka3</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>eureka3</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.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>

</project>

然后配置三個eureka的application.yml文件

eureka的文件配置如下:


eureka2的文件配置如下:

eureka3的文件配置如下:

注意:在每個服務(wù)的主類上加上@EnableEurekaServer注解,不然springCloud不會將eureka識別為服務(wù)注冊中心,啟動會報錯

然后啟動三臺eureka訪問localhost:8761、8762、8763即可看到注冊生效


三.建立服務(wù)消費(fèi)者produce商品服務(wù)

pom文件,由于在之后的邏輯中使用到了mysql數(shù)據(jù)庫以及l(fā)ombok插件,所以引入了這兩個jar包

<?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">

<modelVersion>4.0.0</modelVersion>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.4.RELEASE</version>

<relativePath/>

<!-- lookup parent from repository -->

</parent>

<groupId>com.yhs</groupId>

<artifactId>product</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>product</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.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>8.0.15</version>

</dependency>

<!--lombok插件省去寫dto中的get和set方法-->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

</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>

</project>

配置application.yml文件:


在主類中使用@EnableDiscoveryClient標(biāo)識為服務(wù)消費(fèi)者。


啟動product服務(wù)即可看到已經(jīng)注冊到eureka服務(wù)注冊中心上,可以看到已經(jīng)注冊到注冊中心,訪問8761,8762,8763端口都可看到服務(wù)已經(jīng)注冊上:

代碼git地址:https://github.com/yhsStarry/StudySpringCloud

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容