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)

大家都在看

  • 设计模式–Bulider模式

    起因:最近在做统计计算,创建的实体中属性比较多,都是一些数值,一开始是通过get、set方法进行赋值,占用了很多业务代码方法的长度,可读…

    Java 2023年6月5日
    076
  • 软件工程师的四大台阶

    新手:前调执行力,按照方法一步步做,确保每一步不会出错就行 进阶:强调设计能力,对上级提出的要求/任务 进行抽象、 拆解(任务的拆解很有技术含量),并独立设计解决方案 高手:需要融…

    Java 2023年6月15日
    095
  • Nacos + Gateway网关搭建微服务

    1、Docker 部署 Nacos 数据库准备 新建 “nacos_config” 数据库 在https://github.com/alibaba/naco…

    Java 2023年6月13日
    058
  • Git常用命令整理

    Git常用命令整理 Git 常用命令 //初始化工作区 git init //查看工作区状态 git status //将文件添加到暂存区 git add //将文件从暂存区中移除…

    Java 2023年6月8日
    071
  • 深入源码理解Spring整合MyBatis原理

    写在前面 聊一聊MyBatis的核心概念、Spring相关的核心内容,主要结合源码理解Spring是如何整合MyBatis的。(结合右侧目录了解吧) MyBatis相关核心概念粗略…

    Java 2023年6月6日
    083
  • 消息粘包 和 消息不完整 问题

    消息粘包 和 消息不完整 问题 消息粘包 和 消息不完整问题 其实都是应用层会带来的问题,和TCP 没关系,TCP 是能够保证消息的顺序 和 完整性的本篇只是简单说明一下 什么是 …

    Java 2023年6月9日
    078
  • 【进阶】Spring中的注解与反射

    【进阶】Spring中的注解与反射 【进阶】Spring中的注解与反射 前言 一、内置(常用)注解 1.1@Overrode 1.2@RequestMapping 1.3@Requ…

    Java 2023年6月6日
    071
  • 线上Redis高并发连接失败问题排查

    项目背景 最近,做一个按优先级和时间先后排队的需求。用 Redis 的 sorted set 做排队队列。 主要使用的 Redis 命令有, zadd, zcount, zscor…

    Java 2023年6月5日
    076
  • 过滤器(Filter)

    过滤器(Filter) Filter: 用来过滤网站的数据 filter的用法和servlet基本一样 作用: 处理中文乱码 登录验证等等 有了过滤器,我们就不需要在每个servl…

    Java 2023年6月13日
    056
  • 【原创】jssh linux scp ssh 免密登录开源工具

    项目名 JSSH git地址: 项目介绍 linux scp(文件上传,下载) shell命令的java ssh jar和linux expect工具,主要是避免shell 密码手…

    Java 2023年6月8日
    077
  • 用浏览器连接服务器-安装新的虚拟机

    (1)在浏览器上输入https://10.100.0.249/ – 登录 (2)选中”虚拟机”,右键选择”创建/注册虚拟机&#822…

    Java 2023年5月30日
    080
  • SpringCloud 上

    Spring Cloud 是在 Spring Boot 基础上构建的, 用于检查分布式系统构建的工具集. 工具集包括 配置管理, 服务发现, 智能路由,断路器,为代理和控制总线. …

    Java 2023年5月30日
    050
  • Springboot之 Mybatis 多数据源实现

    简介 上篇讲解了 JPA 多数据源实现;这篇讲解一下 Mybatis 多数据源实现 。主要采用将不同数据库的 Mapper 接口分别存放到不同的 package,Spring 去扫…

    Java 2023年6月7日
    060
  • 头秃了,二十三张图带你从源码了解Spring Boot 的启动流程~

    前言 源码版本 从哪入手? 源码如何切分? 如何创建SpringApplication? 设置应用类型 设置初始化器(Initializer) 设置监听器(Listener) 设置…

    Java 2023年6月14日
    080
  • JAVA面向对象的三大主线

    1、类及类的成员:属性、对象、构造器、代码块、内部类 2、特性:封装、继承、多态 3、其它关键字 面向过程:主要考虑解决问题,以函数为最小单位,考虑怎么做 面向对象:主要考虑谁去做…

    Java 2023年6月15日
    072
  • maven工程servlet实例之指定web资源包以及导入项目依赖的jar包以及jar包冲突解决

    maven工程servlet实例之指定web资源包 在webapp包下可以直接创建jsp文件 ,但是在java包下我们不可以直接创建jsp文件。 如果想要在java包下创建jsp文…

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