• 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>
  • 相关阅读:
    20172315 2017-2018-2 《程序设计与数据结构》第一周学习总结
    预备作业03
    寒假作业02
    寒假作业01
    2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周
    20172310 2017-2018-2 《程序设计与数据结构》第八周学习总结
    2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第一周
    20172310 《程序设计与数据结构》实验二报告
    20172310 2017-2018-2 《程序设计与数据结构》第七周学习总结
    20172310 2017-2018-2 《程序设计与数据结构》第六周学习总结
  • 原文地址:https://www.cnblogs.com/liconglong/p/13209742.html
Copyright © 2020-2023  润新知