spring-cloud-eureka部署方式
单机部署
1.pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.启动类
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
3.properties
server.port=7000
spring.application.name=eureka-server
#是否将自己注册到指定的注册中心中(指定注册中心地址为eureka.client.service-url.defaultZone所配置地址)
eureka.client.register-with-eureka=false
#是否从指定的注册中心中拉取服务列表(指定注册中心地址为eureka.client.service-url.defaultZone所配置地址)
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://eureka-server.com:7000/eureka/
eureka.instance.hostname=eureka-server.com
#关闭自我保护机制
#eureka.server.enableSelfPreservation=false
eureka.server.renewalPercentThreshold=0.49
如果出现如下错误,则添加配置eureka.server.enableSelfPreservation=false或者eureka.server.renewalPercentThreshold=0.49
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
配置eureka.server.enableSelfPreservation=false会出现如下警告:
THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
高可用部署
这里以两个节点为例:
1.pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.启动类
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
3.properties
注意:
每个节点的spring.application.name必须相同,eureka.instance.hostname必须不同
eureka.client.service-url.defaultZone是需要注册的注册中心的地址,如果有多台,需要列出多台,比如:
eureka.client.service-url.defaultZone=http://euk2.com:7002/eureka/,http://euk3.com:7003/eureka/
Properties1.
spring.application.name=EurekaServer
server.port=7001
eureka.client.service-url.defaultZone=http://euk2.com:7002/eureka/
eureka.instance.hostname=euk1.com
Properties2.
spring.application.name=EurekaServer
server.port=7002
eureka.client.service-url.defaultZone=http://euk1.com:7001/eureka/
eureka.instance.hostname=euk2.com
服务注册
1.pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.启动类
@EnableEurekaClient
@SpringBootApplication
public class EurekaProviderApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaProviderApplication.class, args);
}
}
3.properties
server.port=8000
spring.application.name=eureka_provider
eureka.client.service-url.defaultZone=http://eureka-server.com:7000/eureka/
如果出现如下错误,检查一下是否缺少spring-boot-starter-web依赖
Unregistering application EUREKA_PROVIDER with eureka with status DOWN
Saw local status change event StatusChangeEvent [timestamp=1604335224866, current=DOWN, previous=UP]
Shutting down DiscoveryClient ...