博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eureka 主动下线服务
阅读量:6103 次
发布时间:2019-06-20

本文共 1181 字,大约阅读时间需要 3 分钟。

原因:

  测试环境由于机器换ip,神奇的出现了更新之前,之后的IP同时在Eureka上注册了。

 

方法一:直接停掉服务

  默认情况下,如果Eureka Server在90秒没有收到Eureka客户的续约,它会将实例从其注册表中删除。但这种做法的不好之处在于, 客户端已经停止了运行,但仍然在注册中心的列表中。 虽然通过一定的负载均衡策略或使用熔断器可以让服务正常进行,但有没有方法立刻下架服务

 

方法二:发送delete请求

  为了让注册中心马上知道服务要下线, 可以向eureka 注册中心发送delete 请求

  格式为 /eureka/apps/{application.name}/

  例如:

   postman: delete 请求 http://192.168.70.11:8080/eureka/apps/METADATA-PLAT/192.168.70.5:metadata-plat:9988

 

 

值得注意的是,Eureka客户端每隔一段时间(默认30秒)会发送一次心跳到注册中心续约。

如果通过这种方式下线了一个服务,而没有及时停掉的话,该服务很快又会回到服务列表中。

所以,可以先停掉服务,再发送请求将其从列表中移除。 

 

方法三:客户端主动通知注册中心下线 

  如果你的eureka客户端是是一个spring boot应用,可以通过调用以下代码通知注册中心下线。 

  DiscoveryManager.getInstance().shutdownComponent();

 

@RestControllerpublic class HelloController {    @Autowired    private DiscoveryClient client;     @RequestMapping(value = "/hello", method = RequestMethod.GET)    public String index() {        java.util.List
instances = client.getInstances("hello-service"); return "Hello World"; } @RequestMapping(value = "/offline", method = RequestMethod.GET) public void offLine(){ DiscoveryManager.getInstance().shutdownComponent(); }

  

 

  

 

转载于:https://www.cnblogs.com/KyleXu/p/9990368.html

你可能感兴趣的文章
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
iOS13-适配夜间模式/深色外观(Dark Mode)
查看>>
网易跟贴这么火,背后的某个力量不可忽视
查看>>
企业级java springboot b2bc商城系统开源源码二次开发-hystrix参数详解(八)
查看>>
java B2B2C 多租户电子商城系统- 整合企业架构的技术点
查看>>
IOC —— AOP
查看>>
比特币现金将出新招,推动比特币现金使用
查看>>
数据库的这些性能优化,你做了吗?
查看>>
某大型网站迁移总结(完结)
查看>>
mysql的innodb中事务日志(redo log)ib_logfile
查看>>
部署SSL证书后,网页内容造成页面错误提示的处理办法
查看>>
MS SQLSERVER通用存储过程分页
查看>>
60.使用Azure AI 自定义视觉服务实现物品识别Demo
查看>>
Oracle 冷备份
查看>>
jq漂亮实用的select,select选中后,显示对应内容
查看>>
C 函数sscanf()的用法
查看>>