티스토리 뷰

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

 

Idempotent Kafka Consumer

In the last couple of articles, we have seen how Kafka guarantees message processing, as part of this we saw idempotent Kafka producers…

medium.com

외에는, 잃는 것 보단 중복이 낫기 때문에 MQTT의 QoS1이나 At least once로 설정하고 Consumer에서 중복을 처리하는 로직을 짜 주어야 한다. 

데이터 양이 엄청 많으면 DB에 일일히 접근하면 넘나 io에 문제가 생길 것이기 때문에, 각 데이터의 uuid값을 이용하여 Consumer에서 메모리로 중복을 체크하는 로직을 넣는것이 바람직 하지 않을까 싶다.

또는 소비자에서 해당 값을 어떻게 쓰느냐에 따라 달라질텐데

예를 들어 dynamodb 같은 경우 uuid를 그대로 partition key로 써서 중복 값은 덮어 쓰면 된다.

elasticsearch의 경우 _id 필드에 덮어 쓰도록 하면 된다.

 

p.s) 이 글의 카테고리는 도무지 무엇으로 해야할지 모르겠다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
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
글 보관함