티스토리 뷰
IoT에서 사용하는 MQTT의 QoS 0이건 1이건 2이건..
Kafka의 No guarantee건 At most once건 At least once 건..
누락과 중복 문제는 어쩔 수 없이 발생한다.
Kafka에서는 Exactly Once를 사용해서 처리 할 수 있다.
medium.com/techwasti/idempotent-kafka-consumer-442f9aec991e
외에는, 잃는 것 보단 중복이 낫기 때문에 MQTT의 QoS1이나 At least once로 설정하고 Consumer에서 중복을 처리하는 로직을 짜 주어야 한다.
데이터 양이 엄청 많으면 DB에 일일히 접근하면 넘나 io에 문제가 생길 것이기 때문에, 각 데이터의 uuid값을 이용하여 Consumer에서 메모리로 중복을 체크하는 로직을 넣는것이 바람직 하지 않을까 싶다.
또는 소비자에서 해당 값을 어떻게 쓰느냐에 따라 달라질텐데
예를 들어 dynamodb 같은 경우 uuid를 그대로 partition key로 써서 중복 값은 덮어 쓰면 된다.
elasticsearch의 경우 _id 필드에 덮어 쓰도록 하면 된다.
p.s) 이 글의 카테고리는 도무지 무엇으로 해야할지 모르겠다.
'Cloud' 카테고리의 다른 글
[MSA] 쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD) (0) | 2021.03.17 |
---|---|
[MSA] 서비스 메쉬 (Service Mesh) (0) | 2021.03.15 |
[MSA] 이벤트 소싱 패턴을 이용한 동시성 문제 해결 (0) | 2021.03.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- source
- Visual C++
- android
- winapi
- 음악
- C
- 안드로이드
- 프로그래밍
- 드라이버
- jni강좌
- NDK
- kering
- AWS
- algorithm
- Python
- java
- linux
- driver
- API
- it
- C++
- Troubleshooting
- db
- Cloud
- 리눅스
- MFC
- database
- gcc
- jni
- Quiz
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함