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
|
|---|---|---|---|
| 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 基础知识的更多相关文章
- spring cloud系列教程第四篇-Eureka基础知识
通过前三篇文章学习,我们搭建好了两个微服务工程.即:order80和payment8001这两个服务.有了这两个基础的框架之后,我们将要开始往里面添加东西了.还记得分布式架构的几个维度吗?我们要通过一 ...
- Spring Cloud微服务实战阅读笔记(一) 基础知识
本文系<Spring Cloud微服务实战>作者:翟永超,一书的阅读笔记. 一:基础知识 1:什么是微服务架构 是一种架构设计风格,主旨是将一个原本独立的系统拆分成多个小型服务 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
随机推荐
- 对ABBYY FineReader功能的探究
ABBYY FineReader,一个强大的PDF阅读器和OCR识别器! 阅读主界面 OCR主界面 资源就不贴了,不过提示一下大家:Google Search 懒 得 勤 快,就可以找到. 经过研究, ...
- LeetCode 1249. Minimum Remove to Make Valid Parentheses
原题链接在这里:https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/ 题目: Given a string s ...
- luogu_2831: 愤怒的小鸟
洛谷2831:愤怒的小鸟(状压\(dp\)) 题意: 在二维平面上给定\(n\)个点\((1\leq n\leq18)\). 其中每个点用\((x_i,y_i)\)表示\((0<x_i,y_i& ...
- C++ Boost
Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C+ ...
- cf1189解题报告
cf1189div2解题报告 codeforces A 答案要不是一串要不就是去掉最后一个字母的两串 #include <bits/stdc++.h> #define ll long lo ...
- 洛谷 P2634 [国家集训队]聪聪可可-树分治(点分治,容斥版) +读入挂+手动O2优化吸点氧才过。。。-树上路径为3的倍数的路径数量
P2634 [国家集训队]聪聪可可 题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一 ...
- centos服务器升级nodejs, pm2
突然抽风想升级服务器的nodejs版本,原服务器版本运行的8.x,而目前(2019年5月30日)nodejs官方最新版本已经更新到了12.x了,稳定版本也更新到了10.x. 然后就折腾了一把去升级服务 ...
- java 中类初始化,构造方法,静态成员变量,静态块的加载顺序
1.编译和运行概念要搞清:编译即javac的过程,负责将.java文件compile成.class文件,主要是类型.格式检查与编译成字节码文件,而加载是指java *的过程,将.class文件加载到内 ...
- 【AtCoder】 ARC 097
link C-K-th Substring 题意:找出已知串中第\(k\)大的子串,子串相同的不算 \(k\)好小啊,要怎么做啊 不是[Tjoi2015]弦论吗 算了,直接SAM吧 #include& ...
- Sonar错误 Invoke method(s) only conditionally
sonarLint总是报错: Invoke method(s) only conditionally 代码如下: if(us != null){ logger.info("Log this: ...