work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Spring Cloud Eureka Server使用(注册中心)

Posted on 2018-11-15 10:43  work hard work smart  阅读(327)  评论(0编辑  收藏  举报

 一、什么是Spring Cloud Eureka?

基于Netflix Eureka做了二次封装

由两个组件组成

Eureka Server 注册中心, 提供服务注册的服务,存储所有可用的服务。

Eureka Client 服务注册。 用于简化与服务的交互的复杂度。

他们的关系如下图:

 

 

 

二、注册中心

Eureka Server

记录了所有应用的信息和状态

 

三、Eureka核心特性

1、服务注册

Eureka Client在第一次心跳时向Eureka Server注册

注册时会提供诸多自身元数据: 主机名、端口、健康指标URL等

2、服务续约

Eureka Client通过发送心跳进行续约

默认情况下每30秒钟发送一次心跳

如90秒内Eureka Server未收到续约,则进行服务剔除

3、服务下线

Eureka Client优雅退出时会发送cancel命令

Eureka Server收到cancel命令时会删除该节点

 4、获取注册列表信息

Eureka Client会缓存由Server获取的注册表信息

Eureka Client会定期更新注册表信息【默认30秒】

Eureka Client会处理注册表的合并等内容(合并、修改、剔除等)

 

四、创建工程

下一步

下一步

 

然后在类EurekaApplication中增加EnableEurekaServer注解

 

创建好了之后,启动应用

但是不停的报如下错误

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

 解决方法:创建application.yml文件,增加如下图的配置

 

2、打开localhost:8080

 因为该应用程序是注册中心,不应该出现在Instances currently registered with Eureka中

所有增加配置

 

3、修改端口

因为Java很多默认的端口是8080,为了便于管理,将端口改成默认端口8761

 

六、多注册中心比较

1、分布式基础: CAP理论

C: 一致性:Consistency

A:可用性 : Available

P: 分区容错性: Partition tolerance

2、常见注册中心: Zookeeper, Eureka等。

3、Eureka主要保证AP特性

4、Zookeeper是典型的CP特性

 

七、Eureka注册慢的原因?

注册慢的根本原因在于Eureka的AP特性

Eureka Client延迟注册,默认30秒

Eureka Server的响应缓存,默认30秒

Eureka Server的缓存刷新,默认30秒

 

八、Eureka的自我保护

Eureka Server会自动更新续约更新阈值

Eureka Server续约更新频率低于阈值则进入保护模式。

自我保护模式下Eureka Server不会剔除任何注册信息