zoukankan      html  css  js  c++  java
  • SpringCloud--Eureka--配置

       对于Eureka客户端的配置,主要分为两个部分:

        服务注册相关配置:包括注册中心地址、服务获取间隔、可用区域等内容

        服务实例相关配置:实例名称、IP地址、端口号、健康检查路径等

      而对于Eureka服务端的配置,基本上不用怎么处理,类似于一个线程的产品(这些参数均以eureka.server开头)。

      1、服务注册相关配置

      全量配置可以参照org.springframework.cloud.netflix.eureka.EurekaClientConfigBean类的属性,该类配置均已eureka.client开头,下面是一些主要的配置信息

    参数名 说明 默认值
    private Map<String, String> serviceUrl 注册中心地址  
    private int registryFetchIntervalSeconds = 30; 从Eureka服务端获取注册信息的时间间隔,单位:秒 30
    private int instanceInfoReplicationIntervalSeconds = 30; 更新实例信息变化到Eureka服务端的时间,单位:秒 30
    private int eurekaServiceUrlPollIntervalSeconds = 5 * MINUTES 轮询Eureka服务端地址更改的时间间隔,单为:秒;当我们与Spring Cloud Config配合,动态刷新Eureka的注册中心地址时,需要关注此参数 300
    private int eurekaServerReadTimeoutSeconds = 8; 读取Eureka server信息超时时间,单为:秒 8
    private int eurekaServerConnectTimeoutSeconds = 5; 连接Eureka server的超时时间,单为:秒 5
    private int eurekaServerTotalConnections = 200; 从Eureka客户端到所有Eureka服务端的连接总数 200
    private int eurekaServerTotalConnectionsPerHost = 50; 从Eureka客户端到一个Eureka服务端的连接总数 50
    private int eurekaConnectionIdleTimeoutSeconds = 30; Eureka服务端连接的空闲关闭时间,单为:秒 30
    private int heartbeatExecutorThreadPoolSize = 2; 心跳线程池的核心线程数 2
    private int heartbeatExecutorExponentialBackOffBound = 10; 心跳超时重试延迟时间的最大乘数 10
    private int cacheRefreshExecutorThreadPoolSize = 2; 缓存刷新线程池核心线程数 2
    private int cacheRefreshExecutorExponentialBackOffBound = 10; 缓存刷新超时重试延迟时间的最大乘数 10
    private boolean useDnsForFetchingServiceUrls = false; 使用DNS来获取Eureka服务端的serviceUrl false
    private boolean registerWithEureka = true; 自身是否注册到注册中心 true
    private boolean preferSameZoneEureka = true; 是否偏好使用同一zone的Eureka server true
    private boolean filterOnlyUpInstances = true; 获取实例时是否过滤,仅保留UP状态的实例 true
    private boolean fetchRegistry = true; 是否从注册中心获取注册信息 true

      2、服务实例相关配置

    全量配置可以参照org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean类的属性,该类配置均已eureka.instance开头。

    (1)元数据

      元数据是指Eureka客户端在向服务端发送注册请求时,用来描述客户端服务信息的对象。Eureka客户端的配置都是通过org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean配置并加载的,其中就包含元数据,而Eureka客户端真正发送请求时,则是使用的com.netflix.appinfo.InstanceInfo进行请求的,在该类中,详细定义了原生Eureka对元数据的定义,同时还有一个Map<String, String> metadata来表示自定义的元数据。

      对于元数据原生属性的配置为eureka.instance.key = value,其中key为EurekaInstanceConfigBean中定义的属性,而自定义属性的配置为eureka.instance.metadata.key = value,其中key为自定义的属性,具体样例如下:

      instance:
        hostname: lcl-pc2
        # 心跳检测频率
        lease-renewal-interval-in-seconds: 30
        # 服务失效时间
        lease-expiration-duration-in-seconds: 90
        metadata-map: 
          mykey: 12345

    (2)实例名配置

      实例名配置即InstanceInfo中的instanceId属性,在Eureka原生的配置中,该属性默认值是主机名,这就导致一个主机上只能运行一个Eureka服务实例,所以在Spring Cloud Eureka中,默认使用了 "主机名:项目名:实例id:端口号"   这样一组来作为最终的实例名

    ${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}}

      在之前测试的时候,由于在本地,所以改了项目的端口号,因此实例名是不一样的,但是有的时候,我们不会固定写一个端口号,而是使用server.port=${random.int}来随机获取一个端口号,如果不想使实例名中的id与项目实际端口号保持一致,我们可以对instanceId做配置,样例如下:

    eureka:
      instance:
        instance-id: ${spring.application.name}:${random.int}
    server:
      port: ${random.int[1111,9999]}

      对客户端的两个项目重新按照此配置后,重新访问注册中心:http://localhost:1111/,可以发现,两个实例名是不一样的

    (3)端点配置

      在InstanceInfo中,存在一些url的配置信息,例如应用主页地址:homePageUrl、状态页地址:statusPageUrl、健康检查地址healthCheckUrl等,其中健康检查url和状态页url都是通过spring-boot-actuator模块提供的/health端点和/info端点来访问的。例如点击注册中心中已注册的实例,访问的就是actuator中的/indo端点。

      开启这些端点,要做的就是在pom文件中引入actuator依赖

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
  • 相关阅读:
    frp反向代理+内网穿透+ Metasploit渗透windows
    FRP实现内网穿透
    FRP 内网穿透工具
    通过代理实现在校园外使用校园网内的服务 (frp内网穿透)
    戴维斯双击
    pycharm2019,3.1版本的有效激活方法
    一键对centos7.6安装python3环境已经pip3
    在linux设置/etc/vimrc 将vim 中后缀.sh的文件 的前几行进行默认输入
    Postman Interceptor和postman更改id仍然无法使用的,从这里下载相同版本的postman和interceptor插件
    Postman Interceptor安装成功却无法在Postman启用的解决办法
  • 原文地址:https://www.cnblogs.com/liconglong/p/13209742.html
Copyright © 2011-2022 走看看