이 글은 이틀 동안 퇴근 후 몇 시간가량(기억하고 싶지 않은 시간)을 docker 와 spring 연동을 하며 겪은 일들과..
연동을 끝내고 부하테스트를 진행하며 어떤 고민을 했는지에 대해 작성해보겠다.
하려던 것은 다음과 같다.
먼저 도커와 친숙하지 않아서인지는 몰라도, 이번에 코치님도 그렇고 테스트할 때 환경을 최대한 실제환경과 비슷하게 하기위해 도커로 띄우면 좋다고 말씀하셔서 이번 기회에 해보자!! 라고 생각했다.
우선 DockerFile 을 작성하고 docker-compose.yml 과 docker.properties 를 작성했다. 글로 쓰니까 별거 아닌거처럼 보이지만..
kafka:
image: bitnami/kafka:latest
container_name: kafka
depends_on:
- zookeeper
environment:
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9092
spring.kafka.bootstrap-servers=kafka:9092
(너무 어이없는 내 실수이지만 작은 것도 다 적어보자)
docker.properties 에는 kafka:9092 로 작성을 했지만 , docker-compose.yml 에는 위와 달리 초기에 local 과 같이 PLAINTEXT://localhost:9092 로 작성하여 연동 오류가 발생했다. config 파일에서도 이 부분이 있는데 처음에 @Value 로 처리해주지 않고 하드코딩으로 "localhost:9092" 로 작성된 곳이 있었는데, 여기를 찾느라 한참 걸린것 같다..
또한 카프카에서
Connection to node -1 (localhost:9092) could not be established
Kafka 브로커가 localhost:9092를 사용하려 하는 문제가 발생했는데,,, 블로그들이 절 살렸어요 ㅜ
kafka 가 설치된 server.properties 에서
asvertised 부분을 내가 사용할 포트로 수정해주면 된다고 해서 수정을 하였다.
도움 주신 분들 감사합니다 ☺️
advertised.listeners 설정 오류로 Kafka가 시작되지 않았다.
kafka:9092 파일마다 일치시키지 않았다.
이건 또 뭘까? 위의 오류를 해결하고 docker 를 다시 띄우고자 했다.
되겠지? 아니었다.
왜 멀쩡한 예외처리도 던져놓지 않았는데,, 너 왜 생성안돼?
Unable to determine Dialect without JDBC metadata
spring.jpa.hibernate.ddl-auto=update
Hibernate가 엔티티 기반으로 데이터베이스 테이블을 생성하도록 설정!!
MySQL 데이터베이스가 기존 데이터를 유지하고 있어 테이블이 초기화되지 않음.
docker-compose down -v로 모든 볼륨 제거 후 재실행.
이 글에 모두 적지는 않았지만, 자잘하게 신경쓰지 않고 넘어가다가 오류를 발생시킨 부분이 너무 많았다.
내가 이 메시지 볼라고 얼마나,,
성공적으로 도커 데스크탑에 올라가 있는 것을 확인했고 docker ps 를 통해서도 한 번더 확인했다.
.
.
[콘서트 예약 시스템] - 부하테스트
에서는 문제를 해결하고 나서 부하테스트를 진행해본 과정을 작성해보겠다.