SpringCloud学习(3)——Eureka服务注册中心及服务发现

摘要:
Eureka是一种基于REST的服务,用于定位服务以实现云M服务器服务发现和故障切换。EurekaServer是服务注册功能的服务器,也是服务策略中心。如果EurekaServer在多个心跳周期中没有接收到节点的心跳,则服务节点将从服务注册表中删除。在自我保护模式下,EurekaServer将保护服务注册表中的信息,并且不会注销任何服务实例。使用自我保护模式可以使Eureka集群更加健壮。
Eureka概述

Eureka是Netflix的一个子模块, 也是核心模块之一。Eureka是一个基于REST的服务, 用于定位服务, 以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务框架来说非常重要, 有了服务注册和发现, 只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于Dubbo的注册中心, 比如Zookeeper。

Eureka架构

Eureka采用C-S设计架构。Eureka Server作为服务注册功能的服务器, 它是服务中策中心。而系统中的其他微服务, 使用Eureka的客户端连接到Eureka Server并维持心跳连接。这样系统的维护人员就可以通过Eureka Server来监控系统中的各个微服务是否正常运行。

SpringCloud学习(3)——Eureka服务注册中心及服务发现第1张

Eureka中包含两个组件, Eureka Server和Eureka Client

Eureka Server提供注册服务,各个节点启动后, 会在Eureka Server中进行注册, 这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息, 服务节点的信息可以在界面中直接观看到。

Eureka Client是一个java客户端, 用于简化Eureka Server的交互, 客户端同时也具备一个内置的、使用轮询负载算法的负载均衡器。在应用启动后, 将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期中没有收到某个节点的心跳, 将会从服务注册表中将此服务节点移除(默认90秒)。

创建服务注册中心:microservicecloudeureka7001

在启动类中必须添加@EnableEurekaServer, 启动注册中心, 接受其他服务注册进来

SpringCloud学习(3)——Eureka服务注册中心及服务发现第2张

测试是否启动成功: 在浏览器中输入localhost:7001 出现如下图的图标页面说明启动成功

 SpringCloud学习(3)——Eureka服务注册中心及服务发现第3张

修改服务提供工程:microservicecloudproviderdept8001

在启动类中必须添加@EnableEurekaClient, 启动服务客户端,向注册中心注册

SpringCloud学习(3)——Eureka服务注册中心及服务发现第4张

pom.xml中添加Eureka客户端依赖

SpringCloud学习(3)——Eureka服务注册中心及服务发现第5张

在application.yml中添加Eureka配置

SpringCloud学习(3)——Eureka服务注册中心及服务发现第6张

配置微服务名称

SpringCloud学习(3)——Eureka服务注册中心及服务发现第7张

修改入驻Eureka中的别名id:

SpringCloud学习(3)——Eureka服务注册中心及服务发现第8张

修改访问名称有IP信息提示:

修改前:

 SpringCloud学习(3)——Eureka服务注册中心及服务发现第9张

修改后:

SpringCloud学习(3)——Eureka服务注册中心及服务发现第10张

修改微服务info内容详细信息:

 SpringCloud学习(3)——Eureka服务注册中心及服务发现第11张

在客户端pom.xml中添加依赖

SpringCloud学习(3)——Eureka服务注册中心及服务发现第12张

在总工程pom中添加检索插件:

 SpringCloud学习(3)——Eureka服务注册中心及服务发现第13张

在客户端application.yml中添加info内容详细信息:

 SpringCloud学习(3)——Eureka服务注册中心及服务发现第14张

结果:

SpringCloud学习(3)——Eureka服务注册中心及服务发现第15张

Eureka自我保护机制

某一时刻某一服务不可用, Eureka不会立即清理,依旧会对该服务的信息进行保存。

在自我保护模式中, Eureka Server会保护服务注册表中的信息, 不再注销任何服务实例。当它收到的心跳数重新恢复到阈值以上时, 该Eureka Server节点就会自动退出自我保护模式。它的设计思想是: 宁可保留错误的服务注册信息, 也不盲目的注销任何可能健康的服务实例。使用自我保护模式可以使Eureka集群更加健壮。稳定。

在SpringCloud中可以使用eureka.server.enable-self-preservation=false禁用自我保护模式。

SpringCloud学习(3)——Eureka服务注册中心及服务发现第16张

