spring cloud 这套高可用真的靠谱么,还是少了啥部件

2021-07-22 09:06:31 +08:00
 myCupOfTea
真有服务挂了,eureka 下线其实还挺慢的,就算警报受到了,我也没法在 euraka 的监控面板让它主动下线

然后其实 spring gateway 内部还有缓存机制,重新拉 eureka 也要时间,感觉恢复太慢了
4430 次点击
所在节点    程序员
26 条回复
tyit
2021-07-23 00:30:52 +08:00
说说我这边遇到的问题。

对于请求通过 k8s 的 service 层到达 pod 容器的情况,可以通过 k8s 优雅机制来确保 pod 容器在上线滚动更新期间,做到业务"无感知"。但是目前线上 pod 容器服务主动注册到 nacos 配置中心,业务方通过 nacos 网关调用 pod 容器服务,即调用请求绕过了 k8s 的 service 层。

这就出现了一个问题:pod 容器更新期间,老 pod 已经优雅终止掉了,但是其 ip 和端口还在 nacos 的网关缓存里,调用请求会在 nacos 网关缓存未完全更新之前打到已经终止掉的 pod 地址,这就会出现连接超时,调用失败错误,从而造成业务流量损失。
passerbytiny
2021-07-23 00:56:48 +08:00
spring cloud 是开源非商业集成器,貌似连可选的商业服务都没有。这是管送不管养的东西,你不能拿来直接用。
0576coder
2021-07-23 01:36:55 +08:00
@xuanbg


是不是可以直接把请求转到 k8s 的 service 层 这样是不是可以不用自研 gateway 层了
0576coder
2021-07-23 01:37:09 +08:00
@tyit

是不是可以直接把请求转到 k8s 的 service 层 这样是不是可以不用自研 gateway 层了
securityCoding
2021-07-23 09:30:47 +08:00
@tyit 我也遇到了,在解决中。k8s 分批更新 nacos 客户端能及时收到推送更新,应该不是 nacos 的问题。我猜应该是 loadbalance 组件的内部缓存,它是自己定时刷新机制,解决思路 1.魔改 loadbalance 源码 2.路由策略支持失败转移
buliugu
2021-07-23 10:05:54 +08:00
@tyit 可以在 preStop 里调用 /actuator/service-registry 将服务下线,等待一段时间后删除 pod

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/790969

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX