springcloud (七) actuator服务监管配置、服务发现Discovery以及eureka自我保护

9 篇文章 0 订阅
3 篇文章 0 订阅
本文介绍了如何配置Eureka服务ID以实现更精细化的管理,以及如何展示服务实例的IP地址。此外,详细讲解了如何使用DiscoveryClient获取注册中心的服务信息,并展示了通过@EnableDiscoveryClient注解启用服务发现功能。最后,讨论了Eureka的自我保护模式,解释了如何关闭此模式以及调整心跳和剔除设置以快速验证效果。
摘要由CSDN通过智能技术生成

配置eureka服务id

未配置之前

配置

eureka:
  instance:
    hostname: localhost
    #配置服务id
    instance-id: payment8002

配置后

服务改为自定义id,更方便管理,可以根据地区,ip来做细化

 

配置显示ip

未配置前

 

配置

eureka:
  instance:
    hostname: localhost
    instance-id: payment8002
    #显示ip
    prefer-ip-address: true

配置后

显示变为ip,更好区分

 

Discovery配置

客户端想获取注册中心中有那些注册好的服务,如何才能做到?这时候就需要 Discovery(服务发现)

1. 引入DiscoveryClient

    @Resource
    private DiscoveryClient discoveryClient;

2.编写获取配置代码

 @GetMapping("/getDiscovery")
    public Object getDiscovery(){
        List<String> services = discoveryClient.getServices();
        //获取所有服务名
        for (String service : services) {
            log.info("================:" + service);
        }

        //获取单个服务的注册信息
        List<ServiceInstance> instances = discoveryClient.getInstances("cloud-payment-service");

        for (ServiceInstance instance : instances) {
            log.info("*******************"+instance.getHost() + "\t" + instance.getPort() + "\t" + instance.getUri());
        }


        return this.discoveryClient;
    }

3.启动类添加注解

@EnableDiscoveryClient
public class PaymentMain8001 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8001.class,args);
        log.info("=========================启动完成==============================");
    }
}

 

3.重启,并测试 http://127.0.01:8001/Payment/getDiscovery

可以看到界面输出

打开控制台

测试成功

 

eureka自我保护

如果看到这段提示,那就是eureka进入了自我保护模式,只要进入了自我保护,euaeka将不会注销任何微服务

默认情况下 eurekaserver端在一定时间内(90s) 没有收到客户端的心跳就会将服务剔除,但在短时间内(90s)突然失去大量客户端,eureka就会进入自我保护模式


如何让关闭自我保护机制

服务端配置

eureka:
  server:
    #关闭自我保护机制
    enable-self-preservation: false
    ##剔除服务时间 ms
    eviction-interval-timer-in-ms: 2000

为了快速显示效果,配置客户端剔除时间以及心跳时间

eureka:
  instance:
    hostname: localhost
    instance-id: payment8002
    #显示ip
    prefer-ip-address: true
    #客户端定时像服务端发送心跳时间间隔 秒
    lease-renewal-interval-in-seconds: 1
    #服务的收到最后一次心跳等待时间上限 超市剔除
    lease-expiration-duration-in-seconds: 2

测试


 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值