Spring Cloud Netflix Eureka Server 搭建服务注册中心
文章目录
- 1 单机模式
- 2 集群模式
学习在 Spring Cloud 中使用 Eureka Server 搭建服务注册中心,手把手带你实现单机和集群两种模式。
Eureka 本身是使用 Java 来开发的, Spring Cloud 使用 Spring Boot 技术对 Eureka 进行了封装,所以,在 Spring Cloud 中使用 Eureka 非常方便,只需要引入 spring-cloud-starter-netflix-eureka-server
这个依赖即可,然后就可以像启动一个普通的 Spring Boot 项目一样启动 Eureka 。
1 单机模式
创建 Spring Boot 项目 eureka-server
,添加 Eureka Server
依赖,如下:
最终的依赖如下:
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies>
项目创建成功后,在项目启动类上添加 @EnableEurekaServer
注解,标记该项目是一个 Eureka Server ,如下:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}}
接下来,在 application.properties
配置文件中添加基本配置信息,如下:
# 给当前服务取一个名字
spring.application.name=eureka
# 设置端口号
server.port=1111# Eureka Server 也是一个普通的微服务,所以当它还是一个注册中心的时候,他会有两层身份:1.注册中心;2.普通服务。
# 默认情况下,会把自己注册到自己上面来,设置为 false 时,表示当前项目不要注册到注册中心上
eureka.client.register-with-eureka=false
# 表示是否从 Eureka Server 上获取注册信息
eureka.client.fetch-registry=false
配置完成后,就可以启动项目了。如果在项目启动时,遇到 java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present
异常,这是因为 JDK9 以上,移除了 JAXB ,只需要我们手动引入 JAXB 即可。
<dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.0</version>
</dependency>
<dependency><groupId>com.sun.xml.bind</groupId><artifactId>jaxb-impl</artifactId><version>2.3.0</version>
</dependency>
<dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.0</version>
</dependency>
<dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version>
</dependency>
项目启动成功后,访问 http://127.0.0.1:1111 就可以查看 Eureka 后台管理页面了:
2 集群模式
使用了注册中心之后,所有的服务都要通过服务注册中心来进行信息交换。服务注册中心的稳定性就非常重要了,一旦服务注册中心掉线,会影响到整个系统的稳定性。所以,在实际开发中,服务注册中心一般都是以集群的形式出现的。Eureka 集群,实际上就是启动多个 Eureka 实例,多个 Eureka 实例之间,互相注册,互相同步数据,共同组成一个 Eureka 集群。
搭建 Eureka 集群,首先我们需要一点准备工作,修改电脑的 hosts
文件( C:\Windows\System32\drivers\etc\hosts ):
127.0.0.1 eureka-a eureka-b
创建 Spring Boot 项目 eureka-servercluster
,添加 Eureka Server
依赖,如下:
最终的依赖如下:
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies>
项目创建成功后,在项目启动类上添加 @EnableEurekaServer
注解,标记该项目是一个 Eureka Server ,如下:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerclusterApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerclusterApplication.class, args);}}
在 src/main/resources
目录下,新增两个配置文件,分别如下:
application-a.properties
:
# 给当前服务取一个名字
spring.application.name=eureka
# 设置端口号
server.port=1111eureka.instance.hostname=eureka-a
# Eureka Server 也是一个普通的微服务,所以当它还是一个注册中心的时候,他会有两层身份:1.注册中心;2.普通服务。
# 默认情况下,会把自己注册到自己上面来,设置为 false 时,表示当前项目不要注册到注册中心上
eureka.client.register-with-eureka=true
# 表示是否从 Eureka Server 上获取注册信息
eureka.client.fetch-registry=true
# a 服务要注册到 b 上面
eureka.client.service-url.defaultZone=http://eureka-b:1112/eureka
application-b.properties
:
# 给当前服务取一个名字
spring.application.name=eureka
# 设置端口号
server.port=1112eureka.instance.hostname=eureka-b
# Eureka Server 也是一个普通的微服务,所以当它还是一个注册中心的时候,他会有两层身份:1.注册中心;2.普通服务。
# 默认情况下,会把自己注册到自己上面来,设置为 false 时,表示当前项目不要注册到注册中心上
eureka.client.register-with-eureka=true
# 表示是否从 Eureka Server 上获取注册信息
eureka.client.fetch-registry=true
# b 服务要注册到 a 上面
eureka.client.service-url.defaultZone=http://eureka-a:1111/eureka
配置完成后,对当前项目打包,在命令行启动两个 Eureka 实例。两个启动命令分别如下:
java -jar eureka-servercluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=a
java -jar eureka-servercluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=b
项目启动成功后,就可以查看 Eureka 后台管理页面了,两个服务之间互相注册,共同给组成一个集群。
eureka-a:http://127.0.0.1:1111
eureka-b:http://127.0.0.1:1112
- Spring Cloud 教程合集(微信左下方阅读全文可直达)。
- Spring Cloud 教程合集示例代码:https://github.com/cxy35/spring-cloud-samples
- 本文示例代码:https://github.com/cxy35/spring-cloud-samples/tree/master/spring-cloud-eureka
扫码关注微信公众号 程序员35 ,获取最新技术干货,畅聊 #程序员的35,35的程序员# 。独立站点:https://cxy35.com
Spring Cloud Netflix Eureka Server 搭建服务注册中心相关推荐
- Spring Cloud Eureka 2 (Eureka Server搭建服务注册中心)
工具:IntelliJ IDEA 2017.1.2 x64.maven3.3.9 打开IDE file===>new===>project next next 选择相应的依赖 next ...
- (三)Alian 的 Spring Cloud Eureka Server(服务注册中心)
目录 一.创建Eureka服务工程 1.1.第一步(创建工程) 1.2.第二步(springboot工程) 1.3.第三步(工程设置) 1.4.第四步(依赖选择) 二.配置 2.1.pom文件 2.2 ...
- Spring Cloud -> Spring Cloud Netflix Eureka快速搭建(一)
前言:不忘初心,寻找最初的编程快感! 1.简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转 ...
- Spring Cloud中使用Consul作为服务注册中心时如何获得local service id?
微服务是目前非常流行和实用的软件架构设计.Spring Cloud是java开发领域最受欢迎也是常用的微服务框架.Spring Cloud Finchley版本已经发布,与此同时Eureka 2.0的 ...
- Spring Cloud H (二)服务注册中心 Zookeeper
目录 前言 一.Zookeeper数据结构 二.统一配置管理 三.统一命名服务 四.Zookeeper安装启动 五.zoo.conf参数解读 六.集群搭建 七.Zookeeper Session 为什 ...
- [Spring-cloud-eureka]使用 gradle, spring boot,Spring cloud Eureka 搭建服务注册中心
2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,它基于 Netfli ...
- Spring Cloud Eureka(一)搭建一个注册中心
Spring Cloud Eureka(一)搭建一个注册中心 服务治理 名词解释 spring cloud eureka:spring cloud eureka 使用Netflix Eureka来服务 ...
- Spring Cloud的Eureka Server(注册中心)在程序启动的时候报错:Cannot execute request on any known server
问题描述:Spring Cloud的Eureka Server(注册中心)在程序启动的时候报错:com.netflix.discovery.shared.transport.TransportExce ...
- Spring Cloud【Finchley】实战-01注册中心及商品微服务
文章目录 Spring Cloud[Finchley]专栏 概述 版本说明 搭建Eureka Server注册中心 工程结构 Step1. pom添加依赖 Step2.application.yml ...
- 巧玩SpringCloud——使用Eureka搭建服务注册中心与服务发现
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/84549747 本文出自[我是干勾鱼的博客] Ingredient: Java:J ...
最新文章
- 【OpenCV】将单通道的Mat对象转换为三通道的Mat
- JSTL学习笔记3-----URL相关标签的使用
- 第四节:Task的启动的四种方式以及Task、TaskFactory的线程等待和线程延续的解决方案
- vmware workstation克隆linux后修改网卡为eth0方法
- Gym 101147J	Whistle's New Car(dfs)
- 3d打印英语文献_【玩手工学英语】形状主题:The 3D Shapes Song
- matlab seed函数_如何用matlab生成随机数函数_matlab随机数生成函数
- gp数据库中Appendonly与compresslevel
- python语法学习第六天--字典
- 斐波那契数列java代码实现
- MTK Android 修改权限读取IMEI
- sip协议详解 系列(三)
- 最新版本Eclipse安装SVN插件Subclipse过程
- 搭建一个 软件授权码管理系统
- 谈谈你对Spring 事务的理解
- 用p5.js绘制创意自画像
- 安装kali Linux到U盘
- 西门子PLC中DB与DI有什么区别
- 十年电影票房数据爬取与分析 | 免费数据教程
- win11什么时候发布的_2019年8月证券从业资格考试报名通知什么时候发布?
热门文章
- 谱瑞PS8625替代方案|PS8622替代方案|高性价比EDP转LVDS转接板方案CS5211设计开发
- mysql 免费报表工具_10款最出色的免费数据库管理工具
- uubox.net 网站的第二阶段完成,修复了部分的bug,增加了图片浏览和mp3在线播放等功能...
- 高数 07.03 全微分
- 从头认识一遍“货到人”拣选
- 人脸识别的流行用途有哪些
- Apeaksoft iOS Toolkit for Mac(iOS设备数据恢复软件)
- 双引号后面要加句号吗_省略号后面可以加句号吗
- JavaWeb 注解
- 记一次隐藏动态库符号的探索过程