多节点的情况下每次下线某节点,nacos不会立即剔除某服务,有本地缓存在的时间节点上,如果路由到了该服务,会反馈服务异常,这样会造成调用方执行异常处理(重试或熔断等),由此可以在系统中暴露一个接口,主动将该节点从nacos中下线,中间给到一段缓冲的时间,再将服务关闭;这样弥补了节点下线后因nacos自身缓存发生的异常事件,整个过程会比之前更顺畅;
代码编写大概是这样的:使用ConditionalOnClass注解拿到nacos的NacosAutoServiceRegistration这个类的bean,他自身提供了节点下线方法
直接调用即可,随后让当前线程sellp一段设定的时间,然后关闭spring服务-->SpringApplication.exit