티스토리 뷰
mongodb도 transaction이 가능하다는 사실 알고 계신가요
mongodb가 4.x로 올라오면서 replica sets 과 sharded clusters 환경에서
트랜잭션 사용이 가능해졌습니다.
그리고 4.4부터는 트랜잭션을 통해서 콜렉션의 생성도 가능해졌습니다.
그런데 이 트랜잭션 기능을 사용하려면 replica sets 또는 sharded clusters 환경을 구축해야합니다.
standalone에서는 동작하지 않아요.
standalone은 여러분이 서버에 별다른 설정없이 mongodb를 설치하셨다면 기본적으로 standalone 으로 설치가 됩니다.
그런데 production 환경에서는 cluster를 구성할수 있겠지만, 개발환경에서는 replica set이나 shard cluster를 구성하지 않는 경우도 많기 때문에
이러한 환경에서도 어플리케이션의 수정없이 트랜잭션 기능을 원활히 사용하기 위해
standalone으로 설치한 개발환경에도 relica set으로 변경해줄 필요가 있습니다.
replica set은 primary, secondary 그리고 arbiter까지 3개의 서버를 구성하라고 안내되어있는데
(failover와 primary voting을 위한 구성입니다)
꼭 3대의 서버가 없어도 1대의 서버로도 replica set을 구성할수 있습니다.
다만 해당 set의 구성 멤버가 1대밖에 없는 replica set이 되는것입니다.
standalone을 replica set으로 변경하는 방법은 mongodb 공식문서에도 안내가 되어있어요
docs.mongodb.com/manual/tutorial/convert-standalone-to-replica-set/
방법은 간단합니다.
데몬 실행시에 위의 문서에서 안내하는대로 option으로 해당 설정값을 주어도 되지만, 설정파일에 해당 구성을 넣어도 가능합니다.
매 실행시마다 번거롭게 option을 넣지 않아도 되니 conf 파일에 작성해보기로 해요
/etc/mongod.conf 에 mongodb 설정파일이 디폴트로 위치해있는데
이 파일에 다음과 같이 추가해주세요
replication:
replSetName: "rs0"
net:
bindIp: localhost,<hostname(s)|ip address(es)>
bindIp에는 mongodb 가 응답대기 하는 클라이언트를 말합니다.
이렇게 설정을 변경후에 mongodb를 실행해주세요
그리고 mongo로 접속후에
rs.initiate()
명령어를 넣으면 완료됩니다
mongo connection을 종료후에
다시 접속해보시면
이전에는 mongo 접속시 콘솔에 아무런 텍스트가 없었는데
이렇게 rs0:PRIMARY라고 표시가 되는것을 볼수 있습니다
rs0이라는 이름을 replica set의 PRIMARY에 접속했다는 의미입니다.
'WEB2.0 > 프로그래밍' 카테고리의 다른 글
ios 빌드시 Build input files cannot be found: 오류 (0) | 2021.04.06 |
---|---|
0원으로 와일드카드 SSL인증서 사용하기 (0) | 2021.03.30 |
안드로이드 10 이상에서 파일첨부가 정상 동작하지 않는다면 (0) | 2021.03.26 |
github action으로 cron schedule 무료로 (0) | 2021.03.25 |
애플 로그인 활성화시키기 (0) | 2021.01.18 |
- Total
- Today
- Yesterday
- 창업
- 네이버
- 대학생
- 구글
- 경진대회
- 벤처
- 자바스크립트
- android
- 아이폰
- iPhone
- 트위터
- 소프트웨어
- Apple
- 모바일
- CSS
- 스마트폰
- 아이디어
- php
- 안드로이드
- 앱
- AWS
- 공모전
- JavaScript
- 웹표준
- 앱스토어
- 게임
- 어플리케이션
- 애플
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |