springcloud eureka在单机模式下容易进入自我保护模式怎么办?

springcloud eureka作为springcloud的服务中心,主要分为两个方向,

一个是server端,

一个是client端。

client需要向server注册,并向server定时发送心跳,server会统计一定时间的心跳率,如果低于某一个值,就会触发server的自我保护机制。

这里这个自我保护机制很好理解,在做微服务的时候,如果网络太差,可能一个服务已经下线(可以理解为挂了),这个时候,server还是需要去接受心跳,但是心跳会等很久,这个时候,为了保证微服务是OK的,server就会进入自我保护机制,片面的认为,这个服务,还存在着。这样就可能导致本来一个服务已经挂了,但是强行调用,会报错。

报错如下:

在服务器上运行微服务的时候,不需要处理自我保护,因为这个机制,对于服务器来说,很好用。

但是在单机进行开发的时候,就需要关闭了,这样方便自己开发。

操作如下:

在eureka的sever端中,设置eureka.server.enable-self-preservation为false即可。

代码如下:

修改application.yml文件(如果使用properties,一样修改即可):

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    #关闭自我保护
    enable-self-preservation: false
spring:
  application:
    name: eurka-server

OK,然后重启服务端即可。

你可能感兴趣的:(分布式)