因为长时间没有任何操作, Erueka Server自动启动自我保护模式。

服务发现

添加服务发现接口:

SpringCloud学习(3)——Eureka服务注册中心及服务发现第17张

SpringCloud学习(3)——Eureka服务注册中心及服务发现第18张

在启动类中添加@EnableDiscoveryClient启动服务发现注解。

SpringCloud学习(3)——Eureka服务注册中心及服务发现第19张

测试:http://localhos:8001/dept/discovery

SpringCloud学习(3)——Eureka服务注册中心及服务发现第20张

修改微服务消费客户端服务发现:microservicecloudconsumerdept80

添加远程调用服务发现接口:

SpringCloud学习(3)——Eureka服务注册中心及服务发现第21张

集群搭建

创建microservicecloudeureka7002

创建microservicecloudeureka7003

修改启动类名称。

因为只有一台机器, 所以得做一下映射: 修改C:WindowsSystem32driversetc目录下hosts文件

SpringCloud学习(3)——Eureka服务注册中心及服务发现第22张

修改配置文件: 

microservicecloudeureka7001

SpringCloud学习(3)——Eureka服务注册中心及服务发现第23张

microservicecloudeureka7002

 SpringCloud学习(3)——Eureka服务注册中心及服务发现第24张

microservicecloudeureka7003

SpringCloud学习(3)——Eureka服务注册中心及服务发现第25张

microservicecloudproviderdept8001

SpringCloud学习(3)——Eureka服务注册中心及服务发现第26张

测试是否搭建成功: 在浏览器重输入http://eureka7001.com:7001/是否显示如下信息

 SpringCloud学习(3)——Eureka服务注册中心及服务发现第27张

其他节点测试同上。

Eureka和Zookeeper的区别

传统的关系型数据库遵循ACID(A:原子性, C:一致性, I:独立性, D:持久性)

非关系型数据库遵循CAP三选二原则(C:强制一致性, A:可用性, P:分区容错性)

Eureka遵循AP原则

Zookeeper遵循CP原则

Eureka可以很好的应对因网络故障导致部分节点失去联系的情况, 而不会像Zookeeper那样使整个注册服务瘫痪。

GitHub源码

https://github.com/wcd19901010/microservicecloud

免责声明:文章转载自《SpringCloud学习(3)——Eureka服务注册中心及服务发现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇人工智能专业重要词汇表js 中时间格式化的几种方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

注册中心EUREKA(二)--配置列表

Eureka包含四个部分的配置 instance:当前Eureka Instance实例信息配置 client:Eureka Client客户端特性配置 server:Eureka Server注册中心特性配置 dashboard:Eureka Server注册中心仪表盘配置 Eureka Instance实例信息配置 Eureka Instance的...

SpringCloud2.0 Hystrix Feign 基于Feign实现断路器 基础教程(七)

1、启动【服务中心】集群,工程名:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2、启动【服务提供者】集群,工程名:springcloud-eureka-client 参考 SpringCloud2.0 Eureka Client 服务注册 基础教程(三) 3、...

跟着我一步一步的搭建一个基于springcloud的微服务实例

Table of Contentsgenerated with DocToc microservicecloud 插件推荐 建立父工程Microservicecloud 搭建Employ员工服务创建数据库 创建消费者服务microservicecloud-employconsummer Eureka注册中心搭建 单机模式创建microserv...

【Eureka篇三】Eureka集群配置(5)

1. 新建子模块microservicecloud-eureka-7002(后面简称7002) 和 microservicecloud-eureka-7003(后面简称为7003),packaging均是jar模式,以microservicecloud-eureka-7001(后面简称为7001)的pom.xml为模板配置。 2. 将7001的Eureka...

限制IP注册到Eureka

平时总有人无意中把自己本地的服务注册到开发、测试环境的注册中心,导致服务器不可用的问题,通过下面的方法禁止不被允许的IP注册到Eureka importjava.util.List; importcom.netflix.eureka.lease.Lease; importorg.slf4j.Logger; importorg.slf4j.LoggerFa...

7--SpringCloud:Config/Bus周阳老师

2021:7--SpringCloud:Config/Bus https://www.cnblogs.com/coderD/p/14350076.html SpringCloud https://www.cnblogs.com/coderD/p/14350073.html SpringCloud 和 Eureka https://www.cnblogs.c...