Eureka使用总结

关于Eureka:

提供基于 REST的服务,在集群中主要用于服务管理。使用该框架,可以将业务组件注册到Eureka容器中,这些组件可进行集群部署,Eureka主要维护这些服务的列表并自动检查他们的状态。

架构图:

Eureka使用总结

常用配置说明:

服务端:

eureka.client.register-with-eureka 属性,声明是否将自己的信息注册到Eureka服务器,默认为true。

eureka.client.fetch-registry 属性,表示是否到Eureka服务器中抓取注册信息。

eureka.server.eviction-interval-timer-in-ms 属性来修改注册表的清理间隔,单位是毫秒。

eureka.server.enable-self-preservation 属性,将值设置为false来关闭自我保护机制。默认为true。

eureka.server.renewal-percent-threshold : 0.85 ,自我保护阈值。

eureka.server. use-read-only-response-cache: false ,关闭从 readOnly (缓存)读注册表信息。

eureka.server.response-cache-update-interval-ms: 1000 ,readwrite 和 readonly 同步时间间隔。单位毫秒。

优化

  server:
    # 自我保护,看服务多少。如果服务数量少需要打开,如果服务数量多可以关闭。
    enable-self-preservation: true
    # 自我保护阈值
    renewal-percent-threshold: 0.85
    # 剔除服务时间间隔
    eviction-interval-timer-in-ms: 1000
    # 关闭从readOnly(缓存)读注册表
    use-read-only-response-cache: false
    # readWrite 和 readOnly 同步时间间隔。
    response-cache-update-interval-ms: 1000

客户端:

eureka.instance.lease-renewal-interval-in-seconds属性,客户端的实例会向服务器周期性的发送心跳,默认是30秒发送一次。

eureka.client.registry-fetch-interval-seconds属性,客户端抓取注册表并缓存的间隔时间。默认是30秒。

eureka.instance.leaseExpirationDurationInSecond 属性,服务器端接收心跳请求,如果在一定期限内没有接收到服务实例的心跳,那么会将该实例从注册表中清理掉,其他的客户端将会无法访问这个实例。默认是90 秒,服务器90秒没有收到客户端的心跳,就会将这个实例从列表中清理掉。但是需要注意的是,清理注册表有一个定时器在执行,默认是60秒执行一次,如果将该值设置小于60秒,虽然符合删除实例的条件,但是还没到60秒,这个实例将仍然存在注册表中(因为还没有执行清理)。我们可以在服务器端配置 eureka.server.eviction-interval-timer-in-ms 属性来修改注册表的清理间隔,单位是毫秒。

优化

    client:
        #刷新注册表(拉取注册表)间隔
        registry-fetch-interval-seconds: 5
    intance:
        #心跳续约间隔
        lease-renewal-interval-in-seconds: 10
        #心跳过期时间
        lease-expiration-duration-in-seconds: 10

集群配置

双台集群的配置

服务端配置

service1的配置

#是否将自己注册到Eureka Server,默认为true
eureka.client.register-with-eureka=true
#是否从eureka server获取注册信息
eureka.client.fetch-registry=true
#设置服务注册中心的URL,用于client和server端交流
eureka.client.service-url.defaultZone=http://euk2.com:8002/eureka/
#实例主机名
eureka.instance.hostname=euk1.com
#应用服务名
spring.application.name=EurekaServer
server.port=8001

service2的配置

#是否将自己注册到Eureka Server,默认为true
eureka.client.register-with-eureka=true
#是否从eureka server获取注册信息
eureka.client.fetch-registry=true
#设置服务注册中心的URL,用于client和server端交流
eureka.client.service-url.defaultZone=http://euk2.com:8001/eureka/
#实例主机名
eureka.instance.hostname=euk2.com
#应用服务名
spring.application.name=EurekaServer
server.port=8002

客户端配置

#客户端每次都会使用第一个注册服务拉取数据。在使用的时候,需要打乱前两个注册服务的顺序。
eureka.client.service-url.defaultZone = http://euk1.com:8001/eureka/,http://euk2.com:8002/eureka/
spring.application.name=user-provider

三台集群的配置

服务端配置

