springcloud eureka作为springcloud的服务中心,主要分为两个方向,
一个是server端,
一个是client端。
client需要向server注册,并向server定时发送心跳,server会统计一定时间的心跳率,如果低于某一个值,就会触发server的自我保护机制。
这里这个自我保护机制很好理解,在做微服务的时候,如果网络太差,可能一个服务已经下线(可以理解为挂了),这个时候,server还是需要去接受心跳,但是心跳会等很久,这个时候,为了保证微服务是OK的,server就会进入自我保护机制,片面的认为,这个服务,还存在着。这样就可能导致本来一个服务已经挂了,但是强行调用,会报错。
【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,然后重启服务端即可。
推荐阅读
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- docker|Docker
- #|7.分布式事务管理
- python|PyTorch单机多卡分布式训练教程及代码示例
- 分布式 | 动态调整 DBLE 内线程池的数目