spring boot + Eureka如何平滑上下线服务
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
码农周星星
扫码关注公众号
扫码阅读
手机扫码阅读
服务平滑上下线摘要
01 - 单机版
当需要部署新服务时,传统的单机JAVA WEB程序会停止当前服务并部署新服务,造成服务不可用的时间窗口。虽然可以通过SLB(服务器负载均衡)将多个服务部署在其下解决这个问题,但仍无法保证所有请求都被完全处理。为此,可以通过监控容器中请求的完成情况来优雅地停止服务。具体操作包括:
- 引入undertow容器pom文件并配置,去掉自带的tomcat容器。
- 增加undertow配置文件和操作程序链类。
- 实现优雅停止核心处理类,确保所有请求在服务停止前被处理。
02 - 微服务版
在微服务环境中,Eureka注册中心的AP模式通过缓存保证服务高可用性,但新服务上下线存在延迟。具体分析如下:
- 服务上线和正常下线通常耗时90秒。
- 异常下线耗时约240秒。
优化方案包括:
- 采用第一点中的undertow容器优雅停止方法。
- 增加eureka client下线接口类,并调整服务过期时间。
- 调整eureka client、server和ribbon的参数来减少缓存时间。
优化后,服务上线和下线时间减少至10秒,异常下线时间减少至130秒。
精彩推荐
- 微信抢红包的原理
- 实战-elasticsearch索引平滑迁移方案
- 微服务相关的武功秘籍系列文章
码农周星星
码农周星星
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
码农周星星的其他文章
实际案例分析-TB级数据迁移方案
经常可以遇见生产环境中数据迁移的问题,应该如何完美解决数据迁移,避免数据丢失,并且不影响线上服务运行呢?本例根据实际案例进行分享,进行解剖分享。
德鲁克核心警示:这三类人,绝对不能提拔为管理者
管理者选拔的核心准则:“聪明、能力、知识固然重要,但如果一个人缺乏【正直】,他的所有长处,最终都会变成组织的灾难。
实战-elasticsearch索引平滑迁移方案
elasticsearch中的文档字段如何修改分词类型或者字段类型?不同数据量级的ES平滑处理方案是怎么样的?如何具体操作?
开源项目ZXX-CAS系统从零到一|第五篇:OAuth2.0协议与对应接口设计
OAuth2.0协议的定义对我们设计ZXX-CAS至关重要,目前主流的微信、QQ、微博等三方登录系统都是遵循该协议,这里简单介绍一下该协议,应该注意的地方以及需要开发设计的接口有哪些?
JAVA如何后台导出带统计图PDF?
JAVA如何后台生成PDF?如何生成带统计图的PDF?
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线