with error code 13 with name 'Unauthorized' and error message 'command find requires authentication' on server 10.10.10.10:27017?
У меня есть MongoDB cluster из 3 нод, я шард не использую, чистый реплика сет.
Конечно же у меня перед кластером стоить Haproxy. Я через Haproxy подключился к текущего primary db, но не могу там достать коллекций.
storage:
dbPath: /var/lib/mongodb
# engine:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,10.10.10.9
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
keyFile: /mongo.yaml
#operationProfiling:
replication:
replSetName: "rs001"
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
вопрос, а почему "конечно" "Конечно же у меня перед кластером стоить Haproxy."(с)
Потому что у меня на бэкэнде есть сервисы, которые работают с монго.
ну, так перед сервисами свое, "прокси", а монге зачем?
Эм не совсем понял?
зачем балансер, прокси для монги? сервисам понятно, а базе данных зачем?
Сервисы->прокси->кластер монго(текущий праймари)
так у вас кластер, вы указываете в коннекшн стринге же - подключаться к кластеру...зачем тут прокси
То есть я могу через коннекшн стринг, указать сервисам что они подключается к кластеру монго и они сами поймут какой сейчас текущий мастер?
у вас реплика сет, меня поправят, но насколько я помню, в реплике сет - пишет всегда мастер, а читать можно указать через настройки подключения к кластеру. Посмотрите документацию. Если бы у вас были разные кластеры, разные инстансы с разными целями, или особенной конфой. Тогда понятно. Но тут, могу ошибаться, но прокси тут лишний.
Разрабы монго щас такие приуныли наверное)) В целом ответ да. Монга сама тебе определит куда лучше подключится (грубо говоря). В строке подключения нужно указать реплику глааное
Хорошо я вас дополню, Есть кластер монго, да они на разных инстансах, и тем более в разных сетях находится. ( 3 ноды) Я понимаю что всегда пишет мастер. Но тут дела в сервисах, допустим мастер упал, и сейчас пишет другой мастер, а у него айпи совсем другой. Как мне своим сервисам бекэнда, который в другой сети, в другом городе сказать, что сейчас пишет другой мастер? Бэкэнд на шарпе
так вы же не указываете напрямую ip мастера..
Указываю к сожалению
Нужно в строке подключения указывать формат подключения как к репликасету и тогда при наличии арбитра будет все ок
Обсуждают сегодня