How to solve the lossless offline problem of Spring Cloud Alibaba service instance in Kubernetes
How to solve the lossless offline problem of Spring Cloud Alibaba service instance in Kubernetes
- 现象
- 原因
- EDAS
- 无损下线
- MSE
- 无损下线
- Dubbo QOS
- dubbo-spring-boot-actuator
- 现象
- 原因
- EDAS
- 无损下线
- MSE
- 无损下线
- Dubbo QOS
- dubbo-spring-boot-actuator
现象
有两个服务,A为服务提供者,B为服务消费者,调用关系如下图所示。
现在部署服务A的两个实例,分别为A1、A2,部署服务B的两个实例分别为B1、B2,消费关系如下图所示。
这个时候,如果服务实例B1宕机,服务实例A1、A2将消费不到实例B1。
我们期望系统能够自动将路由切换到B2上,如下图所示。
这个时候,如果再开启一个服务B的实例B3,我们期望A1、A2都能消费服务实例B3,如下图所示。
最后,我们将服务实例B1所持有的资源释放。
这是在分布式环境中比较常规的服务消费场景。最近在我们发现在Kubernetes环境中,以Spring Cloud Alibaba技术栈构建的服务集中,服务实例B1宕机以后,A1、A2在某些时不能自动切换为只消费B2,当B3加入后,A1、A2也不能正常消费B3。
原因
略
EDAS
https://help.aliyun.com/document_detail/42934.html
企业级分布式应用服务EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的云原生PaaS平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持Spring Cloud和Apache Dubbo(以下简称Dubbo)等微服务运行环境,助力您的应用轻松上云。
样例
https://github.com/aliyun/alibabacloud-microservice-demo
无损下线
https://help.aliyun.com/document_detail/131248.html
开源Dubbo可以通过shutdownHook和QoS实现,不仅有一定的开发工作量,而且对Dubbo有版本要求,还有一些遗留问题,最终影响正常使用。
EDAS将无损下线的流程整合在发布流程中,对ECS集群或K8s集群中的应用进行停止、部署、回滚、缩容、重置等操作时,无损下线会自动执行。您无需对应用或在EDAS控制台进行任何关于无损下线的操作,而且没有流量损失。
MSE
https://help.aliyun.com/document_detail/126761.html
微服务引擎MSE(Microservice Engine)是一个面向业界主流开源微服务框架Spring Cloud和Dubbo的一站式微服务平台,提供治理中心、微服务网关、托管的注册中心和托管的配置中心。
无损下线
https://help.aliyun.com/document_detail/170460.html
开源Dubbo可以通过shutdownHook和QoS实现无损下线,不仅有一定的开发工作量,而且对Dubbo有版本要求,还有一些遗留问题,最终影响正常使用。
MSE治理中心将无损下线的流程整合在发布流程中,对ECS集群或K8s集群中的应用进行停止、部署、回滚、缩容、重置等操作时,无损下线会自动执行。您无需对应用或在MSE治理中心控制台进行任何关于无损下线的操作,而且没有流量损失。
Dubbo QOS
https://dubbo.apache.org/zh/docs/v2.7/user/references/qos/
Quality of Service 服务质量
dubbo-spring-boot-actuator
现象
有两个服务,A为服务提供者,B为服务消费者,调用关系如下图所示。
现在部署服务A的两个实例,分别为A1、A2,部署服务B的两个实例分别为B1、B2,消费关系如下图所示。
这个时候,如果服务实例B1宕机,服务实例A1、A2将消费不到实例B1。
我们期望系统能够自动将路由切换到B2上,如下图所示。
这个时候,如果再开启一个服务B的实例B3,我们期望A1、A2都能消费服务实例B3,如下图所示。
最后,我们将服务实例B1所持有的资源释放。
这是在分布式环境中比较常规的服务消费场景。最近在我们发现在Kubernetes环境中,以Spring Cloud Alibaba技术栈构建的服务集中,服务实例B1宕机以后,A1、A2在某些时不能自动切换为只消费B2,当B3加入后,A1、A2也不能正常消费B3。
原因
EDAS
https://help.aliyun.com/document_detail/42934.html
企业级分布式应用服务EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的云原生PaaS平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持Spring Cloud和Apache Dubbo(以下简称Dubbo)等微服务运行环境,助力您的应用轻松上云。
样例
https://github.com/aliyun/alibabacloud-microservice-demo
无损下线
https://help.aliyun.com/document_detail/131248.html
开源Dubbo可以通过shutdownHook和QoS实现,不仅有一定的开发工作量,而且对Dubbo有版本要求,还有一些遗留问题,最终影响正常使用。
EDAS将无损下线的流程整合在发布流程中,对ECS集群或K8s集群中的应用进行停止、部署、回滚、缩容、重置等操作时,无损下线会自动执行。您无需对应用或在EDAS控制台进行任何关于无损下线的操作,而且没有流量损失。
MSE
https://help.aliyun.com/document_detail/126761.html
微服务引擎MSE(Microservice Engine)是一个面向业界主流开源微服务框架Spring Cloud和Dubbo的一站式微服务平台,提供治理中心、微服务网关、托管的注册中心和托管的配置中心。
无损下线
https://help.aliyun.com/document_detail/170460.html
开源Dubbo可以通过shutdownHook和QoS实现无损下线,不仅有一定的开发工作量,而且对Dubbo有版本要求,还有一些遗留问题,最终影响正常使用。
MSE治理中心将无损下线的流程整合在发布流程中,对ECS集群或K8s集群中的应用进行停止、部署、回滚、缩容、重置等操作时,无损下线会自动执行。您无需对应用或在MSE治理中心控制台进行任何关于无损下线的操作,而且没有流量损失。
Dubbo QOS
https://dubbo.apache.org/zh/docs/v2.7/user/references/qos/
Quality of Service 服务质量
dubbo-spring-boot-actuator
https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-actuator
提供一个与Spring boot一致的Dubbo级的系统内省机制工具,方便运维平台对Dubbo服务实现运行监测、管理的基础库。
项目中要将如下内容添加到项目pom.xml中
<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-actuator</artifactId><version>2.7.4.1</version>
</dependency>
提供一个与Spring boot一致的Dubbo级的系统内省机制工具,方便运维平台对Dubbo服务实现运行监测、管理的基础库。
项目中要将如下内容添加到项目pom.xml中
<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-actuator</artifactId><version>2.7.4.1</version>
</dependency>
How to solve the lossless offline problem of Spring Cloud Alibaba service instance in Kubernetes相关推荐
- Solve one floodlight install problem
参考: Floodlight安装 SDNLAB Floodlight官网 Installation Guide 问题: 在follow安装教程安装Floodlight的过程中,ant编译时出现了: [ ...
- Deep Reinforcement Learning Approach to Solve Dynamic Vehicle Routing Problem with Stochastic Custom
摘要 在现实的城市物流运作中,路线和任务的变化是对动态事件的响应.为了确保消费者的需求得到满足,规划者需要快速(有时是瞬间)做出这些改变.本文提出了一个带时间窗的动态车辆路径问题,它是一个基于路径的马 ...
- 谷粒商城分布式基础篇1-个人版
基础篇 1 项目简介 1.1 项目背景 1.2 电商模式 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O 1.2.1 B2B 模式 B2B(Business to Business ...
- 从前慢-谷粒商城篇章1
分布式基础篇 1 项目简介 1.1 项目背景 1.2 电商模式 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O 1.2.1 B2B 模式 B2B(Business to Busin ...
- Nacos离GA更进一步:0.9.0发布
点击蓝色"程序猿DD"关注我哟 来源:阿里巴巴中间件 2月28日,Nacos 发布 0.9.0 版本,该版本主要更新了以下内容: - 加强了 Nacos-Sync 稳定性 - 增加 ...
- 自动打包+ios+android,使用 python 自动打包 Android 和 iOS
大端模式 VS 小端模式 简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序了.注意字节序是硬件层面的东西,对于 ...
- 云原生时代,微服务如何演进?
简介:云原生时代,微服务和云原生会产生怎样的关系?云原生时代的微服务又有什么特点?当前有哪些比较活跃的微服务项目?阿里巴巴资深技术专家李响从微服务的生命周期.流量治理.编程模型以及可信安全4个方面,分 ...
- 服务迁移之路 | Spring Cloud向Service Mesh转变 | 技术干货
戳蓝字"CSDN云计算"关注我们哦! 技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 作者: 李宁 转自:博云技术社区 Sp ...
- 微服务落地,我们在考虑什么?| 技术头条
戳蓝字"CSDN云计算"关注我们哦! 技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 作者:李宁 转自: 博云技术社区 导读 ...
最新文章
- 一个简单的socket程序-linux
- Waymo起诉加州车管所,要求对无人车事故数据保密,网友:这事怕不是和特斯拉有关...
- 树莓派都能做脑机接口了?实时处理8个电极信号,人人用得起 | 开源
- Python环境出现模块找不到
- python基础(part17)--函数式编程
- rm: cannot remove `.user.ini‘: Operation not permitted异常该如何解决?
- JSON 之 SuperObject(3): 访问
- 美区id无法登陆解决方法
- Matlab里fprintf个人理解(fprintf、display、%f、%f\n)
- zlib deflate gzip区别
- BZOJ 2563: 阿狸和桃子的游戏
- css编程设置网页背景,网页中cssbackground背景图和背景颜色的设置方法
- PHP 之道中文简体版
- 冠词 article
- 2017鸡年女宝宝名字大全,来给你的女宝宝找个好名字
- 2022年同花顺Java面试
- Lightroom Classic 教程:如何在 Lightroom 中使用预设更改照片的外观?
- AI文档批量翻译软件,URL采集翻译发布
- 2022电工(初级)操作证考试题及答案
- 时间管理(李葆春教授,2022.8.17)
热门文章
- 用计算机牙模,人类恒牙的计算机三维建模
- 解决IDEA-not allow to run in parallel
- python取出数组大于某值_Python替换NumPy数组中大于某个值的所有元素实例
- 一文讲清:对象存储、文件存储、块存储。绝对好文
- 小米手机访问电脑共享文件_小米手机不用数据线直接访问电脑上的文件的方法...
- 学蓝桥Chapter6:矩阵键盘KBD练习
- Spring Cloud 异常“ Caused by: java.net.UnknownHostException: discovery.host ”
- 如何只用三步就能快速写一个网页
- 种植牙术后的注意事项
- 智和网管工业交换机网管方案