SpringCloud组件:将服务提供者注册到Eureka集群
在之前章节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
地址进行发送注册信息
,这样也就注册到集群上。
运行测试
下面我们来运行测试看下效果,测试步骤如下所示:
- 启动
node1
环境服务注册中心
- 启动
node2
环境服务注册中心
- 启动本章项目
- 访问
node1
管理界面http://node1:10001查看服务列表- 访问
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
注册到服务注册中心集群环境
中,为了保证完整性,还是建议手动进行配置,自动同步也有不成功的情况存在。
源码位置
- SpringBoot配套源码地址:访问码云查看源码、访问GitHub查看源码
- SpringCloud配套源码地址(
本章源码在这
):访问码云查看源码,访问GitHub查看源码
有问题要问?
如果你有技术相关的问题想要咨询
恒宇少年
,请去博客首页左侧导航栏,点击知识星球
微信扫码加入我的星球。
与恒宇少年面对面
如果你喜欢
恒宇少年
的相关文章,那么就去微信公众号(恒宇少年
)关注我吧!!!
当然你也可以去 SpringCloud码云源码 项目底部扫描微信公众号二维码关注我,感谢阅读!!!
学习目录推荐
- SpringCloud相关系列文章访问:https://www.jianshu.com/p/64e4aaada96b
- SpringBoot相关系列文章请访问:http://www.jianshu.com/p/9a08417e4e84
- QueryDSL相关系列文章请访问:http://www.jianshu.com/p/99a5ec5c3bd5
- SpringDataJPA相关系列文章请访问:http://www.jianshu.com/p/615ed9c1fe84
开源信息
这段时间一直在编写开源的相关框架,致力于公司使用的框架升级以及开源计划,将公司使用到的工具
以及插件
进行升级重构并且开源。
- 代码生成器(Code-Builder)
code-builder
代码生成器根据你提供的模板文件(目前支持freemarker
)自动生成实体类,可以很大很有效的提高开发效率。
Gitee地址
:https://gitee.com/hengboy/code-builder
Github地址
:https://github.com/hengyuboy/code-builder - 持久化框架(MyBatis-Enhance)
mybatis-enhance
是一个对mybatis
框架的增强封装,提供一系列的内部方法来完成单表数据的操作,多表数据提供DSL
方式进行操作。
Gitee地址
:https://gitee.com/hengboy/mybatis-enhance
Github地址
:https://github.com/hengyuboy/mybatis-enhance - 自动分页插件
MyBatis-Pageable
是一款自动化分页的插件,基于MyBatis
内部的插件Interceptor
拦截器编写完成,拦截Executor.query
的两个重载方法计算出分页的信息以及根据配置的数据库Dialect
自动执行不同的查询语句完成总数量的统计。
Gitee地址
:https://gitee.com/hengboy/mybatis-pageable