2. Eureka

1. Eureka 用户认证

导入用户认证依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
security.basic.enabled=true
spring.security.user.name=admin
spring.security.user.password=admin

关闭 CSRF:

@EnableWebSecurity
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // 关闭 csrf
        http.csrf().disable();
        // 开启认证:URL 格式登录必须是 httpBasic
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
    }
}

客户端改造:
eureka.client.serviceUrl.defaultZone=http://admin:admin@localhost:8763/eureka/

2. 服务续约保活

客户端配置:

#服务续约,心跳的时间间隔,单位 s
eureka.instance.lease-renewal-interval-in-seconds=30
#如果从前一次发送心跳时间起,90s 没接收到新的心跳,将剔除服务
eureka.instance.lease-expiration-duration-in-seconds=90
#表示eureka client 间隔多久去拉取服务注册信息,默认为 30s
eureka.client.registry-fetch-interval-seconds=30

服务端配置:

#eureka server清理无效节点的时间间隔,默认60000毫秒,即60秒
eureka.server.eviction-interval-timer-in-ms=60000

3. 健康检测

依赖 jar:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
#开启健康检测
eureka.client.healthcheck.enabled=true
@Configuration
public class MicroWebHealthIndicator implements HealthIndicator {

    @Override
    public Health health() {
        //这个状态就是检测数据库是否连接OK
        if (UserController.canVisitDb) {
            return new Health.Builder(Status.UP).build();
        } else {
            return new Health.Builder(Status.DOWN).build();
        }
    }
}

4. 服务下线

发送 DELETE 请求:
http://localhost:8763/eureka/apps/MICRO-ORDER/localhost:micro-order:8084

5. Eureka 自我保护

#自我保护模式,当出现出现网络分区、eureka 在短时间内丢失过多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka 也不会将其删除,默认为true
eureka.server.enable-self-preservation=true

开启自我保护,会在 eureka.instance.lease-expiration-duration-in-seconds 内没有心跳删除服务,如果关闭自我保护,会在很短的时间内删除服务。

6. Eureka 高可用

Eureka 1:

server.port=8761
eureka.instance.hostname=Eureka8761
#是否注册到eureka
eureka.client.registerWithEureka=true
#是否从eureka中拉取注册信息
eureka.client.fetchRegistry=true
##暴露eureka服务的地址
eureka.client.serviceUrl.defaultZone=http://admin:admin@Eureka8762.com:8762/eureka/

#自我保护模式,当出现出现网络分区、eureka在短时间内丢失过多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka也不会将其删除,默认为true
eureka.server.enable-self-preservation=false

security.basic.enabled=true
spring.security.user.name=admin
spring.security.user.password=admin

Eureka 2:

server.port=8762
eureka.instance.hostname=Eureka8762
#是否注册到eureka
eureka.client.registerWithEureka=true
#是否从eureka中拉取注册信息
eureka.client.fetchRegistry=true
##暴露eureka服务的地址
eureka.client.serviceUrl.defaultZone=http://admin:admin@Eureka8761.com:8761/eureka/

#自我保护模式,当出现出现网络分区、eureka在短时间内丢失过多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka也不会将其删除,默认为true
eureka.server.enable-self-preservation=false

security.basic.enabled=true
spring.security.user.name=admin
spring.security.user.password=admin

客户端配置:

eureka.client.serviceUrl.defaultZone=http://admin:admin@Eureka8761.com:8761/eureka/,http://admin:admin@Eureka8762.com:8762/eureka/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值