【发布时间】:2021-10-23 23:18:36
【问题描述】:
我可以使用 uri 连接到 mongodb atlas:mongodb+srv://username:password@cluster0.q2w3e.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
现在,我想通过外部服务连接。
这是我的服务定义:
apiVersion: v1
kind: Service
metadata:
name: mongo-atlas
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
type: ExternalName
externalName: "cluster0.p9jq2.mongodb.net"
And I changed spring.data.mongodb.uri to mongodb+srv://username:password@mongo-atlas/myFirstDatabase?retryWrites=true&w=majority
但原因是:javax.naming.NameNotFoundException: DNS name not found
有人可以帮我解决这个问题吗?
【问题讨论】:
-
cluster0.p9jq2.mongodb.net是一个有效的 CNAME,nslookup cluster0.p9jq2.mongodb.net的输出是什么? -
mongodb+srv将为_mongodb._tcp.cluster0.p9jq2.mongodb.net的SRV 记录和cluster0.p9jq2.mongodb.net的TXT 记录进行DNS 查找。我不知道是否可以使用 CNAME 重定向。 -
@Joe 那我应该怎么给这个?
-
使用
mongodb://这种连接字符串可能更容易,所以主机名被解析为A记录。不知道怎么让k8s解析SRV
标签: mongodb spring-boot kubernetes mongodb-atlas