基於2.0 Greenwich高可用eureka註冊中心搭建java
新建MAVEN父工程demo-parentweb
刪掉srcspring
pom.xmlapache
<packaging>pom</packaging> <!--spring boot ⽗啓動器依賴--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> </parent> <dependencyManagement> <dependencies> <!--spring cloud依賴管理,引入了Spring Cloud的版本--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!--web依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--⽇志依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> <!--測試依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--lombok⼯具--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency> <!-- Actuator能夠幫助你監控和管理Spring Boot應⽤--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--熱部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <!--引⼊Jaxb,開始--> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.2.11</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.2.11</version> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.2.10-b140310.1920</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <!--引⼊Jaxb,結束--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-commons</artifactId> </dependency> </dependencies> <build> <plugins> <!--編譯插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>11</source> <target>11</target> <encoding>utf-8</encoding> </configuration> </plugin> <!--打包插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
單例版eureka註冊中心,新建model demo-eureka-server-8671api
pom.xmlapp
<dependencies> <!--註冊中心--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>
啓動類 添加 @EnableEurekaServer 表示開啓Eureka註冊中心maven
package com.wg.edu; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /** * @author Mrwg * @date 2020/6/20 21:49 * @desc */ @SpringBootApplication @EnableEurekaServer public class CloudEurekaServerApplication8761 { public static void main(String[] args) { SpringApplication.run(CloudEurekaServerApplication8761.class,args); } }
application.ymlide
#eureka server服務端口 server: port: 8761 spring: application: name: cloud-eureka-server # 應用名稱,應用名稱會在Eureka中做爲服務名稱 # eureka 客戶端配置(和Server交互),Eureka Server 其實也是一個Client eureka: instance: hostname: localhost # 當前eureka實例的主機名 prefer-ip-address: true instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port} client: service-url: # 配置客戶端所交互的Eureka Server的地址(Eureka Server集羣中每個Server其實相對於其它Server來講都是Client) # 集羣模式下,defaultZone應該指向其它Eureka Server,若是有更多其它Server實例,逗號拼接便可 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ register-with-eureka: false # 集羣模式下能夠改爲true fetch-registry: false # 集羣模式下能夠改爲true
驗證函數
執⾏啓動類CloudEurekaServerApplication的main函數spring-boot
訪問http://127.0.0.1:8761,若是看到以下⻚⾯(Eureka註冊中⼼後臺),則代表EurekaServer 發佈成功
在現有單機版註冊中心上搭建
一、拷貝一份demo-eureka-server-8671 爲 demo-eureka-server-8762
二、配置host
127.0.0.1 CloudEurekaServerA
127.0.0.1 CloudEurekaServerB
修改項目名稱
pom.xml項目名稱,端口
.iml名稱
導入IDEA,檢查修改內容
一、修改demo-eureka-server-8671 中的pom.xml
eureka. instance.hostname= CloudEurekaServerA # 當前eureka實例的主機名
eureka.client.service-url.defaultZone=http://CloudEurekaServerB:8762/eureka
eureka.client.register-with-eureka= true # 單機版爲false
eureka.client.fetch-registry= true # 單機版爲false
#eureka server服務端口 server: port: 8761 spring: application: name: cloud-eureka-server # 應用名稱,應用名稱會在Eureka中做爲服務名稱 # eureka 客戶端配置(和Server交互),Eureka Server 其實也是一個Client eureka: instance: hostname: CloudEurekaServerA # 當前eureka實例的主機名 prefer-ip-address: true instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port} client: service-url: # 配置客戶端所交互的Eureka Server的地址(Eureka Server集羣中每個Server其實相對於其它Server來講都是Client) # 集羣模式下,defaultZone應該指向其它Eureka Server,若是有更多其它Server實例,逗號拼接便可 defaultZone: http://CloudEurekaServerB:8762/eureka register-with-eureka: true # 集羣模式下能夠改爲true fetch-registry: true # 集羣模式下能夠改爲true
一、修改demo-eureka-server-8762 中的pom.xml
eureka. instance.hostname= CloudEurekaServerB # 當前eureka實例的主機名
eureka.client.service-url.defaultZone=http://CloudEurekaServerA:8761/eureka
eureka.client.register-with-eureka= true # 單機版爲false
eureka.client.fetch-registry= true # 單機版爲false
#eureka server服務端口 server: port: 8762 spring: application: name: cloud-eureka-server # 應用名稱,應用名稱會在Eureka中做爲服務名稱 # eureka 客戶端配置(和Server交互),Eureka Server 其實也是一個Client eureka: instance: hostname: CloudEurekaServerB # 當前eureka實例的主機名 prefer-ip-address: true instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port} client: service-url: # 配置客戶端所交互的Eureka Server的地址 defaultZone: http://CloudEurekaServerA:8761/eureka register-with-eureka: true fetch-registry: true
驗證,啓動demo-eureka-server-867一、demo-eureka-server-8672
訪問、cloudeurekaservera:8761 、cloudeurekaservera:8762