【SpringCloud】服务注册——Eureka集群环境构建+consumer端注册+provider端注册

三者关系如图所示:

在这里插入图片描述

说明:7001+7002为Eurake服务集群;80为服务调用者summer端;8001+8002为为服务提供者provider端。Eureka服务集群在注册的时候应该相互注册,相互守望。

(一)Eureka服务集群环境构建和注册

  1. 找到C:\Windows\System32\drivers\etc路径下的hosts文件修改映射配置添加进hosts文件
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
  1. 创建模块cloud-eureka-server7001

    3.

  2. 导包(pom.xml)

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
  1. 写配置(application.yml)
server:
  port: 7001

eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      #集群指向其它eureka
      defaultZone: http://eureka7002.com:7002/eureka/
      #单机就是7001自己
      #defaultZone: http://eureka7001.com:7001/eureka/
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 2000

说明:defaultZone中的url是7002模块的地址,这样写的目的是Eureka中的模块集群应该相互注册,相互守望。
需要配置的东西:
1.端口
2.主机名
3.注册守望7002

  1. 主启动类(EurekaMain7001)
@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain7001.class, args);
    }
}

说明:一定要在主启动类中添加@EnableEurekaServer注解,表名该模块是Eureka的注册服务模块

5.测试
输入网址:http://eureka7001.com:7001/即可查看是否配置成功

在这里插入图片描述

说明:第一个箭头表示该Eureka模块注册eureka7002.com;第二个箭头表示注册进Eureka的consumer模块和Provider模块。由于此时还没有模块注册进来,因此为空。

注: Eureka中的7002模块注册与上述步骤一致。

(二) consumer中模块注册进Eureka

  1. 在consumer中创建80模块

在这里插入图片描述

2. 导包(pom.xml)

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 写配置(application.yml)
server:
  port: 80

spring:
  application:
    name: cloud-order-service

eureka:
  client:
    #表示是否将自己注册进Eurekaserver认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka, http://eureka7002.com:7002/eureka

需要配置的内容
1.端口
2.consumer名
3.注册进7001和7002
4. 主启动类(OrderMain80)

@SpringBootApplication
@EnableEurekaClient
public class OrderMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderMain80.class, args);
    }
}

说明:一定要在主启动类中添加@EnableEurekaClient注解,表明该模块为注册进Eureka中的模块。

  1. 测试
    由于该模块注册进了7001和7002,那么登录这两个模块的Eureka网站应该都可以看到80模块。
    eureka7001.com:

    在这里插入图片描述

    eureka7002.com:

在这里插入图片描述

(三) provider端注册进Eureka

  1. 创建模块8001

在这里插入图片描述

2. 导包(pom.xml)

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 写配置(application.yml)
server:
  port: 8001

spring:
  application:
    name: cloud-payment-service

eureka:
  client:
    #表示是否将自己注册进Eurekaserver认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka, http://eureka7002.com:7002/eureka
  instance:
      instance-id: payment8001
      prefer-ip-address: true

需要配置的内容
1.端口
2.provider名
3.注册进7001和7002

  1. 主程序类(PaymentMain8001)
@SpringBootApplication
@EnableEurekaClient
public class PaymentMain8001 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8001.class, args);
    }
}

说明:一定要写@EnableEurekaClient注解,表明该模块是注册进Eureka的模块。

  1. 测试
    eureka7001.com:

在这里插入图片描述


eureka7002.com:

在这里插入图片描述


说明:provider中的模块均可用以上方式注册进eureka。

总结:
1.Eureka中的模块导包和其他模块导包不同,前者为spring-cloud-starter-netflix-eureka-server,后者为spring-cloud-starter-netflix-eureka-client
2.consumer和provider中模块导入方式基本一致。

相关文章

本篇文章为大家展示了如何解决Spring Cloud 服务冲突问题,内...
本篇内容主要讲解“spring cloud服务的注册与发现怎么实现”...
本篇内容介绍了“Dubbo怎么实现Spring Cloud服务治理 ”的有...
本篇内容主要讲解“SpringCloud相关面试题有哪些”,感兴趣的...
如何分析Spring Cloud Ribbon、Spring Cloud Feign以及断路器...
这篇文章主要讲解了“springcloud微服务的组成部分有哪些”,...