服务发现:Spring Cloud Netflix Eureka

2020-05-19  本文已影响0人  睦月MTK

声明:入门级文档,更多内容会持续更新,不足之处,望不吝指点


一、服务(注册)中心
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
@EnableEurekaServer
@SpringBootApplication
public class ServiceRegistryAndDiscoverServerEndApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServiceRegistryAndDiscoverServerEndApplication.class, args);
    }
}
#不向注册中心注册自己
eureka.client.register-with-eureka=false
#注册中心本身不需要拉去服务列表
eureka.client.fetch-registry=false
#是否开启保护模式
eureka.server.enableSelfPreservation = true
#设置应收心跳数与实际心跳数的比值,其实就是根据理论实际心跳数来设置阈值
eureka.server.renewal-percent-threshold=0.85
#设置Eureka清理无效服务的间隔
eureka.server.eviction-interval-timer-in-ms=60000
@EventListener
public void listen(EurekaRegistryAvailableEvent event){
    System.out.println("注册中心启动");
}

二、客户端(服务)
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
@SpringBootApplication
@EnableEurekaClient
public class ServiceRegistryAndDiscoverApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServiceRegistryAndDiscoverApplication.class, args);
    }

}
# 应用(服务)的名字
spring.application.name=server-client-1
#Eureka 注册中心的地址
eureka.client.service-url.defaultZone=http://username:password@localhost:8761/eureka/

实际上注册中心的配置是eureka.client.service-url,defaultZone不过是个键名罢了

eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
#每隔多少秒发送一次心跳信息
eureka.instance.lease-renewal-interval-in-seconds=30
#自上次发送心跳数据后,多少秒后未接到该服务的心跳数据,可以认为该服务下线并可以进行删除
eureka.instance.lease-expiration-duration-in-seconds=90
#是否启用/actuator/health来进行服务的健康检查而不是使用心跳数据
eureka.client.healthcheck.enabled=false
eureka.instance.non-secure-port-enabled=false
eureka.instance.secure-port-enabled=true
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jersey.contribs</groupId>
            <artifactId>jersey-apache-client4</artifactId>
        </exclusion>
    </exclusions>
</dependency>
eureka.client.refresh.enable=false
#配置服务的状态信息页面,第一个是绝对路径,第二个是相对路径
#eureka.instance.status-page-url
eureka.instance.status-page-url-path=${server.servletPath}/info
#配置服务的健康信息页面,第一个是绝对路径,第二个是相对路径
#eureka.instance.health-check-url
eureka.instance.health-check-url-path=${server.servletPath}/health

参考文档:
[1] Spring Cloud Netflix

上一篇下一篇

猜你喜欢

热点阅读