작성
·
517
1
안녕하세요 강사님, 너무 좋은 강의 잘 수강하고 있어 감사합니다.
kafka 강의를 듣던 중 질문이 생겼는데요,
서로 다른 DB를 사용하는 각각의 마이크로서비스에서 데이터 동기화 문제를 해결하기 위해 Kafka를 사용한다는 것은 잘 알겠습니다.
그런데 동일한 DB를 사용하는 같은 마이크로서비스에서는 각각의 마이크로서비스에 서로다른 h2 DB가 연결되도록 하지 않고 동일한 mariadb로 설정해둔다면 데이터 동기화 문제는 없을 것 같은데 굳이 동일 마이크로서비스 내에서 서로 다른 인스턴스 사이의 데이터 동기화를 위해 kafka를 사용하는 이유가 무엇인지 잘 궁금해서 질문드립니다.
답변 1
4
안녕하세요, 이도원입니다.
예를 들어, order-service에 데이터베이스 처리를 위한 코드가 포함되어 있으면, DB에 대한 종속성이 생기게 됩니다. 추후에 DB를 변경하거나, 마이그레이션 등의 작업이 발생할 때, DB에 대한 종속성 부분을 해결해야 합니다. 물론 실무에서는 DB를 변경하는 것은 그렇게 자주 있는 일도 아니고, 대부분의 애플리케이션에서도 DB 엑세스를 직접 처리하고 있습니다. 성능상에 문제도 없고요. 다만, 강의에서는 Kafka에 대한 설명을 드리는 부분에서 order-service에서는 DB를 상대하지 말고, Kafka에게만 정보를 전달해서, Kafka에서 DB나 다른 시스템으로 데이터를 전송해 주는 역할에 대해 설명 드렸었습니다. 추가로,DB에 여러 서비스나 애플리케이션이 커넥션 되어 작업을 처리하는 것는 것보다는, 애플리케이션에서는 Kafka에게 데이터를 전달하고 다른 처리를 할 수 있는 상황에 대해서도 설명을 드렸었습니다. 이해 되지 않는 부분이 있으시면 추가 질문 해 주세요.
감사합니다.