一、关于服务下线。
1、直接kill掉具体的服务。但是这种方式会在eureka的心跳发送时间点内,该实例还会存在。导致出现服务不可用异常。以下是配置心跳的方式:
#Server服务端
server:
port: 8761
eureka:
client:
#实例是否在eureka服务器上注册自己的信息以提供其他服务发现,默认为true
register-with-eureka: false
#此客户端是否获取eureka服务器注册表上的注册信息,默认为true
fetch-registry: false
server:
#开启自我保护模式
enable-self-preservation: false
#清理无效节点,默认60*1000毫秒,即60秒
eviction-interval-timer-in-ms: 5000
#Client客户端
spring:
application:
name: ek-provider
eureka:
instance:
#eureka客户端需要多长时间发送心跳给eureka服务器,表明他仍然或者,默认30秒
lease-renewal-interval-in-seconds: 5
#eureka服务器在接受到实力的最后一次发出的心跳后,需要等待多久才可以将此实力删除
lease-expiration-duration-in-seconds: 10
metadata-map:
company-name: eureka
client:
#表示eureka client间隔多久去拉取服务器注册信息,默认为30秒
registry-fetch-interval-seconds: 30
#表示eureka client间隔多久去拉取服务器注册信息,默认为30秒
registry-fetch-interval-seconds: 30registry-fetch-interval-seconds: 30
serviceUrl:
defauiltZone: http://localhost:8761/eureka/
2、调用接口的方式下线服务
发送一个delete 请求
http://你的注册中心zone/apps/你的实例名称/你的实例地址加端口
// demo
http://xxx.xxx.xxx.xxx:8761/eureka/apps/PTC/iZ2rderl3j12llZ:ptc:2703
3、客户端可以通过如下代码主动通知注册中心下线:
DiscoveryManager.getInstance().shutdownComponent();
二、关于开发时的调试。
开发环境,由于服务用在同一个注册中心,在debug发布调试的时候,会有服务的上线下线。导致需要重启服务之类的。
1、哈哈哈哈,建议nacos,可以直接让服务上线下线,调试小能手。
2、另外有中服务端的代码可以直接在本地debug的方法,也是突然听说的,感觉好申请。远程debug,有兴趣的铁子,可以去研究研究。