ApplyService와 Consumer서비스의 db공유?
54
投稿した質問数 4
안녕하세요 강의 잘 듣고 있습니다.
ApplyService와 Consumer서비스의 db관련 질문을 하려 합니다.
9:30분쯤부터 ApplyService와 컨슈머서비스를 분리해서 테스트를 진행하는데 AppliServiceTest를 보면 자신의 CouponRepository에서 count개수가 100개인지 체크하는것 같습니다. 저는 쿠폰생성 및 저장 로직을 전부 컨슈머서비스로 옮겨서 여기서 쿠폰테이블을 관리한다고 생각했는데 어떻게 ApplyService가 자신이 이전에 사용하던 CouponRepository에서 count 체크가 가능한건지 궁금합니다. 혹시 두 서비스가 하나의 db를 공유하는건가요?
回答 2
0
안녕하세요, 인프런 AI 인턴입니다.
차성호님, 강의를 열심히 수강해 주셔서 감사합니다. 질문하신 내용은 ApplyService와 Consumer 서비스가 어떻게 데이터베이스를 공유하고 있는지에 대한 부분인 것 같습니다.
공유 데이터베이스:
두 개의 서비스인 ApplyService와 Consumer 서비스가 동일한 데이터베이스를 참조하고 있는 경우, 각각의 서비스가 데이터베이스의 동일한 테이블에 접근할 수 있습니다. 따라서 ApplyService에서 쿠폰의 개수를 조회(count)하는 것이 가능합니다. 이는 일반적으로 서비스 간의 데이터 일관성을 유지하고, 동일한 데이터를 활용하여 다양한 서비스를 구성할 때 사용됩니다.분리된 서비스, 공유된 DB:
이 패턴은 마이크로서비스 아키텍처에서 자주 발생합니다. 실제로는 서비스 단에서는 서로 독립적으로 동작하되, 데이터베이스는 공유하여 데이터를 일관성 있게 관리할 수 있습니다. 이러한 방식에서는 데이터베이스 연결 정보를 각 서비스에 동일하게 설정하여 접근할 수 있게 합니다.장점과 고려 사항:
공유 데이터베이스를 사용할 경우, 두 서비스가 데이터 충돌 없이 잘 동작하도록 관리하는 것이 중요합니다. 이를 위해 트랜잭션 관리, 접근 제한 및 각 서비스의 개별적인 책임 구분이 필요합니다.
아래는 유사한 사례에 대한 설명을 다룬 게시물입니다. 서비스 간 데이터베이스 공유 패턴에 대한 자세한 설명
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
consumer가 topic을 전부 사용하기 전에 사용자에게는 쿠폰이 발급된것으로 확인하는 과정에서 발생가능한 문제.
0
74
1
쿠폰에 관련되어서 좀 더 참고할만한 자료가 있을까요?
0
83
2
흐름정리 제가 이해한게 맞나요?
0
70
2
안되서 스트레스 받아요
-2
108
2
프로젝트 진행할때 모듈로 추가하는 이유가 궁금합니다!
0
183
2
Redis 활용하기 문제점 해결하기 부분이 이해가 잘 안됩니다...
0
213
1
카프카를 도입하고 난 뒤 로그로 보여지는 장점을 발견하지 못하고 있습니다.
0
167
2
키생성 방식에 따른 성능
0
166
2
사용자 동선에 대한 트랜잭션 문의
0
134
2
강사님 강의를 듣고 실제 프로젝트에서 이벤트 응모 시스템을 만들어 봤습니다.
0
209
1
쿠폰 발급 개수 제한
0
182
2
ApplyService 의 총 처리 시간이 궁금합니다.
0
154
1
쿠폰 생성 에러 처리에 관해서 질문이 있습니다.
0
224
2
마지막에 하신 테스트 자체는 실패하는 게 맞는거죠??
0
274
2
안녕하세요 질문 있습니다!
0
293
1
쿠폰 발급 유저 흐름에 대한 질문
0
307
2
수량 조절에 대한 질문이 있습니다.
0
230
2
kafka Producer 실행 중 에러 시 redis count 정합성 이슈
0
398
2
test 과정에서 오류가 발생합니다.
0
381
1
도커 환경설정에 대해서
0
268
2
Redis의 INCR 사용 해도 Race condition이 잡히지 않는 문제
0
594
1
consumer 모듈
0
322
2
카프카 토픽 생성오류
0
381
2
redis 를 사용하여 문제점 해결하기
0
371
2

