目前公司有一套 springcloud 项目部署在 k8s 上 版本是 2.1.3.RELEASE Greenwich.SR3 JDK1.8
服务发现的中间件用的是 nacos ,稍微有点不满意的地方是当节点发生异常重启后 nacos 集群会发生脑裂,翻看了好多 issues 也没有找到一个好的解决方案 又受限于 springboot 跟 cloud 的版本 不能升级 nacos
最近将服务发现由 nacos 切换到了 spring cloud kubnernetes 在测试环境部署发现用着还可以 所以想咨询一下大家有没有用到过这个 有没有什么暗坑
1
liminany1 2023-09-13 11:30:36 +08:00 via Android
nacos 不是多节点自动负载均衡的吗?
|
2
yimiaoxiehou 2023-09-13 11:41:50 +08:00
@liminany1 nacos 有 bug ,宕机重启有一定几率集群出故障
|
3
yimiaoxiehou 2023-09-13 11:42:20 +08:00
kubnernetes 的负载均衡是基于 dns 的,理论上没啥问题
|
4
anubu 2023-09-13 11:46:23 +08:00
同样的结构,请教一下配置是如何处理的。我们的环境 Nacos 同时作为配置中心,想清理掉 Nacos ,还不清楚配置要如何处理,如果还要部署其它配置中心,清理 Nacos 的意义就不太大了。
|
5
liminany1 2023-09-13 12:01:49 +08:00 via Android
不太明白你的问题点在哪里?
nacos 有 bug ,然后 nacos 会挂掉,然后导致其他应用节点出问题? 这样的话应用肯定会短暂挂起,但应用本身应该有重连机制吧? 我说的是 nacos 可以有多个节点,一个挂另一个生效,对应用那边使用的是域名应该是无感知的呀?不会受影响 |
7
kd9yYw2RyhQwAwzn OP @liminany1 nacos 的节点重启后 会存在集群节点之前数据不同步的问题 这样就导致 nacos 集群中每个节点的 service 实例数量不一致 进而导致服务间调用会出现没有实例的问题 并且除了逐个重启之外没啥别的办法
|
8
kd9yYw2RyhQwAwzn OP @anubu 配置打算继续用 nacos 了
|
9
agzou 2023-09-13 13:57:29 +08:00 1
spring cloud k8s 也可以作为配置中心,新增一个和服务同名的的 config map 就可以了,我们用来替换 nacos ,服务发现没什么问题,但是作为配置中心,配置刷新似乎有点问题,修改配置没有自动刷新,需要手动重启,这个问题也没有仔细取查,暂不影响。
|
10
winglight2016 2023-09-13 14:37:25 +08:00
都部署在 k8s 上了,还用 nacos 干吗?我们自己基于 etcd 开发了一个配置中心,也没费多少功夫
|
11
kd9yYw2RyhQwAwzn OP @winglight2016 历史包袱太重了 公司也没重构的打算 服务发现的话 你们用了什么方案呀
|
12
me1onsoda 2023-09-13 16:27:31 +08:00
都 k8s 了,还搞 spring cloud 这套垃圾?
|
13
tudou1514 2023-09-13 18:16:20 +08:00
k8s 的话可以不要服务发现,你可以理解 svc 就是服务发现
|
14
winglight2016 2023-09-13 20:31:10 +08:00
@kd9yYw2RyhQwAwzn k8s 里的 service 地址是固定的,不再需要服务发现了,前面的回复已经说了,用了 k8s,spring cloud 已经没什么价值了
反过来看,还在用 spring cloud 的情况下,就不要用 k8s ,免得互相冲突 |