← 질문 목록
#35깊이 0
메시지 순서는 어디까지 보장되는가?
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
대개 파티션 안에서만이다. 여러 파티션에 흩어진 메시지 사이에는 전역 순서가 없다. 만들려면 번호를 매기는 자리를 따로 둬야 한다. 그 자리가 병목이 되므로 병렬로 얻던 것을 얼마간 내놓게 된다.
| 범위 | 순서 보장 |
|---|---|
| 같은 파티션 | 넣은 순서대로 읽힌다 |
| 다른 파티션 | 순서가 없다. 병렬로 흐른다 |
| 전역 순서 | 파티션 하나로 몰거나 번호를 매기는 자리를 따로 둔다. 처리량을 잃는다 |
그래서 순서가 중요한 것끼리 같은 파티션으로 보낸다. 주문 이벤트를 주문 번호로 나누면 한 주문의 사건들은 순서가 지켜진다.
소비자 쪽에서도 깨질 수 있다. 여러 스레드가 한 파티션을 나눠 처리하면 넣은 순서와 끝난 순서가 달라진다.
순서가 반드시 필요한지도 따져야 한다. 상태를 순서 대신 버전으로 판단하면 늦게 온 이벤트를 버릴 수 있어서 순서 요구 자체가 사라진다.
추천 꼬리질문
관련 질문
- 메시지 큐를 두면 무엇을 얻고 무엇을 잃는가?아키텍처 · 분산시스템메시지 큐를 통한 비동기 통신 시 메시지 전달 순서 보장 문제는 핵심적인 고려 사항이다.
- 재시도가 있는 시스템에서 멱등성이 필요한 이유는?아키텍처 · 분산시스템재시도와 멱등성은 메시지 전달 보장 및 순서 보장과 밀접하게 연관되어 분산 시스템의 데이터 정합성을 다루는 개념이다.
- 처리에 실패한 메시지는 어디로 가는가?아키텍처 · 분산시스템둘 다 메시지 큐의 전달 보장 의미론을 다루며 재처리와 순서 보장이 상호 영향을 준다
- 데드레터 큐에 쌓인 메시지는 어떻게 처리하는가?아키텍처 · 분산시스템
- 전송 성공은 단말 수신까지 뜻하는가?모바일