(六)SpringCloud初级篇——Eureka服务注册与发现:集群Eureka构建步骤

Eureka集群原理说明

    解决办法: 搭建Eureka注册中心集群,实现负载均衡+故障容错

Eureka集群环境构建步骤

新建cloud-eureka-server7002

参考cloud-eureka-server7001,我是在本地磁盘完成的复制相关包及配置文件

改POM

<dependencies>
    <!--eureka-server-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    <dependency>
        <groupId>com.sunyan.springcloud</groupId>
        <artifactId>cloud-api-common</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!--一般为通用配置-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

修改映射配置

1.找到C:WindowsSystem32driversetc路径下的hosts文件
2.修改映射配置添加hosts文件
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
这里win10修改hosts文件遇到问题,参考Windows系统修改Hosts文件
3.刷新hosts文件
ipconfig /flushdns

写YMl

以前单机

7001

7002

此处注意yml文件除了注意空格缩进,还要注意单词不要写错,我的default就写成了defautl。。。

主启动

测试

启动Eureka7001、Eureka7002
分别用域名访问
http://eureka7001.com:7001/
http://eureka7002.com:7002/

将支付服务8001微服务发布到上面2台Eureka集群配置中

YML

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      # 集群版
          defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka

将订单服务80微服务发布到上面2台Eureka集群配置中

YML

defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka

测试01

先要启动EurekaServer,7001/7002服务

再要启动服务提供者provider,8001

再要启动消费者,80

http://localhost/consumer/payment/get/2

相互注册

支付服务提供者8001集群环境搭建

新建cloud-provider-payment8002

参考cloud-provider-payment8001

改POM

YAML

主启动

业务类

复制8001

修改8001/8002的controller

负载均衡

bug

查询刷新网页,一直是8001
订单服务访问地址不能写死

微服务名称

使用@LoadBalanced注解赋予RestTemplate负载均衡的能力

ApplicationContextBean

Ribbon的负载均衡功能

测试02

先要启动EurekaServer,7001/7002服务

再要启动服务提供者provider,8001/8002服务

http://localhost/consumer/payment/get/2

结果

负载均衡效果达到
8001/8002端口交替出现

Ribbon和Eureka整合后

Consumer可以直接调用服务而不用再关心地址和端口号,且该服务还有负载功能了。

原文地址:https://www.cnblogs.com/sunyanblog/p/12797018.html