文章目录

  • 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 搭建服务注册中心相关推荐

  1. Spring Cloud Eureka 2 (Eureka Server搭建服务注册中心)

    工具:IntelliJ IDEA 2017.1.2 x64.maven3.3.9 打开IDE  file===>new===>project next next 选择相应的依赖 next ...

  2. (三)Alian 的 Spring Cloud Eureka Server(服务注册中心)

    目录 一.创建Eureka服务工程 1.1.第一步(创建工程) 1.2.第二步(springboot工程) 1.3.第三步(工程设置) 1.4.第四步(依赖选择) 二.配置 2.1.pom文件 2.2 ...

  3. Spring Cloud -> Spring Cloud Netflix Eureka快速搭建(一)

    前言:不忘初心,寻找最初的编程快感! 1.简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转 ...

  4. Spring Cloud中使用Consul作为服务注册中心时如何获得local service id?

    微服务是目前非常流行和实用的软件架构设计.Spring Cloud是java开发领域最受欢迎也是常用的微服务框架.Spring Cloud Finchley版本已经发布,与此同时Eureka 2.0的 ...

  5. Spring Cloud H (二)服务注册中心 Zookeeper

    目录 前言 一.Zookeeper数据结构 二.统一配置管理 三.统一命名服务 四.Zookeeper安装启动 五.zoo.conf参数解读 六.集群搭建 七.Zookeeper Session 为什 ...

  6. [Spring-cloud-eureka]使用 gradle, spring boot,Spring cloud Eureka 搭建服务注册中心

    2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,它基于 Netfli ...

  7. Spring Cloud Eureka(一)搭建一个注册中心

    Spring Cloud Eureka(一)搭建一个注册中心 服务治理 名词解释 spring cloud eureka:spring cloud eureka 使用Netflix Eureka来服务 ...

  8. Spring Cloud的Eureka Server(注册中心)在程序启动的时候报错:Cannot execute request on any known server

    问题描述:Spring Cloud的Eureka Server(注册中心)在程序启动的时候报错:com.netflix.discovery.shared.transport.TransportExce ...

  9. Spring Cloud【Finchley】实战-01注册中心及商品微服务

    文章目录 Spring Cloud[Finchley]专栏 概述 版本说明 搭建Eureka Server注册中心 工程结构 Step1. pom添加依赖 Step2.application.yml ...

  10. 巧玩SpringCloud——使用Eureka搭建服务注册中心与服务发现

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/84549747 本文出自[我是干勾鱼的博客] Ingredient: Java:J ...

最新文章

  1. 【OpenCV】将单通道的Mat对象转换为三通道的Mat
  2. JSTL学习笔记3-----URL相关标签的使用
  3. 第四节:Task的启动的四种方式以及Task、TaskFactory的线程等待和线程延续的解决方案
  4. vmware workstation克隆linux后修改网卡为eth0方法
  5. Gym 101147J Whistle's New Car(dfs)
  6. 3d打印英语文献_【玩手工学英语】形状主题:The 3D Shapes Song
  7. matlab seed函数_如何用matlab生成随机数函数_matlab随机数生成函数
  8. gp数据库中Appendonly与compresslevel
  9. python语法学习第六天--字典
  10. 斐波那契数列java代码实现
  11. MTK Android 修改权限读取IMEI
  12. sip协议详解 系列(三)
  13. 最新版本Eclipse安装SVN插件Subclipse过程
  14. 搭建一个 软件授权码管理系统
  15. 谈谈你对Spring 事务的理解
  16. 用p5.js绘制创意自画像
  17. 安装kali Linux到U盘
  18. 西门子PLC中DB与DI有什么区别
  19. 十年电影票房数据爬取与分析 | 免费数据教程
  20. win11什么时候发布的_2019年8月证券从业资格考试报名通知什么时候发布?

热门文章

  1. 谱瑞PS8625替代方案|PS8622替代方案|高性价比EDP转LVDS转接板方案CS5211设计开发
  2. mysql 免费报表工具_10款最出色的免费数据库管理工具
  3. uubox.net 网站的第二阶段完成,修复了部分的bug,增加了图片浏览和mp3在线播放等功能...
  4. 高数 07.03 全微分
  5. 从头认识一遍“货到人”拣选
  6. 人脸识别的流行用途有哪些
  7. Apeaksoft iOS Toolkit for Mac(iOS设备数据恢复软件)
  8. 双引号后面要加句号吗_省略号后面可以加句号吗
  9. JavaWeb 注解
  10. 记一次隐藏动态库符号的探索过程