`yaml
eureka:
client:
serviceUrl:
defaultZone: http://euk1.com:8001/eureka/,http://euk2.com:8002/eureka/,http://euk3.com:8003/eureka/
spring:
application:
name: ThreeClustersEurake
spring:
profiles: euk2
eureka:
instance:
hostname: euk2.com
server:
port: 8002

Original: https://www.cnblogs.com/yuanbeier/p/15421507.html
Author: bei_er
Title: Eureka使用总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607778/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 没有二十年功力,写不出Thread.sleep(0)这一行“看似无用”的代码!

    你好呀,我是喜提七天居家隔离的歪歪。 这篇文章要从一个奇怪的注释说起,就是下面这张图: 我们可以不用管具体的代码逻辑,只是单单看这个 for 循环。 在循环里面,专门有个变量 j,…

    Java 2023年6月5日
    078
  • springboot使用log4j2代替内置log4j

    前言 log4j是apache实现的一个开源日志组件 logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现 l…

    Java 2023年5月30日
    078
  • 朱晔和你聊Spring系列S1E1:聊聊Spring家族的几大件

    朱晔和你聊Spring系列S1E1:聊聊Spring家族的几大件 【下载本文PDF进行阅读】 Spring家族很庞大,从最早先出现的服务于企业级程序开发的Core、安全方面的Sec…

    Java 2023年5月30日
    0113
  • 谈谈设计对软件工程目标实现的影响

    本文从个人经验出发,谈谈设计对软件工程目标实现的影响。 一、软件工程概念 首先明确下”软件工程的概念”。 看下原文(注意,原文也有一些问题,但总体没有大毛病…

    Java 2023年6月9日
    0124
  • 第31章 Spring bean 作用域

    I must say a word about fear. It is life’s only true opponent. Only fear can defeat …

    Java 2023年6月9日
    077
  • 分享一个有意思的错误

    subList方法拆分集合问题 JAVA技术交流群:737698533 分享一个有意思的错误,先看代码 public static void main(String[] args)…

    Java 2023年6月6日
    088
  • Java设计模式14:建造者模式

    什么是建造者模式 发现很多框架的源码使用了建造者模式,看了一下觉得挺实用的,就写篇文章学习一下,顺便分享给大家。 建造者模式是什么呢?用一句话概括就是建造者模式的目的是 为了分离对…

    Java 2023年5月29日
    070
  • Java异常

    1.异常引入 package exception; @SuppressWarnings({"all"}) /** * @Author Blueshadow * …

    Java 2023年6月8日
    084
  • redis主从、哨兵主备切换搭建一步一步图解实现

    Redis支持主从复用。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。Mater Slave的模式,从Slave向Master发起SYNC命令。 可以是…

    Java 2023年6月5日
    0100
  • 一起来学习Android自定义控件2-简单的写字板控件

    概述 上一篇文章我们对自定义控件进行了一个大体的知识介绍。今天就来学习自定义一个简单的写字板控件。 先来看看效果图 就是简单的根据手指写下的轨迹去画出内容 实现 在上一篇文章里提到…

    Java 2023年6月13日
    096
  • mybatis-延迟加载

    本文主要介绍下mybatis的延迟加载,从原理上介绍下怎么使用、有什么好处能规避什么问题。延迟加载一般用于级联查询(级联查询可以将主表不能直接查询的数据使用自定义映射规则调用字表来…

    Java 2023年6月9日
    084
  • IDEA:Error: java: OutOfMemoryError: insufficient memory

    最近更新项目后一直报错,(项目有500MB+),百度说要清理一下IDEA的编译文件。 点击file,选择Invalidate Caches ,清理一下,是一种解决途径,反正我解决了…

    Java 2023年6月5日
    092
  • SpringBoot入门

    SpringBoot入门 环境准备: 1、JDK1.8以上 http://www.oracle.com/technetwork/java/javase/downloads/inde…

    Java 2023年5月30日
    066
  • spring data jpa动态查询返回自定义对象

    动态查询返回自定义对象 1、一般情况下使用spring jpa封装的JpaSpecificationExecutor和JpaRepository的接口,这个好处就是在于很多方法jp…

    Java 2023年6月8日
    079
  • Javaweb07-三层架构(BaseDao)

    1、BaseDao 持久层业务接口实现类的公共父类,定义了jdbc操作数据库的所有公共方法,方便子类继承; import java.io.InputStream; import j…

    Java 2023年6月15日
    084
  • EMT4J——让 Java 应用升级更轻松

    JDK 升级对于 Java 应用来说是不得不面对的事情,一方面 Java 生态系统希望 Java 应用能跟上最新 JDK 版本: Oracle 建议将 JDK 的 LTS 版本的发…

    Java 2023年5月29日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球