inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Học thiết kế hệ thống quy mô lớn thông qua việc tự tay xây dựng với Spring Boot - Bảng tin

Triển khai số lượt thích

좋아요 수 구현 PessimisticLock1 질문

Đã giải quyết

104

sundai0163

3 câu hỏi đã được viết

0

안녕하세요 강사님 강의 잘 듣고 있습니다.

아래 내용이 궁금하여 질문 드립니다.

 

질문:

PessimisticLock1에서 주석 달아놓으신

"트래픽이 몰리는 상황에서 유실될 수 있으니

게시글 생성 시점에 미리 0으로 초기화해둘 수 있다"

는 부분에서 어떤 이유로 데이터가 유실이 될 수 있는지 궁금한데 예시나 상황에 대해서 추가 설명해주실 수 있을까요?!

 

감사합니다.

 

java mysql spring-boot kafka redis

Câu trả lời 2

1

sundai0163

이해되었습니다 강사님

감사합니다!

1

kuke

선웅님, 안녕하세요!

 

        int result = articleLikeCountRepository.increase(articleId);
        if (result == 0) {
            // 최초 요청 시에는 update 되는 레코드가 없으므로, 1로 초기화한다.
            // 트래픽이 순식간에 몰릴 수 있는 상황에는 유실될 수 있으므로, 게시글 생성 시점에 미리 0으로 초기화 해둘 수도 있다.
            articleLikeCountRepository.save(
                    ArticleLikeCount.init(articleId, 1L)
            );
        }

위 코드에서 2개의 요청이

int result = articleLikeCountRepository.increase(articleId);

위 코드를 "동시"에 호출한 상황을 가정해보겠습니다.

아직 ArticleLikeCount가 생성된 적이 없다면, 두 요청은 모두 result가 0으로 응답됩니다.

if (result == 0)

두 요청은 위 조건이 모두 true로 들어가면서 ArticleLikeCount 1로 초기화하는 코드를 두 번 수행하게 됩니다.

그러면 1개의 요청은 유실될 수 있는 것입니다!

consumer에서 에러가 발생할 경우 데이터 유실 문의

0

39

2

게시글 테스트 데이터 삽입

0

45

2

정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?

0

98

2

좋아요 기능 정합성 보장 방법

0

91

2

좋아요 동시성처리 최적의 선택?

1

117

2

프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해

0

85

2

안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.

0

54

1

조회수 조회 로직 질문

1

64

2

비로그인 유저도 어뷰징 방지 정책

1

63

2

CommentServiceTest의 테스트 로직 질문

0

50

2

무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문

1

69

2

path 쿼리 관련 질문드립니다!

0

55

2

antigravity 에디터를 쓰신다면 종료해주세요

1

122

0

프로젝트 구조

0

83

2

article_like_count api test

0

71

2

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

0

101

2

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

0

88

2

findByPath에서 articleId로도 검색을 해야 할 것 같아요.

0

87

3

jpa ddl-auto none을 하는 이유와 join 방법

0

92

2

팩터리 메소드와 response 객체 사용 이유가 궁금합니다!

0

85

2

커서 기반 페이지네이션 과 무한 스크롤링

0

97

2

게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기

0

95

2

멀티 모듈이 아닌 MSA 환경에서 common

0

147

2

2Depth 강의 도중 궁금한 점 있어요!!

0

73

2