一、基于本地配置文件的 Eureker配置中心搭建
1.、创建一个springBoot项目
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<component.version>0.0.1-SNAPSHOT</component.version>
<spring-cloud.version>Greenwich.SR5</spring-cloud.version>
</properties>
2、在springBoot项目中添加SpringCloud依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
3.配置项目配置文件
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
#是否将自己注册到Eureka-Server中,默认的为true
registerWithEureka: false
#是否从Eureka-Server中获取服务注册信息,默认为true
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
配置说明:
- spring.application.name: 这个是指定服务名称。
- server.port:服务指定的端口。
- eureka.client.register-with-eureka:表示是否将自己注册到Eureka Server,默认是true。
- eureka.client.fetch-registry:表示是否从Eureka Server获取注册信息,默认为true。
- eureka.client.serviceUrl.defaultZone: 这个是设置与Eureka Server交互的地址,客户端的查询服务和注册服务都需要依赖这个地址。
4.开启注解
@EnableEurekaServer //自动装配的开关
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
5.启动项目
http://localhost:8761/
二、 Spring Cloud Eureka 常见的配置属性包括:
eureka.client.serviceUrl.defaultZone:设置Eureka服务器的地址,默认是http://localhost:8761/eureka/。
eureka.client.registerWithEureka:是否向Eureka服务器注册自己,默认为true。
eureka.client.fetchRegistry:是否从Eureka服务器获取注册信息,默认为true。
eureka.client.serviceUrl.defaultZone:设置Eureka服务器的地址,默认是http://localhost:8761/eureka/。
eureka.instance.appname:指定服务注册到Eureka上的名称。
eureka.instance.hostname:指定运行该服务的主机名称。
eureka.instance.non-secure-port:指定服务的端口。
eureka.instance.lease-renewal-interval-in-seconds:Eureka客户端发送心跳的间隔时间,默认是30秒。
eureka.instance.lease-expiration-duration-in-seconds:Eureka服务端在收到最后一次心跳后等待的时间,然后会将实例移除,默认是90秒。
eureka.client.healthcheck.enabled:开启Eureka的健康检查,默认为false。
Eureka
属性名 | 说明 | 默认值 |
---|---|---|
eureka.server.enable-self-preservation | 关闭注册中心的保护机制,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者,如果关闭服务注册中心将不可用的实例正确剔除 | false |
eureka.instance.prefer-ip-address | 不使用主机名来定义注册中心的地址,而使用IP地址的形式,如果设置了eureka.instance.ip-address 属性,则使用该属性配置的IP,否则自动获取除环路IP外的第一个IP地址 | |
eureka.instance.ip-address | IP地址 | |
eureka.instance.hostname | 设置当前实例的主机名称 | |
eureka.instance.lease-renewal-interval-in-seconds | 定义服务续约任务(心跳)的调用间隔,单位:秒 | 30 |
eureka.instance.lease-expiration-duration-in-seconds | 定义服务失效的时间,单位:秒 | 90 |
eureka.instance.status-page-url-path | 状态页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置 | /info |
eureka.instance.status-page-url | 状态页面的URL,绝对路径 | |
eureka.instance.health-check-url-path | 健康检查页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置 | /health |
eureka.client.service-url | 指定服务注册中心地址,类型为 HashMap,并设置有一组默认值,默认的Key为 defaultZone;如果服务注册中心为高可用集群时,多个注册中心地址以逗号分隔如果服务注册中心加入了安全验证,这里配置的地址格式为: http://:@localhost:8761/eureka 其中 为安全校验的用户名; 为该用户的密码 | http://localhost:8761/eureka |
eureka.client.fetch-registery | 检索服务 | true |
eureka.client.registery-fetch-interval-seconds | 从Eureka服务器端获取注册信息的间隔时间,单位:秒 | 30 |
eureka.client.allow-redirects | 指示服务器是否可以将客户端请求重定向到备份服务器/集群 | false |
eureka.client.availability-zones | 获取此实例所在区域的可用性区域列表 | |
eureka.client.backup-registry-impl | 获取执行BackupRegistry的实现的名称 | |
eureka.client.cache-refresh-executor-exponential-back-off-bound | 缓存刷新执行者指数退出相关属性 | 10 |
eureka.client.cache-refresh-executor-thread-pool-size | cacheRefreshExecutor初始化的线程池大小 | 2 |
eureka.client.client-data-accept | EurekaAccept客户端数据接受名称 | |
eureka.client.disable-delta | 指示eureka客户端是否应该禁用提取delta | |
eureka.client.dollar-replacement | 在eureka服务器的序列化/反序列化信息期间,获取Dollar符号 $ </ code>的替换字符串 | _ |
eureka.client.enabled | 标记是否启用Eureka客户端 | true |
eureka.client.escape-char-replacement | 在eureka服务器的序列化/反序列化信息期间获取下划线符号_</ code>的替换字符串 | __ |
eureka.client.eureka-connection-idle-timeout-seconds | 表示到eureka服务器的HTTP连接可以在关闭之前保持空闲状态的时间(以秒为单位) | 30 |
eureka.client.eureka-server-connect-timeout-seconds | 指示在连接到eureka服务器需要超时之前等待(以秒为单位)的时间 | 5 |
eureka.client.eureka-server-d-n-s-name | 获取要查询的DNS名称以获取eureka服务器的列表 | |
eureka.client.eureka-server-port | 获取用于构建服务url的端口 | |
eureka.client.eureka-server-read-timeout-seconds | 指示从eureka服务器读取之前需要等待(秒)多久才能超时 | 8 |
eureka.client.eureka-server-total-connections | 获取从eureka客户端到所有eureka服务器允许的总连接数 | 200 |
eureka.client.eureka-server-total-connections-per-host | 获取从eureka客户端到eureka服务器主机允许的总连接数 | 50 |
eureka.client.eureka-server-u-r-l-context | 获取用于构建服务网址的URL上下文,以便在eureka服务器列表来自DNS时联系eureka服务器 | |
eureka.client.eureka-service-url-poll-interval-seconds | 表示轮询对eureka服务器信息进行更改的频率(以秒为单位) | 0 |
eureka.client.fetch-registry | 指示该客户端是否应从eureka服务器获取eureka注册表信息 | true |
eureka.client.fetch-remote-regions-registry | 逗号分隔将获取eureka注册表信息的区域列表 | |
eureka.client.filter-only-up-instances | 指示是否在仅具有InstanceStatus UP状态的实例的过滤应用程序之后获取应用程序 | true |
eureka.client.g-zip-content | 从服务器支持时,是否必须压缩从eureka服务器提取的内容 | true |
eureka.client.heartbeat-executor-exponential-back-off-bound | 心跳执行者指数回撤相关财产 | 10 |
eureka.client.heartbeat-executor-thread-pool-size | heartbeat执行器初始化的线程池大小 | 2 |
eureka.client.initial-instance-info-replication-interval-seconds | 指示将实例信息复制到eureka服务器的开始时间(以秒为单位) | 40 |
eureka.client.instance-info-replication-interval-seconds | 指示复制要复制到eureka服务器的实例更改的频率(以秒为单位) | 30 |
eureka.client.log-delta-diff | 指示在注册表信息方面是否记录eureka服务器和eureka客户端之间的差异 | false |
eureka.client.on-demand-update-status-change | 如果设置为true,则通过ApplicationInfoManager进行的本地状态更新将触发对远程eureka服务器的按需(但限速)注册/更新 | true |
eureka.client.prefer-same-zone-eureka | 指示此实例是否应尝试在同一区域中使用eureka服务器延迟和/或其他原因 | |
eureka.client.proxy-host | 获取代理主机到eureka服务器(如果有的话) | |
eureka.client.proxy-password | 获取代理密码(如果有) | |
eureka.client.proxy-port | 获取代理端口到eureka服务器(如果有的话) | |
eureka.client.proxy-user-name | 获取代理用户名(如果有) | |
eureka.client.region us-east-1 | 获取此实例所在的区域 | |
eureka.client.register-with-eureka | 指示此实例是否应将其信息注册到eureka服务器以供其他人发现 | true |
eureka.client.registry-fetch-interval-seconds | 指示从eureka服务器获取注册表信息的频率(以秒为单位) | 30 |
eureka.client.registry-refresh-single-vip-address | 指示客户端是否只对单个VIP的注册表信息感兴趣 | |
eureka.client.service-url | 可用性区域映射到与eureka服务器通信的完全限定URL的列表。每个值可以是单个URL或逗号分隔的替代位置列表 | |
eureka.client.use-dns-for-fetching-service-urls | 指示eureka客户端是否应该使用DNS机制来获取要与之通信的eureka服务器列表。 | false |
eureka.dashboard.enabled | 标志以启用Eureka仪表板 | true |
eureka.dashboard.path | 到Eureka仪表板(相对于servlet路径)的路径 | “/” |
eureka.instance.a-s-g-name | 获取与此实例关联的AWS自动缩放组名称。 | |
eureka.instance.app-group-name | 获取要在eureka中注册的应用程序组的名称 | |
eureka.instance.appname | 获取要在eureka注册的应用程序的名称 | unknown |
eureka.instance.data-center-info | 返回此实例部署的数据中心 | |
eureka.instance.health-check-url | 获取此实例的绝对运行状况检查页面URL |