Eureka设置服务上下线&Spring Cloud应用优雅上下线

本文介绍了如何使用Eureka设置服务的被动和主动上下线,包括通过HTTP请求、Java和Python程序执行的方式。同时,讨论了利用Spring Boot Actuator控制服务上下线的策略,并详细阐述了Spring Cloud应用的优雅上下线流程,涉及到服务注册中心的移除、应用重启及恢复。最后提到了Eureka的配置优化方法。
部署运行你感兴趣的模型镜像

精选30+云产品,助力企业轻松上云!>>> hot3.png

Eureka设置服务上下线

被动下线(默认)

等待若干秒后,eureka server自动剔除失效的服务地址。(见Eureka配置优化)

直接执行http请求
  • shell命令执行(成功:200;失败:404,500)
# 如果服务还存活着,那么在一定的时间内,服务会重新注册(非强制)
curl -X DELETE "http://[ip]:[port]/eureka/apps/[your_app_name]/[your_instance_id]" -I
# 强制上线/下线/移除服务(强制)
curl -X PUT "http://192.168.1.248:8761/eureka/apps/CONFIG-SERVER/192.168.1.248:8088/status?value=UP" -I
curl -X PUT "http://192.168.1.248:8761/eureka/apps/CONFIG-SERVER/192.168.1.248:8088/status?value=DOWN" -I
curl -X PUT "http://192.168.1.248:8761/eureka/apps/CONFIG-SERVER/192.168.1.248:8088/status?value=OUT_OF_SERVICE" -I
# 恢复以上强制操作为原始状态(解除强制覆盖:如果不加参数status的话,先初始化为UNKOWN状态,随即更新其真实状态)
curl -X DELETE "http://192.168.1.248:8761/eureka/apps/CONFIG-SERVER/192.168.1.248:8088/status?value=[status(,or you can ignore this param)]" -I
  • POSTMAN执行(具体功能同上)

Java程序执行(强制)
@RestController
public class OfflineController {
    @GetMapping("/offline")
    public String offline() {
        DiscoveryManager.getInstance().shutdownComponent();
        return "offline OK";
    }
}

OR

@RestController
public class OfflineController {
    @Autowired
    private EurekaClient discoveryClient;
    @GetMapping("/offline2")
    public String offline2() {
        discoveryClient.shutdown();
        discoveryClient = null;
        return "offline OK2";
    }
}
Python程序执行(非强制)
pip install py_eureka_client
#!/usr/bin/env python3
import eureka_client
eureka_client.cancel('http://192.168.1.248:8761/eureka/', app_name, id)

参考:

通过Spring Boot Actuator控制服务上下线

参考:ENDPOINT: shutdown、pause、service-registry

Spring Cloud应用优雅上下线(集成发布系统)

  1. 从注册中心强制移除服务,curl -X PUT "http://192.168.1.248:8761/eureka/apps/CONFIG-SERVER/192.168.1.248:8088/status?value=OUT_OF_SERVICE" -I
  2. 等待若干时间之后(等待各个端和组件对服务列表的缓存过期),发布重启应用(先用kill -15 [pid],若干时间后再按需kill -9 [pid]);
  3. 从注册中心恢复服务,覆盖之前的强制状态(修改method即可),curl -X DELETE "http://192.168.1.248:8761/eureka/apps/CONFIG-SERVER/192.168.1.248:8088/status?value=OUT_OF_SERVICE" -I,等待若干时间即可生效;
  4. 按照以上步骤1-3发布其他应用节点(灰度发布)

Eureka配置优化

https://docs.qq.com/doc/DTUJSUW9jUFFpZXp0?appid=101520907&od_appid=101520907&from=weiyun

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值