实例和客户端的元数据

Eureka Metadata for Instances and Clients

0、Eureka的元数据字面理解

  • 原文: It is worth spending a bit of time understanding how the Eureka metadata works, so you can use it in a way that makes sense in your platform. There is standard metadata for information such as hostname, IP address, port numbers, the status page, and health check. These are published in the service registry and used by clients to contact the services in a straightforward way. Additional metadata can be added to the instance registration in the eureka.instance.metadataMap, and this metadata is accessible in the remote clients. In general, additional metadata does not change the behavior of the client, unless the client is made aware of the meaning of the metadata. There are a couple of special cases, described later in this document, where Spring Cloud already assigns meaning to the metadata map.
  • 译文: 花时间了解Eureka元数据的工作方式是一件值得的事,这样您就可以在您的平台上使用它了。标准元数据的信息包括:例如主机名、IP地址、端口号、状态页和健康检查。这些服务发布在服务注册中心,并由客户端使用以简单的方式与服务联系。可以将其他元数据添加到==eureka.instance.metadataMap==中的实例注册中,并且远程客户端可以访问该元数据。通常,附加的元数据不会改变客户端的行为,除非使客户端知道元数据的含义。本文后面将描述几个特殊情况,其中Spring Cloud已经为元数据映射分配了含义。

1、配置Eureka的元数据

eureka:instance:metadata-map: zone: ABC  # eureka可以理解的元数据,因为eureka中有这个zone的名字mmzs: BBC  # 不会影响客户端行为,因为eureka中没有mmzs这个名字,eureka不能理解这个元数据
复制代码

Using the EurekaClient

不要在@PostConstruct方法或@Scheduled方法中使用EurekaClient(或任何可能尚未启动ApplicationContext的地方)。

为什么注册服务这么慢?

官网文档:cloud.spring.io/spring-clou…

作为一个实例,还会涉及到一个默认的持续时间为30秒的注册表(通过客户端的Service URL)的周期性心跳。 直到实例、服务端和客户端在本地缓存中都具有相同的元数据(因此它可能会花费3个心跳周期),客户端才可发现服务。您可以通过设置==eureka.instance.leaseRenewalIntervalInSeconds==来改变周期时间;将其设置为小于30秒,加快客户端连接到其他服务端的过程。==在生产中,最好是坚持使用默认,因为在服务器内部有一些计算,它们会对租赁续订期做出一些假设。==

eureka服务实例的应用名称是?

优先级:2>0>1
0、默认是读取配置

spring:application:# 建议大家都是用小写name: microservice-provider-user
复制代码

1、如该配置没有,那么就是unknown
2、还可以通过下面的配置:

# 这种配置和swagger没有冲突,而第0种配置可能会有冲突
eurekainstanceappname: USER-SERVICE-MMZS
复制代码

Eureka开启自我保护的提示

当出现以下语句时:
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE. 表明Eureka已经开启自我保护。

如何解决Eureka Server不踢出已关停的节点的问题?

  • server端:
# 设为false,关闭自我保护主要
eureka.server.enable-self-preservation
# 清理间隔(单位毫秒,默认是60*1000)
eureka.server.eviction-interval-timer-in-ms
复制代码
  • client端:
# 开启健康检查(需要spring-boot-starter-actuator依赖)
eureka.client.healthcheck.enabled = true
# 租期更新时间间隔(默认30秒)
eureka.instance.lease-renewal-interval-in-seconds =10
# 租期到期时间(默认90秒)
eureka.instance.lease-expiration-duration-in-seconds =30
复制代码
  • 示例:
  1. 服务器端配置:
    eureka:server:enableSelfPreservation: falseevictionIntervalTimerInMs: 4000
复制代码
  1. 客户端配置:
    eureka:instance:leaseRenewalIntervalInSeconds: 10leaseExpirationDurationInSeconds: 30
复制代码

==注:== 在生产中,更改Eureka更新频率将打破服务器的自我保护功能,所以最好坚持使用默认值,因为在服务器内部有一些计算,他们对续约做出假设。
参考文档:github.com/spring-clou…

Eureka配置instanceId显示IP

  • 直接配置:
eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/instance:prefer-ip-address: trueinstance-id: ${spring.cloud.client.ip-address}:${server.port}
复制代码

==注==: 如果只是配置了eureka.instance.prefer-ip-address=true,而不配置eureka.instance.instance-id,那还是显示localhost,但ip地址是可以访问得了。

  • 手工指定IP(推荐)
    添加以下配置:
# 指定此实例的ip
eureka.instance.ip-address = 127.0.0.1
# 注册时使用ip而不是主机名
eureka.instance.prefer-ip-address = true
复制代码
  • Spring Cloud Netflix Eureka: 多网卡环境下Eureka服务注册IP选择问题
    链接:blog.csdn.net/neosmith/ar…

