您的位置:首页 > 编程语言 > Java开发

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

2018-10-05 16:55 615 查看

在之前章节SpringCloud组件:将微服务提供者注册到Eureka服务中心已经讲解了把服务注册到单个

Eureka Server
节点上,既然我们在SpringCloud组件:Eureka高可用集群部署讲到了如何去构建
Eureka Server 集群
的问题,那么我们该考虑下怎么将
服务注册
Eureka Server集群
上呢?

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

本章目标

服务节点
注册到
Eureka Server集群

构建项目

使用

idea
开发工具创建
SpringBoot
项目,创建时选择集成依赖
Eureka Discovery
Web
等,
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码云源码 项目底部扫描微信公众号二维码关注我,感谢阅读!!!

学习目录推荐

开源信息

这段时间一直在编写开源的相关框架,致力于公司使用的框架升级以及开源计划,将公司使用到的

工具
以及
插件
进行升级重构并且开源。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: