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

Easter79
• 阅读 581

Eureka概述

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

Eureka架构

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

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

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服务注册中心及服务发现

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

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

修改服务提供工程:microservicecloudproviderdept8001

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

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

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

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

在application.yml中添加Eureka配置

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

配置微服务名称

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

修改入驻Eureka中的别名id:

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

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

修改前:

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

修改后:

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

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

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

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

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

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

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

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

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

结果:

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

Eureka自我保护机制

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

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

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

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

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

服务发现

添加服务发现接口:

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

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

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

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

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

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

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

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

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

集群搭建

创建microservicecloudeureka7002

创建microservicecloudeureka7003

修改启动类名称。

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

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

修改配置文件:

microservicecloudeureka7001

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

microservicecloudeureka7002

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

microservicecloudeureka7003

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

microservicecloudproviderdept8001

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

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

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

其他节点测试同上。

Eureka和Zookeeper的区别

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

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

Eureka遵循AP原则

Zookeeper遵循CP原则

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

GitHub源码

https://github.com/wcd19901010/microservicecloud

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
Spring Cloud Eureka源代码解析(1)Eureka启动,原生启动与SpringCloudEureka启动异同
Eureka作为服务注册中心对整个微服务架构起着最核心的整合作用,因此对Eureka还是有很大的必要进行深入研究。Eureka1.x版本是纯基于servlet的应用。为了与springcloud结合使用,除了本身eureka代码,还有个粘合模块springcloudnetflixeurekaserver。在我们启动EurekaServer实例
Easter79 Easter79
2年前
SpringCloud注册中心高可用搭建
SpringCloud的注册中心可以由Eureka、Consul、Zookeeper、ETCD等来实现,这里推荐使用SpringCloudEureka来实现注册中心,它基于Netfilix的Eureka做了二次封装,完成分布式服务中服务治理的功能,微服务系统中的服务注册与发现都通过这个注册中心来进行管理。引入EurekaServer依赖
Easter79 Easter79
2年前
SpringCloud(一)之微服务核心组件Eureka(注册中心)的介绍和使用
一Eureka服务治理体系1.1服务治理服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。SpringCloudEureka是SpringCloudNetflix微服务套件中的一部分,它基于NetflixEureka做了二次封装。主要负责完成微服务架构中的服务治理功能。Eur
Stella981 Stella981
2年前
Spring Cloud系列教程(六):服务注册与发现Consul(Finchley版本)
一、前言在微服务领域,服务注册与发现是其中很重要的一个模块,主要用于服务治理问题;在分布式Dubbo中常用的服务发现与注册中心是Zookeeper,Cosul与其类似,在SpringCloud刚占领市场的时候,SpringCloud微服务框架默认使用的注册中心组建是Eureka,总所周知,Eureka已经开始闭源了,
Easter79 Easter79
2年前
SpringCloud常用组件
springcloud中有五大核心组件Eureka、Ribbon、Feign、Hystrix、Zuul,简单记录如下。Eureka是微服务架构中的注册中心,专门负责服务的注册与发现。EurekaClient组件专门负责将服务的信息注册到EurekaServer中,而EurekaServer是一个注册中心,里面有一个注册表,保存了各服务所在
Easter79 Easter79
2年前
SpringCloud服务发现(Eureka)简介
SpringCloud服务发现(Eureka)简介原创 2016年09月21日15:24:39标签:系统架构(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fso.csdn.net%2Fso%2Fsearch%
Stella981 Stella981
2年前
Golang注册Eureka的工具包goeureka发布
1.简介提供Go微服务客户端注册到Eureka中心。点击:github地址(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2FSimonWang00%2Fgoeureka),欢迎各位多多star!(已通过测试验证,用于正式生产部署)2.原理
Easter79 Easter79
2年前
SpringCloud Eureka服务治理机制
一、基础架构!(https://oscimg.oschina.net/oscnet/c088a917c16ee8be06202e47bd73e50a7a0.png)构建Eureka服务治理有三个核心角色:服务注册中心、服务提供者和服务消费者。上图就是这三个角色之间的通信工作架构图。服务注册中心(Eureka 
Easter79 Easter79
2年前
SpringCloud微服务(01):Eureka组件,管理服务注册与发现
一、Eureka基本架构1、Eureka角色结构图!在这里插入图片描述(https://imgblog.csdnimg.cn/20190519214547708.png?xossprocessimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow
Stella981 Stella981
2年前
Spring Cloud Eureka的基础架构
基础架构服务注册中心:Eureka提供的服务端,提供服务注册于发现的功能,也就是在上一节中我们实现的eurekaserver服务提供者:提供服务的应用,可以是springBoot应用,也可以是其他技术平台且遵循Eureka通信机制的应用。它将自己提供的服务注册到Eureka,以供其他应用发现,也
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k