Eureka Environment和Eureka DataCenter的配置:

  1. Eureka Environment的配置:
    eureka.environment: 字符串
复制代码

参考文档: github.com/Netflix/eur… 2. Eureka DataCenter的配置

    eureka.datacenter: cloud
复制代码

参考文档:github.com/Netflix/eur…

这边说:配置-Deureka.datacenter=cloud,这样eureka将会知道是在AWS云上 3. 示例:

    eureka: datacenter: cloudenvironment: product
复制代码

Eureka配置最佳实践总结

参考文档: github.com/spring-clou…

转载于:https://juejin.im/post/5cfdbc335188255a70478f24

SpringCloud(一):深入理解Eureka相关推荐

  1. springcloud五大神兽之Eureka介绍

    一.springcloud简介 1.0 什么是微服务? ① 业务角度 从业务角度分析,就是将整体项目(传统的一站式应用)按照业务拆分,将每个业务拆分为一个个独立的服务,彻底解除业务模块之间的耦合,每个 ...

  2. SpringCloud注册与发现Eureka

    SpringCloud注册于发现Eureka服务学习: 简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中 ...

  3. Springcloud服务如何在Eureka安全优雅的下线

    Springcloud服务如何在Eureka安全优雅的下线 如果直接kill -9 Springcloud的服务,因为Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提 ...

  4. SpringCloud五大神兽之Eureka服务注册(三)——Eureka的自我保护

    一.ACID与CAP 传统ACID: A:atomicity   原子性 C:consistency    一致性 I:isolation    独立性 D:durability    持久性 目前流 ...

  5. SpringCloud H版之Eureka学习

    SpringCloud H版之Eureka学习 欢迎学习SpringCloud Netflix Eureka 什么是服务注册与发现 Eureka Server提供服务注册服务 EurekaClient ...

  6. springCloud - 第11篇 - Eureka 注册中心集群的实现

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. eureka 作为整个微服务项目的注册中心,到目前为止,在我的系统中一直是单节点的,这样并不能作到高 ...

  7. SpringCloud学习笔记01——Eureka 和 Nacos注册

    SpringCloud01 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构.这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务 ...

  8. SpringCloud微服务基础 Eureka、Feign、Ribbon、Zuul、Hystrix、配置中心的基础使用

    1.单点系统架构 传统项目架构 传统项目分为三层架构,将业务逻辑层.数据库访问层.控制层放入在一个项目中. 优点:适合于个人或者小团队开发,不适合大团队开发. 分布式项目架构 根据业务需求进行拆分成N ...

  9. 深入理解Eureka之源码解析

    Eureka的一些概念 Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址.端口,运行状况指示符URL,主页等. Renew:服务续约 ...

最新文章

  1. 用韩信三技能,讲清楚一致性哈希
  2. 用 Fiddler 来弥补 Chrome Network 的小缺点
  3. 无法加入nacos服务列表_Nacos 1.1.1 发布,支持灰度配置和地址服务器模式
  4. 不使用 Ruby 的十个理由
  5. 智能安全实验室-杀马(Defendio) 2.5.0.426 :解决因日期超过28日(29/30/31)出现的“无效属性”导致杀马无法启动的问题;...
  6. Jupyter notebook: TypeError: __init__() got an unexpected keyword argument 'io_loop 问题
  7. 三星mega2 android os,GALAXY MEGA2
  8. HTML中禁用表单控件的两种方法readonly与disabled
  9. begin entries matlab,Matlab-图形算法和图像处理指南
  10. Mysql查询性能优化
  11. Netty文章目录汇总
  12. 飞秋(FeiQ)常用问题解答,
  13. STM32基于固件库学习笔记(7)I2C通讯协议时序(GPIO模拟协议时序完成MCU对24c02读写数据)
  14. wordpress后台样式_如何在WordPress中以不同的方式设置单个类别的样式
  15. 水声网络架构及关键问题笔记
  16. AutoLISP将图形中文字写入外部文件
  17. nvme固态硬盘开机慢_别让谣言害了你!关于固态硬盘的谣言以及使用误区 NVMe固态硬盘卡慢怎么办 NVMe固态硬盘卡慢解决方法【详解】-宝商在线...
  18. 跨境解读:亚马逊封号,避雷专题
  19. 31.进程管理之进程概览,及ps命令详解,ps -ef,ps aux,ps -le,ps -l输出详解和示例
  20. 【算法】leetcode 974. 和可被 K 整除的子数组(前缀和思想)

热门文章

  1. J2EE (六) 详解 java 中文乱码
  2. python3练习题:并发编程(21-25)
  3. python 数据的基本类型(字符串)
  4. 关于mysql的内部联结
  5. Win10如何显示系统托盘所有图标
  6. hdu2041 dp
  7. 使用jsp+swfupload做上传时报Upload Error: 405错误
  8. 发布Web Service 注意的问题
  9. Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL
  10. WebVie打开woffice文档