我在属性文件中设置了 mongoUri 配置,如下所示:
spring.data.mongodb.uri=mongodb://user:[email protected]:27017,mongodb-02.uata.lokal:27017/dbName
我收到此错误:
原因:com.mongodb.MongoTimeoutException:等待与 WritableServerSelector 匹配的服务器时,30000 毫秒后超时。集群状态的客户端视图为 {type=REPLICA_SET,servers=[{address=mongodb-02.uata.lokal:27017, type=REPLICA_SET_SECONDARY, roundTripTime=84.6 ms, state=CONNECTED}, {address=mongodb-01:27017, type=UNKNOWN、state=CONNECTING、Exception={com.mongodb.MongoSocketException: mongodb-01: nodename 或 servname 提供,或未知},由 {java.net.UnknownHostException: mongodb-01: nodename 或 servname 提供,或未知}},{地址=mongoarb-01.uata.lokal:27017,类型=REPLICA_SET_ARBITER,roundTripTime=88.8毫秒,状态=CONNECTED}]
请帮助我应该如何添加 mongo 副本集配置
我的情况的问题是主服务器是使用主机名而不是
localhost
来配置的,我可以从mongosh
中看到:
rs.conf()
cfg = rs.conf()
{
_id: 'rs',
version: 2,
term: 3,
members: [
{
_id: 0,
host: 'MYHOSTNAME:27017',
arbiterOnly: false,
buildIndexes: true,
hidden: false,
priority: 1,
tags: {},
secondaryDelaySecs: Long("0"),
votes: 1
}
],
...
}
}
可能需要从
mongosh
重新配置副本集:
cfg = rs.conf()
cfg.members[0].host = "localhost:27017"
rs.reconfig(cfg)
现在RS成员指向
localhost
:
rs.conf()
cfg = rs.conf()
{
_id: 'rs',
version: 2,
term: 3,
members: [
{
_id: 0,
host: 'localhost:27017',
arbiterOnly: false,
buildIndexes: true,
hidden: false,
priority: 1,
tags: {},
secondaryDelaySecs: Long("0"),
votes: 1
}
],
...
}
}