SpringCloud组件:搭建Eureka服务注册中心
2018-09-25 16:15
851 查看
简介
Eureka服务注册中心是
netflix开源组织提供的一个
服务高可用的解决方案,在前端时间一直在疯传的
2.0开源流产的问题,其实并不影响我们的使用,
netflix只不过是不再维护
2.0分支的开源代码,所以做出了免责声明,不过对于我们使用者来说确实比较担心这一点,还有不少人更换服务注册中心,比如:
zookeeper、
consul。
当然对于
Eureka 2.0 流产这件事情就当做一场闹剧来对待吧,因为
SpringCloud.Finchley.SR1版本依赖的
Eureka是
1.9.3,根本不需要考虑到这一点了。
我们还是来关心我们的
分布式微服务架构系统该怎么去设计。
构建项目
跟我们之前构建项目一样, 使用
idea工具直接创建一个新的
SpringBoot项目,在选择依赖的界面勾选
Cloud Discovert -> Eureka Server依赖,创建完成后的
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> <!--SpringCloud最新稳定版本--> <spring-cloud.version>Finchley.SR1</spring-cloud.version> </properties> <dependencies> <!--Netflix Eureka依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies> <!--SpringCloud依赖版本管理--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ...//省略部分
我们在创建新的项目时,如果选择了相关
SpringCloud的依赖,则会自动在
pom.xml配置文件内添加
SpringCloud最新稳定版本依赖配置。
spring-cloud-dependencies这个依赖是
SpringCloud内所需要依赖的
版本维护,在
maven项目内如果被
<dependencyManagement>内修饰的
<dependency>,子项目或者本项目在使用时可以不用设置版本号,默认使用
<dependencyManagement>下
<dependency>内设置的版本信息。
正因如此,这也是为什么我们添加了
spring-cloud-dependencies依赖后,在使用相关
SpringCloud插件时可以不用添加
version标签设置导入指定版本的依赖。
Eureka Server的配置
添加
spring-cloud-starter-netflix-eureka-server依赖后,我们就来看看怎么开启
Eureka Server服务。开启
Eureka的注册中心服务端比较简单,只需要修改注意两个地方。
- 第一个地方是在入口类上添加启用
Eureka Server
的注解@EnableEurekaServer
,如下所示:
@SpringBootApplication @EnableEurekaServer public class SpringCloudEurekaApplication { // main method }
- 第二个地方是application.yml/application.properties文件内添加配置基本信息,如下所示:
# 服务名称 spring: application: name: hengboy-spring-cloud-eureka # 服务端口号 server: port: 10000 #Eureka 相关配置 eureka: client: service-url: defaultZone: http://localhost:${server.port}/eureka/ # 是否从其他的服务中心同步服务列表 fetch-registry: false # 是否把自己作为服务注册到其他服务注册中心 register-with-eureka: false
- spring.application.name:服务名称
- server.port:服务端口号
- eureka.client.service-url.defaultZone:Eureka默认的服务地址空间信息配置
- eureka.client.fetch-registry:是否从其他Eureka注册中心同步服务列表(单节点无需配置启用).
- eureka.client.register-with-eureka:是否将自己作为服务注册到其他Eureka服务注册中心(单节点无需配置启用).
运行测试
上面的步骤我们已经把
Eureka服务端所需要的依赖以及配置进行了集成,接下来我们来运行测试看下效果,
Eureka给我们提供了一个漂亮的
管理界面,这样我们就可以通过
管理界面来查看注册的
服务列表以及
服务状态等信息。
测试步骤:
- 通过
Application方式进行启动Eureka Server- 在本地浏览器访问
http://localhost:10000,10000端口号是我们在application.yml配置文件内设置的server.port的值。- 成功访问到
Eureka Server管理界面
界面如下所示:
对于界面我们可以看到一些
Eureka Server的健康数据以及基本信息,比如:
server-uptime
:已经启动的耗时current-memory-usage
:当前占用的内存总量Instances currently registered with Eureka
:注册到该中心的服务列表ipAddr
:当前Eureka Server
的IP地址,如果没有配置eureka.instance.ip-address
那么这里使用默认的IP地址。
…
总结
本章介绍了
Eureka作为
Server的配置,配置的步骤比较简单,没有那么多繁琐的地方,当然这只是
Eureka单个
服务节点的配置方式,更多高级的使用方式请查看后续文章。
与恒宇少年面对面
如果你喜欢
恒宇少年的相关文章,那么就去微信公众号(恒宇少年)关注我吧!!!
当然你也可以去 SpringCloud码云源码 项目底部扫描二维码关注我,感谢阅读!!!
学习目录推荐
- SpringBoot配套源码地址:访问码云查看源码、访问GitHub查看源码
- SpringCloud配套源码地址:访问码云查看源码
- SpringBoot相关系列文章请访问:目录:SpringBoot学习目录
- QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录
- SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录
恒宇少年的开源快讯
这段时间一直在编写开源的相关框架,致力于公司使用的框架升级以及开源计划,将公司使用到的
工具以及
插件进行升级重构并且开源。
- 代码生成器(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
相关文章推荐
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建
- SpringCloud组件:将微服务提供者注册到Eureka服务中心
- spring cloud 服务注册中心eureka高可用集群搭建