微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【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中模块导入方式基本一致。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