忽略元数据末尾

回到原数据开始处

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
1 eureka.client.enabled true

表明尤里卡客户端启用

2 eureka.client.eureka-connection-idle-timeout-seconds 30

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

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

3 eureka.client.eureka-server-connect-timeout-seconds 5

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

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

4 eureka.client.register-with-eureka true

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

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

5 eureka.client.fetch-registry true

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

6 eureka.client.g-zip-content true

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

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

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

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

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

18 eureka.instance.lease-renewal-interval-in-seconds 30

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

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

19 eureka.instance.namespace eureka 通过配置文件找到namespace,忽略springcloud的配置
20 eureka.instance.status-page-url   尤里卡实例状态页面绝对路径URL

Eureka 基础知识的更多相关文章

  1. spring cloud系列教程第四篇-Eureka基础知识

    通过前三篇文章学习,我们搭建好了两个微服务工程.即:order80和payment8001这两个服务.有了这两个基础的框架之后,我们将要开始往里面添加东西了.还记得分布式架构的几个维度吗?我们要通过一 ...

  2. Spring Cloud微服务实战阅读笔记(一) 基础知识

    本文系<Spring Cloud微服务实战>作者:翟永超,一书的阅读笔记. 一:基础知识   1:什么是微服务架构     是一种架构设计风格,主旨是将一个原本独立的系统拆分成多个小型服务 ...

  3. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  4. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  5. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  6. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  7. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  8. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  9. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

随机推荐

  1. python语言(四)关键字参数、内置函数、导入第三方模块、OS模块、时间模块

    一.可变参数 定义函数时,有时候我们不确定调用的时候会传递多少个参数(不传参也可以).此时,可用包裹(packing)位置参数(*args),或者包裹关键字参数(**kwargs),来进行参数传递,会 ...

  2. python函数 | 列表生成式

    在编写程序或者查看别人的程序时,经常会遇到列表生成式,这个使用起来并不复杂,但是非常有用,使我们的代码更加简洁灵活.很多python使用者并不太会使用它.今天,就给大家详细讲解列表生成式和生成器表达式 ...

  3. Python-内存泄漏 持续增长 检查点

    仅个人目前遇见的内存问题, 可能不适用所有问题 一下只是简单的实例代码, 可能跑不起来, 只是看看 可变变量参数 小例子: def foo(a, b=[]): b.append(a) print b ...

  4. ps制作马赛克图片

  5. [CQOI2007]涂色paint(BZOJ 1260)题解

    题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续的木版涂成一个 ...

  6. Vue中的native修饰符解析

    native修饰符 一般来说,vue本身提供了v-on:eventName这个语法来提供vue的时事件绑定,通常使用@eventName这个语法糖代替上述语法. 使用过程中没有考虑@eventName ...

  7. linux高性能服务器编程 (六) --高级I/O函数

    第六章 高级I/O函数 Linux提供了很多高级的I/O函数,它不是基础的I/O函数(open/read) 1.创建文件描述符的函数比如:pipe.dup/dup2函数 2.读写数据的函数比如:rea ...

  8. 一个bug程序员的入园

    大家好,我叫dg是一个只写bug的程序员.当然只写bug也是有好处的,那就是踩过的坑多了,摔的跟斗多了,并且没有被摔死,勇敢的活了下来,练就了一身钢筋铁骨.哈哈,开个玩笑.但是猜的坑多了就知道了哪里有 ...

  9. Review of Semantic Segmentation with Deep Learning

    In this post, I review the literature on semantic segmentation. Most research on semantic segmentati ...

  10. Java中的long类型和Long类型比较大小

    Java中我们经常要做一些判断,而对于判断的话,用的最多的便是“>”.“==”.“<”的比较,这里我们进行一个Long类型数据和long类型数据的比较大小的讲解. Java中Long和lo ...