2、spring cloud 註冊與發現eureka註冊中心

基於2.0 Greenwich高可用eureka註冊中心搭建java

1、單機版

新建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 發佈成功

2、高可用註冊中心搭建

在現有單機版註冊中心上搭建

一、拷貝一份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

 

相關文章
相關標籤/搜索