Vert.x를 사용하면서, 특히 Vert.x 3버전 자료를 찾는게 쉽지 않았다.
Kotlin, coroutine으로 작성하고 있어 더더욱 그렇다.
Atlas의 replica set Mongodb를 연동하면서 같은 어려움이 있어 적는다.
먼저 Atlas에서 클러스터의 uri는 대략 이런 형태다.
cluster0-shard-00–00–abcd.azure.mongodb.net:27017
여기서 ‘cluster0-shard-00’이 replicaSet의 이름이다. (이 부분이 가장 헷갈렸다)
Atlas에서 Mongodb를 클러스터를 replica set으로 생성하면, 기본적으로 1개의 primary 인스턴스와 2개의 secondary 인스턴스가 생성되어, uri의 replicaSet 이름 뒤에 각각의 번호가 붙는다.
따라서 Mongodb의 config파일을 JSON으로 작성하면 아래와 같다.
Connection String을 이용한다면 아래와 같은 설정으로 쉽게 된다.
"connection_string": "mongodb+srv://<YOUR_ID>:<YOUR_PW>@cluster0-abcd.azure.mongodb.net/test?retryWrites=true&w=majority",
또는 아래와 같은 방법을 사용한다.
{
"hosts": [
{
"host": "cluster0-shard-00–00–abcd.azure.mongodb.net",
"port": 27017
},
{
"host": "cluster0-shard-00–01–abcd.azure.mongodb.net",
"port": 27017
},
{
"host": "cluster0-shard-00–02–abcd.azure.mongodb.net",
"port": 27017
}
],
"replicaSet": "cluster0-shard-00",
"db_name": "your_db_name",
"username": "your_user_name",
"password": "your_password",
"authSource": "admin",
}