SpringCloud组件:将服务提供者注册到Eureka集群

在之前章节SpringCloud组件:将微服务提供者注册到Eureka服务中心已经讲解了把服务注册到单个Eureka Server节点上,既然我们在SpringCloud组件:Eureka高可用集群部署讲到了如何去构建Eureka Server 集群的问题,那么我们该考虑下怎么将服务注册Eureka Server集群上呢?

带着这个疑问来开始本章的内容。

本章目标

服务节点注册到Eureka Server集群

构建项目

使用idea开发工具创建SpringBoot项目,创建时选择集成依赖Eureka DiscoveryWeb等,pom.xml配置文件如下所示:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Finchley.SR1</spring-cloud.version>
</properties>

<dependencies>
    <!--Web-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--Eureka Client-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

添加完成依赖后我们需要开始进行配置Eureka Client相关信息。

启用Eureka Client

在入口类XxxApplication上添加@EnableDiscoveryClient注解用于启用Eureka Client客户端的相关依赖配置,如下所示:

@SpringBootApplication
@EnableDiscoveryClient
public class SpringCloudEurekaHighProviderApplication {
    //...
}

配置Eureka Client

打开application.yml配置文件进行配置Eureka相关参数信息,我们先看下具体的配置内容,如下所示:

# 服务名称
spring:
  application:
    name: hengboy-spring-cloud-eureka-high-provider

# 端口号
server:
  port: 20000

# Eureka集群配置信息
eureka:
  client:
    service-url:
      defaultZone: http://node1:10001/eureka/,http://node2:10002/eureka/

主动将服务注册到Eureka集群

我们需要注意的是上面的eureka.clinet.service-url.defaultZone参数内容,我们通过,隔开配置了两个Eureka Server地址,这两个地址则是SpringCloud组件:Eureka高可用集群部署章节提高的Eureka Server集群地址。

如果defaultZone,隔开配置了多个Eureka Server地址,那么在启动服务提供者时就会主动向配置的多个Eureka Server地址进行发送注册信息,这样也就注册到集群上。

运行测试

下面我们来运行测试看下效果,测试步骤如下所示:

  1. 启动node1环境服务注册中心
  2. 启动node2环境服务注册中心
  3. 启动本章项目
  4. 访问node1管理界面http://node1:10001查看服务列表
  5. 访问node2管理界面http://node2:10002查看服务列表

注意:node1以及node2的启动方式请查看SpringCloud组件:Eureka高可用集群部署

访问两个服务注册中心管理界面你都会发现如下图所示:

注册中心管理界面

服务节点hengboy-spring-cloud-eureka-high为注册中心的名称,hengboy-spring-cloud-eureka-high-provider为本章的服务节点

自动同步到Eureka集群

为什么说会自动同步到Eureka集群呢?

因为有eureka.client.fetch-registry这个参数,而且还是默认为true,这个参数配置了是否自动同步服务列表,也就是默认就会进行同步的操作。你就算将Eureka Client注册到http://node1:10001/eureka/注册中心,也会自动同步到http://node2:10002/eureka/

总结

本章讲解了怎么通过主动以及自动同步的方式将Eureka Client注册到服务注册中心集群环境中,为了保证完整性,还是建议手动进行配置,自动同步也有不成功的情况存在。

源码位置

有问题要问?

如果你有技术相关的问题想要咨询恒宇少年,请去博客首页左侧导航栏,点击知识星球微信扫码加入我的星球。

与恒宇少年面对面

如果你喜欢恒宇少年的相关文章,那么就去微信公众号(恒宇少年)关注我吧!!! 当然你也可以去 SpringCloud码云源码 项目底部扫描微信公众号二维码关注我,感谢阅读!!!

学习目录推荐

开源信息

这段时间一直在编写开源的相关框架,致力于公司使用的框架升级以及开源计划,将公司使用到的工具以及插件进行升级重构并且开源。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏遊俠扎彪

Linux pstack 源码里的基础知识

Pstack 是 Linux 下一款堆栈跟踪工具,可以打印一个在跑程序的实时堆栈信息,其用法非常简单,只需要给定进程号即可,本文主要介绍Linux pstack...

6072
来自专栏编程

Spring Boot+Mybatis+Redis二级缓存开发指南

背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一。Mybatis是一个十分轻量好用的ORM框架。...

54910
来自专栏实用工具入门教程

如何部署 Bacula Server

Bacula是一种开源网络备份解决方案,允许您创建备份并执行计算机系统的数据恢复。它非常灵活和强大,这使得它在配置时稍微麻烦,适合在许多情况下进行备份。备份系统...

3783
来自专栏译文

8种基于文件的Linux备份解决方案

在开发不同的 Web 项目时,我积累了大量的工具和服务,以方便开发人员、系统管理员和运维的工作。 在这些项目即将开发完成之时,开发人员面临的头号难题之一,是对媒...

38510
来自专栏SpringBoot 核心技术

SpringCloud组件:将微服务提供者注册到Eureka服务中心

Eureka提供了Server当然也提供了Client,如果你对Eureka Server不了解,点击SpringCloud组件:搭建Eureka服务注册中心阅...

4004
来自专栏SpringBoot 核心技术

SpringCloud组件:你的Eureka服务注册中心安全吗?

在之前的章节我们讲到了SpringCloud组件:搭建Eureka服务注册中心,已经可以让我们自定义的微服务节点进行注册到该Eureka Server上,不过在...

4024
来自专栏jiajia_deng

RESTful API 调试工具 insomnia

2005
来自专栏Linyb极客之路

API文档先行还是API编码先行?

 API文档先行是在编码之前先设计好API说明,Swagger提供Open API规范的文档范式,可通过IDE插件或Swagger网站提供的在线编辑工具编辑。

2063
来自专栏jiajia_deng

RESTful API 调试工具 insomnia

1305
来自专栏用户2442861的专栏

linux GDB调试c++程序

  GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNI...

1292

扫码关注云+社区

领取腾讯云代金券