SpringCloud--注册中心Eureka
Eureka的服务治理设计中,所有节点即是服务提供方,也是服务消费方。
Eureka Server的高可用:就是将自己作为服务向其他服务注册中心注册自己,形成一组互相注册的服务注册中心,实现服务清单的互相同步,达到高可用的效果。
Example:现有两个服务注册中心(RegisterCenterOne、RegisterCenterTwo)
application-centerOne.properties内容如下:
spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=registercenterone
eureka.client.serviceUrl.defaultZone=http://registercentertwo:1112/eureka
application-centerTwo.properties内容如下:
spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=registercentertwo
eureka.client.serviceUrl.defaultZone=http://registercenterone:1111/eureka
服务提供方配置内容如下(application.properties):
spring.application.name=hello-service
eureka.client.serviceUrl.defaultZone=http://registercentertwo:1112/eureka,http://registercenterone:1111/eureka
Eureka基础架构的三个核心要素:
服务注册中心:提供服务注册与发现
服务提供者:提供服务的应用
服务消费者:消费者应用从服务注册中心获取服务列表,从而使消费者可以知道从何处调用其所需的服务

服务提供者
服务注册:
“服务提供者”在启动的时候会通过发送REST请求的方式将自己注册到Eureka Server上,同时带上了自身服务的一些元数据信息。在服务注册时,需要确认eureka.client.register-with-eureka=true(默认为true),若设置为false将不会启动注册操作。
服务同步:
服务注册中心之间互相注册为服务,当服务提供者发送注册请求到一个服务注册中心时,它会将请求转发给集群中相连的其他注册中心,从而实现注册中心之间的服务同步。
服务续约:
在注册完服务之后,服务提供者会维护一个心跳用来告诉Eureka Server:“我还活着”,以防止Eureka Server的“剔除任务”姜该服务实例从服务列表中排除出去,该操作作为服务续约。
服务消费者
获取服务:
当启动服务消费者的时候,它会发送一个REST请求给服务注册中心,来获取上面注册的服务清单。Eureka Server会维护一份份只读的服务清单来返回给客户端,同时该缓存清单会每隔30秒更新一次(可通过设置eureka.client.registry-fetch-interval-seconds=30的值进行修改,单位为s)。
服务调用:
服务消费者在获取服务清单后,通过服务名可以获得具体提供服务的实例名和该实例的元数据信息。
服务下线:
在客户端程序中,当服务实例精细正常的关闭操作时,它会触发一个服务下线的REST请求给Eureka Server,告诉服务注册中心。服务端在接收到请求后,将该服务状态置为下线,并把该下线事件传播出去。
服务注册中心
失效剔除:
Eureka Server在启动的时候会创建一个定时任务,默认每隔一段时间(默认60秒)将当前清单中超时(默认90秒)没有续约的服务剔除出去。
自我保护:
Eureka Server在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况,Eureka Server会将当前的实例注册信息保护起来,让这些实例不会过期。可以通过设置eureka.server.enable-self-preservational=false参数关闭保护机制。
实例名规则设置:eureka.instance.instanceId=${spring.application.name}:${random.int}(利用应用名加随机数的方式区分不同实例,从而实现在同一主机上不指定端口就能启动多个实例)
在Spring Cloud Eureka中, 我们可以通过简单的配置, 把Eureka客户端的健康检测交给spring-boot-actuator模块的/health端点, 以实现更加全面的健康状态维护。详细的配置步骤如下所示:
• 在pom.xml中引入spring-boot-starter-actuator模块的依赖。
• 在application.proper巨es中增加参数配置eureka.client.healthcheck.enabled=true。
• 如果客户端的/health端点路径做了一些特殊处理,请参考前文介绍端点配置时的方法进行配置, 让服务注册中心可以正确访问到健康检测端点。
SpringCloud--注册中心Eureka的更多相关文章
- SpringCloud注册中心(Eureka)
注册中心的作用就是用来方便接口暴露出来的一个管理工具,如果所有的接口只是暴露出来,没有一个同一的管理工具,又有谁知道你暴露了哪些接口了,Eureka是一个springcloud的服务注册和发现模块 搭 ...
- springcloud注册中心Eureka<英 [juəˈri:kə]>的基本搭建
1.http://start.spring.io搭建基本的springboot环境,版本用的是1.5.10 2.在pom文件中添加注册中心的jar包和springcloud的jar包 <!-- ...
- springcloud注册中心eureka
1.前提 springcloud的注册中心是以springboot为基础搭建起来的. 开发工具:IDEA 项目管理工具:maven 2.搭建步骤 创建一个web项目(建议使用IDEA工具构建项目) 修 ...
- 跟我学SpringCloud | 第二篇:注册中心Eureka
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现.也是springcloud体系中最重要最核心的组 ...
- springcloud入门系列(二):注册中心Eureka
搭建注册中心Eureka 1.pom中依赖 <dependencies> <dependency> <groupId>org.springframework.clo ...
- SpringCloud(四):服务注册中心Eureka Eureka高可用集群搭建 Eureka自我保护机制
第四章:服务注册中心 Eureka 4-1. Eureka 注册中心高可用集群概述在微服务架构的这种分布式系统中,我们要充分考虑各个微服务组件的高可用性 问题,不能有单点故障,由于注册中心 eurek ...
- 【Docker】(5)---springCloud注册中心打包Docker镜像
[Docker](5)---springCloud注册中心打包Docker镜像 上一篇文章讲了将镜像推送到远处私有仓库,然后再从私有仓库拉取该镜像的过程.而这里的镜像是直接从Docker拉取的. 所以 ...
- IDEA快速搭建 SpringCloud 注册中心与
第一步:创建 注册中心(eureka)项目 按照以下步骤一步一步来(只是对于IDEA的初学者来说) (我这里选择maven项目.比较方便) 给注册中心项目 取上可爱的名称 第二步配置 eureka的p ...
- 孰能巧用 Spring Cloud 服务注册中心Eureka
Eureka介绍 在Spring Cloud Netflix 整合技术栈中,Eureka既可以作为服务注册中心也可以用于服务发现对整个微服务架构起着最核心的整合作用. Eureka是基于REST(Re ...
- spring cloud 注册中心--eureka注册与发现
本文详细介绍spring cloud微服务的默认注册中心--eureka注册与发现.开发环境需要Windows系统.jdk和intellij idea.与zookeeper注册中心相比,eureka不 ...
随机推荐
- 安卓-APP安装后多个图标的解决
原因是在不同Activity的intent中配置了多个LAUNCHER. <intent-filter> <action android:name="android.int ...
- 第十六周oj刷题——Problem E: B 构造函数和析构函数
Description 在建立类对象时系统自己主动该类的构造函数完毕对象的初始化工作, 当类对象生命周期结束时,系统在释放对象空间之前自己主动调用析构函数. 此题要求: 依据主程序(main函数)和程 ...
- oracle spfile pfile
1.如果不指定的話 先后順序: spfileSID.ora spfile.ora initSID.ora init.ora. 2.这样startup spfile='*.oar',不允许的. 3.不过 ...
- JS学习笔记(1)--sort排序
sort() 方法用于对数组的元素进行排序. 请注意,数组在原数组上进行排序,不生成副本. 说明 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进 ...
- hdu1285 确定比赛名次(拓扑排序多种方法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 Problem Description 有N个比赛队(1<=N<=500),编号依次 ...
- 几种在Linux下查询外网IP的办法。
几种在Linux下查询外网IP的办法. Curl 纯文本格式输出: curl icanhazip.com curl ifconfig.me curl curlmyip.com curl ip.ap ...
- java访问属性
- 使用HashMap,put()表示放置元素,get()表示取元素
SortedSet可自动为元素排序. SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序. 与HashSet不同,TreeSet并不需要实现HashCode() ...
- OSG 中 相交測试 模块 工作流程及原理
主要涉及三个类: 1. osgUtil::PolytopeIntersector // 详细不同算法实现类 2. osgUtil::IntersectionVisitor //用来遍历节点树的每一个节 ...
- javascript实现打印功能
<input name="b_print" type="button" class="ipt" onClick="print ...