Eureka 基础知识

忽略元数据末尾
回到原数据开始处

Eureka是netflix公司研发并且开源的一个服务发现组件。

Eureka架构图:

Eureka组件包含注册中心(Eureka Server)和eureka客户端。

    服务注册中心:Eureka客户端会把自身服务注册到注册中心,为其他Eureka客户端提供服务,Eureka客户端通过注册中心相互发现对应服务并进行调用

    Eureka客户端:相对注册中心而言,所有注册到服务注册中心的服务都可以表述为Eureka客户端;但是站在提供方和消费方的角度看,Eureka客户端又可以称之为服务端


优点:

    Eureka提供了一个客户端库,该库提供了服务心跳、服务健康检查、自动发布及缓存刷新等功能。

    如果使用ZooKeeper,这些功能都需要自己实现,并且zookeeper通过心跳发现服务不可用时,会立即删除注册到zookeeper的服务;而eureka不会立即删除服务,因为注册的服务有可能只是因为网络轻微波动导致无法发送心跳,并不是服务不可用。

    Eureka在客户端会有缓存。即使所有Eureka服务器不可用,服务注册信息也不会丢失。缓存在这里是恰当的,因为它只在所有的Eureka服务器都没响应的情况下才会用到。

    Eureka使用Ribbon组件实现客户端负载均衡策略

缺点:

    当所有服务端都同时停止之后,然后重启,客户端需要等待一定时间(最长30s,因为客户端会30s请求一次eureka注册中心)才能连接服务端,因为虽然在注册中心显示服务端已经注册,但是服务有可能还没有全启动,所以需要等待(其实也不像缺点–!)

Eureka参数配置如下:

 

 
Name
Default
Description
1eureka.client.enabledtrue

表明尤里卡客户端启用

2eureka.client.eureka-connection-idle-timeout-seconds30

显示HTTP连接尤里卡服务器处于闲置状态多少时间(以秒为单位)才可以关闭。     

在AWS环境中,建议值是30秒或更少,因为在不稳定状态防火墙清除连接信息几分钟后断开连接

3eureka.client.eureka-server-connect-timeout-seconds5

表示要等多长时间(以秒为单位)之前到尤里卡的连接服务器超时。

注意,连接在客户端被org.apache.http.client汇集。HttpClient和创造这个设置会影响实际的连接以及等待时间从池中获取连接。

4eureka.client.register-with-eurekatrue

表明该实例能否被注册到尤里卡服务的其他客户端发现。

在某些情况下,您不希望您的实例被发现而你想发现其他实例。

5eureka.client.fetch-registrytrue

表明这个客户能否应该从尤里卡服务端获取尤里卡注册表信息

6eureka.client.g-zip-contenttrue

显示只要是支持的服务从尤里卡服务端获取的内容是否被压缩。

表明从尤里卡服务端获取的信息是压缩过的用来优化网络流量。

7eureka.client.heartbeat-executor-thread-pool-size2心跳执行器的线程池初始值。
8eureka.client.initial-instance-info-replication-interval-seconds40表明最初多长时间(以秒为单位)复制实例信息到尤里卡服务。
9eureka.client.instance-info-replication-interval-seconds30表明多长时间(以秒为单位)复制实例更改到尤里卡服务。
10eureka.client.registry-fetch-interval-seconds30表明多长时间(以秒为单位)从尤里卡服务获取注册表信息。
11eureka.client.serviceUrl.defaultZone 尤里卡客户端和服务端通信的地址,多个地址用逗号隔开,e.g. http://localhost:8761/eureka/
12eureka.dashboard.enabledtrue表明是否启用尤里卡服务控制台,默认为启用
13eureka.dashboard.path/尤里卡服务控制台的相对路径,默认为“/”
14eureka.instance.health-check-url 尤里卡实例健康检查绝对路径URL
15eureka.instance.home-page-url 尤里卡实例home页面绝对路径URL
16eureka.instance.hostname 尤里卡实例主机名;如果不配置,尤里卡会直接使用操作系统的主机名
17eureka.instance.lease-expiration-duration-in-seconds90

表明尤里卡服务等待的时间间隔,以秒为单位自收到最后的心跳才能把这个实例从它的视图中删除。

这个值被设置为至少高于leaseRenewalIntervalInSeconds中指定的值。

18eureka.instance.lease-renewal-interval-in-seconds30

表明尤里卡客户端间隔多长时间(以秒为单位)向尤里卡服务发送心跳信息用来证明客户端是活着的;

在leaseExpirationDurationInSeconds参数的指定值期间没有收到来自客户端的心跳,这个实力会被尤里卡服务删除

19eureka.instance.namespaceeureka通过配置文件找到namespace,忽略springcloud的配置
20eureka.instance.status-page-url 尤里卡实例状态页面绝对路径URL
posted @ 2017-04-12 19:19  托马斯布莱克  阅读(3086)  评论(0)    收藏  举报