1、POM配置
和普通Spring Boot工程相比,仅仅添加了Eureka Server依赖和Spring Cloud依赖管理
<dependencies>
<!--添加Eureka Server依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies>
<!--Spring Cloud依赖版本管理--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
02、使能Eureka Server
@SpringBootApplication @EnableEurekaServer//使能Eureka Server服务 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
03、src/main/resources工程配置文件
a)仅启动单台Eureka Server服务器时,application.yml配置文件内容如下
spring:
application:
name: eureka-server #应用名,服务消费者通过此名访问服务提供者
server:
port: 1000 # 指定该Eureka实例的端口
eureka:
instance:
hostname: discovery # 指定该Eureka实例的主机名
#每个Eureka Server同时也启动一个Eureka Client,
client:
registerWithEureka: false #不将此Eureka Client注册到Eureka Server
fetchRegistry: false #此Eureka Client不从Eureka Server获取注册实例
serviceUrl:
defaultZone: http://discovery:1000/eureka/ #defaultZone不能写成default-zone
b)Eureka Server启动2台时
application-peer1.yml配置文件内容如下
spring:
application:
name: eureka-server #应用名
server:
port: 1001 #服务启动端口
eureka:
server:
enable-self-preservation: false #不使能自我保护功能。15min内,失效的服务超过85%时,不进入保护模式
instance:
hostname: peer1 #主机名字,须要在C:/Windows/System32/drivers/etc/hosts或Linux中/etc/hosts中添加映射127.0.0.1 peer1
client:
serviceUrl:
defaultZone: http://peer2:1002/eureka/ #此Eureka Client注册到的Eureka Server的地址
application-peer2.yml配置文件内容如下
spring:
application:
name: eureka-server #应用名字
server:
port: 1002 #服务启动端口
eureka:
server:
enable-self-preservation: false #不使能自我保护功能。15min内,失效的服务超过85%时,不进入保护模式
instance:
hostname: peer2 #主机名字,须要在C:/Windows/System32/drivers/etc/hosts或Linux中/etc/hosts中添加映射127.0.0.1 peer1
client:
serviceUrl:
defaultZone: http://peer1:1001/eureka/ #此Eureka Client注册到的Eureka Server的地址
04、其它常见配置项
Eureka Server相关
剔除周期:eureka.instance.lease-expiration-duration-in-seconds=90 连续3次没收到Eureka Client实例的心跳,此Eureka Client实例会在扫描时被剔除
扫描过期服务周期:eureka.server.eviction-interval-timer-in-ms=60 没60s扫描一次过期的Eureka Client实例,若示例超过90s无心跳,则剔除
自我保护开关:eureka.server.enable-self-preservation=true 30min内85%服务被剔除,则进入保护状态。保护状态内,不在剔除服务实例
Eureka Client相关
报告心跳周期:eureka.instance.lease-renewal-interval-in-seconds=30 Eureka Client每隔30s向注册的Eureka Server报告心跳
服务更新周期:eureka.client.registry-fetch-interval-seconds=30 Eureka Client每隔30s更新服务提供者的可用清单