728x90
반응형
org.springframework.data.mongodb.UncategorizedMongoDbException: Prematurely reached end of stream; nested exception is com.mongodb.MongoSocketReadException: Prematurely reached end of stream
MongoDB 4.4.1 버전에서 대량의 DML 발생시 해당 오류가 발생해서 MongoDB 4.2.3 버전으로 변경을 하였다.
Spring boot 2.2.7 버전의 mongodb-driver 3.11.2 버전과 호환성이 맞지 않는다고 아래 링크에 나와 있다.
물론 이것이 원인이 아닐 수도 있지만 가능하면 호환성을 맞추는 것이 좋을 것 같다.
1번 서버
docker-compose.yml
version: '3'
services:
mongodb:
#image: mongo:latest
image: mongo:4.2.3
container_name: mongodb
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: adminPass
volumes:
- ./mongodb/data/db:/data/db
- ./mongodb.key:/etc/mongo/mongodb.key
- ./mongodb.conf:/etc/mongo/mongodb.conf
- ./backup:/backup
ports:
- 27017:27017
command: --replSet mongo-repl --config /etc/mongo/mongodb.conf
deploy:
restart_policy:
condition: on-failure
max_attempts: 5
networks:
default:
ipam:
driver: default
config:
- subnet: 172.20.5.0/24
2번 서버
docker-compose.yml
version: '3'
services:
mongodb:
#image: mongo:latest
image: mongo:4.2.3
container_name: mongodb
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: adminPass
volumes:
- ./mongodb/data/db:/data/db
- ./mongodb.key:/etc/mongo/mongodb.key
- ./mongodb.conf:/etc/mongo/mongodb.conf
- ./backup:/backup
ports:
- 27017:27017
command: --replSet mongo-repl --config /etc/mongo/mongodb.conf
deploy:
restart_policy:
condition: on-failure
max_attempts: 5
#pids_limit : 100
mongodb-arbiter:
#image: mongo:latest
image: mongo:4.2.3
container_name: mongodb-arbiter
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: adminPass
volumes:
- ./mongodb_arbiter/data/db:/data/db
- ./mongodb.key:/etc/mongo/mongodb.key
- ./mongodb.conf:/etc/mongo/mongodb.conf
ports:
- 27018:27017
command: --replSet mongo-repl --config /etc/mongo/mongodb.conf
deploy:
restart_policy:
condition: on-failure
max_attempts: 5
networks:
default:
ipam:
driver: default
config:
- subnet: 172.20.5.0/24
mongodb.conf
security:
authorization: "enabled"
clusterAuthMode: "keyFile"
keyFile: "/etc/mongo/mongodb.key"
replication:
enableMajorityReadConcern: false
oplogSizeMB: 10240
replSetName: "mongo-repl"
chmod a+r mongodb.conf
chown polkitd mongodb.key
# 백그라운드 실행
docker-compose up -d
# docker 중지
docker-compose stop
Relica 구성
docker exec -it mongodb /bin/sh
# mongo admin -u admin -p 'adminPass'
var cfg = {
"_id": "mongo-repl",
"members": [{
"_id": 0, "host": "172.27.17.188:27017","priority": 1
},{
"_id": 1,"host": "172.27.17.192:27017","priority": 1
},{
"_id": 2,"host": "172.27.17.192:27018","priority": 0,"arbiterOnly": true
}]
};
rs.initiate(cfg, { force: true });
rs.reconfig(cfg, { force: true });
728x90
반응형
'프로그래밍 > MongoDB' 카테고리의 다른 글
[2월 25일] 온라인 세션 'MongoDB University 교육과정과 Certification에 대한 모든 것' (0) | 2021.02.16 |
---|---|
M320 Data Modeling (0) | 2020.08.05 |
M001 MongoDB Basics (0) | 2020.08.05 |
대용량 데이터 처리를 위한 Real MongoDB (0) | 2020.08.05 |
몽고DB_BACK_TO_THE_BASIC (0) | 2020.08.05 |
신규 프로젝트를 위한 몽고 DB 도입 가이드 (0) | 2020.07.10 |