springcloud(三,高可用eureka,集群eureka)

青旅半醒 2023-06-18 06:55 68阅读 0赞

文章目录

    • 为什么要集群eureka
    • 搭建集群
    • 服务注册
    • 启动测试

为什么要集群eureka

  • 如果我们只有一个注册中心eureka,这个注册中心如果挂了我们所有服务就直接全部挂了,所以我们需要对eureka做集群

搭建集群

  1. 创建两个eureka
    在这里插入图片描述
    父依赖

    <?xml version=”1.0” encoding=”UTF-8”?>
    <project xmlns=”http://maven.apache.org/POM/4.0.0“

    1. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    3. <modelVersion>4.0.0</modelVersion>
    4. <groupId>com.zou</groupId>
    5. <artifactId>springcloud-shopping-parent</artifactId>
    6. <version>1.0-SNAPSHOT</version>
    7. <modules>
    8. <module>springcloud-shopping-eurekaserver</module>
    9. <module>springcloud-shopping-eurekaserver1</module>
    10. </modules>
    11. <packaging>pom</packaging>
    12. <parent>
    13. <groupId>org.springframework.boot</groupId>
    14. <artifactId>spring-boot-starter-parent</artifactId>
    15. <version>2.0.1.RELEASE</version>
    16. <relativePath/>
    17. </parent>
    18. <!--指定编码格式及jdk版本-->
    19. <properties>
    20. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    21. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    22. <java.version>1.8</java.version>
    23. <spring-cloud.version>Finchley.M9</spring-cloud.version>
    24. </properties>
    25. <!--集成web-->
    26. <dependencies>
    27. <dependency>
    28. <groupId>org.springframework.boot</groupId>
    29. <artifactId>spring-boot-starter-web</artifactId>
    30. </dependency>
    31. <dependency>
    32. <groupId>org.springframework.boot</groupId>
    33. <artifactId>spring-boot-starter-test</artifactId>
    34. <scope>test</scope>
    35. </dependency>
    36. </dependencies>
    37. <!--指定springcloud版本-->
    38. <dependencyManagement>
    39. <dependencies>
    40. <dependency>
    41. <groupId>org.springframework.cloud</groupId>
    42. <artifactId>spring-cloud-dependencies</artifactId>
    43. <version>${ spring-cloud.version}</version>
    44. <type>pom</type>
    45. <scope>import</scope>
    46. </dependency>
    47. </dependencies>
    48. </dependencyManagement>
  1. <!-- 注意: 这里必须要添加, 否者各种依赖有问题 -->
  2. <repositories>
  3. <repository>
  4. <id>spring-milestones</id>
  5. <name>Spring Milestones</name>
  6. <url>https://repo.spring.io/libs-milestone</url>
  7. <snapshots>
  8. <enabled>false</enabled>
  9. </snapshots>
  10. </repository>
  11. </repositories>
  12. </project>

两个eureka的依赖一致

  1. <dependencies>
  2. <!--SpringCloud eureka-server -->
  3. <dependency>
  4. <groupId>org.springframework.cloud</groupId>
  5. <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  6. </dependency>
  7. </dependencies>
  1. springcloud-shopping-eurekaserver配置文件 application.yml

    服务端口号

    server:
    port: 8009

    eureka 基本信息配置

    spring:
    application:

    1. name: eureka-server

    eureka:
    instance:

    1. ###注册到eureka ip地址
    2. hostname: 127.0.0.1

    client:

    1. serviceUrl:
    2. defaultZone: http://127.0.0.1:8100/eureka/
    3. ###集群改为true注册到其他eureka
    4. register-with-eureka: true
    5. ###群改为true注册到其他eureka
    6. fetch-registry: true
    • 这里与单机版不同的是 register-with fetch-registry都改为 true
    • defaultZone: http://127.0.0.1:8100/eureka/地址为需要注册的另一台eureka 地址,如果是多台以上用逗号隔开如(defaultZone: http://127.0.0.1:8100/eureka/,http://127.0.0.1:8008/eureka/)
    • 集群必须要有项目名,即spring.application.name,且必须相同
  2. springcloud-shopping-eurekaserver1配置文件 application.yml

    服务端口号

    server:
    port: 8100

    eureka 基本信息配置

    spring:
    application:

    1. name: eureka-server

    eureka:
    instance:

    1. ###注册到eureka ip地址
    2. hostname: 127.0.0.1

    client:

    1. serviceUrl:
    2. defaultZone: http://127.0.0.1:8009/eureka/
    3. ###集群改为true注册到其他eureka
    4. register-with-eureka: true
    5. ###群改为true注册到其他eureka
    6. fetch-registry: true
    • 唯一不同为defaultZone: http://127.0.0.1:8009/eureka/

启动类
EurekaServer.java

  1. @SpringBootApplication
  2. @EnableEurekaServer
  3. public class EurekaServer {
  4. public static void main(String[] args) {
  5. SpringApplication.run(EurekaServer.class);
  6. }
  7. }

服务注册

这里我们服务使用 springcloud-shopping-member
配置文件 application.yml

  1. server:
  2. port: 9100
  3. spring:
  4. application:
  5. name: shopping-member
  6. eureka:
  7. client:
  8. service-url:
  9. defaultZone: http://127.0.0.1:8009/eureka/,http://127.0.0.1:8100/eureka/
  10. register-with-eureka: true
  11. fetch-registry: true
  • 这里需要注意的是集群环境下defaultZone也要写两台eureka地址

启动测试

  • 最先启动的eureka肯定会报错,因为另一台eureka还没有启动,这里不用担心
  • 后启动的eureka需要等几秒刷新才能看到最新启动的eureka注册上来

在这里插入图片描述
在这里插入图片描述

这里可以看到两台服务中心相互注册,但是shopping-member只在y一个eureka注册(8100),这是因为在注册过程中会保证只有一个注册中心,只有当8009eureka挂了的情况下,才会注册到8009上去

  • 我们现在停掉8009eureka测试
    在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,68人围观)

还没有评论,来说两句吧...

相关阅读