微服务在弹性云实现无损发布实践

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

1. 背景

原来的系统是个单体服务,导致逻辑越来越复杂,牵一发而动全身。为了提高系统的可扩展性,我们把原来的单体系统,按照功能拆分成不同的微服务。

spring-cloud

2. 弹性云配置

我们所有的微服务都是部署在弹性云上的,希望在部署服务时能够做到无损发布。要做到这一点,以下几个步骤是需要实现的:

  1. 容器销毁之前服务进程能够主动从eureka注册中心列表中删除;
  2. 在eureka注册中心列表删除实例后,该实例在一定的时间内还要能够承接一些流量,因为此时其他eureka客户端还有该实例的缓存;
  3. 最后等待其他线程全部处理完成后,再销毁容器。

下面看下如何实现上面的需求。

2.1 eureka主动下线方式

有以下几种eureka注册中心服务下线的方式:

  1. 直接kill服务

这种方式简单粗暴,但是在这种情况下,虽然客户端已经停止服务了,但是仍然存在于注册中心列表中,会造成部分模块调用时出错,所以这个方案pass。
2. 向Eureka service发送delete请求

http://{eureka-server:port}/eureka/apps/{application.name}/{instance.name}

这种方案只是取消注册服务,但是当eureka服务再一次接收到心跳请求时,会重新把这个实例注册到eureka上,所以这个方案也pass了。
3. 客户端通知Eureka service下线

DiscoveryManager.getInstance().shutdownComponent();

eureka客户端可以通过上面一行代码主动通知注册中心下线,下线后也不会再注册到eureka上,这个方案符合我们的要求,但是我们需要确认这行代码需要在什么时候被调用?

2.2 下线时机

在这里我们首先需要确定从eureka注册中心删除实例的时机,有以下几种想法:

1. 自定义controller接口
@GetMapping("/shutdown")
public void shutdown() {
  DiscoveryManager.getInstance().shutdownComponent();
}

在容器部署之前,先调用此接口下线,然后再执行部署操作。但是这样做有很大的弊端:1. 该接口不能暴露出去,同时为了避免其他人恶意调用,还需要加一些鉴权

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
无损检测手册pdf是一种电子文档格式的无损检测参考指南。无损检测是一种通过非破坏性方法来评估材料和构件的完整性和质量的技术。这种手册提供了无损检测的详细信息,包括原理、设备和工艺以及各种无损检测方法的应用。它是无损检测人员和相关专业人士的重要工具,能够提供准确和有效的检测指导。 无损检测手册pdf具有以下几个优点。首先,它是以电子文档的形式提供,可以在电脑、平板电脑或手机上随时随地进行查阅。这样方便了人们对无损检测的学习和实践。其次,该手册提供了丰富的内容,涵盖了各个无损检测方法的原理、仪器设备的使用和维护,以及实际案例和应用指南。这使得读者可以全面了解无损检测的各个方面,提高自己的技能和知识。最后,该手册具有良好的可搜索性和交互性,读者可以根据自己的需求快速找到所需信息,并与其他读者进行交流和互动。 尽管无损检测手册pdf具有许多优点,但也存在一些局限性。首先,作为电子文档,读者需要有合适的设备和软件来阅读和使用这种类型的手册。另外,由于无损检测技术和设备的不断发展,该手册可能不具备最新的信息。因此,读者需要注意参考手册的版本和发布日期,确保获取到的信息是最新的。 总的来说,无损检测手册pdf是一种方便、全面和实用的工具,对于无损检测人员和相关专业人士来说是非常有价值的资料。它提供了丰富的无损检测知识和技术,帮助人们提高工作效率和准确性。然而,读者在使用该手册时也需要关注信息的时效性并灵活运用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值