【发布时间】:2022-01-04 13:29:24
【问题描述】:
我有点不确定 Mongodb statefulset 应用程序的正确连接 URI 是什么。我的集群中运行了三个副本,每个副本都在单独的节点中。 我应该配置 pod 还是无头服务(pod 的负载均衡器)?
文档指导使用 pod,如下所示(使用 StatefulSets 在 Kubernetes 上运行 MongoDB | Kubernetes):
mongodb://user:pwd@mongo-0.mongo,mongo-1.mongo,mongo-2.mongo:27017/dbname_?
但我也让它与服务一起使用:
mongodb://user:pwd@mongodb-headless.svc.cluster.local:27017/dbname_?authSource=admin&replicaSet=rs0
但是,我不知道正确的 URI 是什么?我遇到的问题是,当某些副本出于某种原因出现故障时,应用程序会因数据库连接丢失而崩溃。我认为这就是无头服务出现的地方,但不是,文档说要配置 pod。如果我扩展副本,我需要重新配置 URI。这听起来不太动态。
我也面临一些无头服务的问题,好像它在不同的命名空间中我无法使用定义的命名空间进行连接,例如: mongodb-headless.namespace.svc.cluster.local:27017
我错过了什么吗? 提前感谢您!
编辑:为 service/lb URI 示例添加了副本集(我已经配置了这个...)
【问题讨论】:
标签: mongodb spring-boot kubernetes spring-data-mongodb