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

springcloud eureka作为springcloud的服务中心,主要分为两个方向,
一个是server端,
一个是client端。
client需要向server注册,并向server定时发送心跳,server会统计一定时间的心跳率,如果低于某一个值,就会触发server的自我保护机制。
这里这个自我保护机制很好理解,在做微服务的时候,如果网络太差,可能一个服务已经下线(可以理解为挂了),这个时候,server还是需要去接受心跳,但是心跳会等很久,这个时候,为了保证微服务是OK的,server就会进入自我保护机制,片面的认为,这个服务,还存在着。这样就可能导致本来一个服务已经挂了,但是强行调用,会报错。
【springcloud eureka在单机模式下容易进入自我保护模式怎么办()】报错如下:
springcloud eureka在单机模式下容易进入自我保护模式怎么办()
文章图片

在服务器上运行微服务的时候,不需要处理自我保护,因为这个机制,对于服务器来说,很好用。
但是在单机进行开发的时候,就需要关闭了,这样方便自己开发。
操作如下:
在eureka的sever端中,设置eureka.server.enable-self-preservation为false即可。
代码如下:
修改application.yml文件(如果使用properties,一样修改即可):

server: port: 8761eureka: 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,然后重启服务端即可。

    推荐阅读