Solution 5

[ElasticSearch] 개념

참고 블로그 https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings https://ym1085.github.io/elasticsearch/Elastic-Stack-기본개념/https://velog.io/@sung-ik-je/ElasticSearch#index-1 ElasticSearch실시간으로 데이터 저장, 분석, 검색 엔진Java 오픈소스루씬(lucene) 이라는 검색 라이브러리를 기반으로 만들어짐수평적으로 확장 가능검색을 위해 단독으로 쓰이기도 하며, ELK 스택으로 사용되기도 함버전 7 부터는 jdk가 포함되어 있어서 Java를 따로 설치하지 않아도 됨!ElasticSearch를 한번 실행하면 data 디렉터리가 생성됨실행 명령어: bi..

Solution 2024.06.26

[Apache Kafka] 커밋, Offset과 Lag

참고 블로그: https://mycup.tistory.com/435https://ggop-n.tistory.com/90 Offset파티션 내 각 레코드의 위치. 식별자파티션 내에서 유일하고 순사적으로 증가하는 숫자(64비트 정수) 형태중복 메시지 우려.멱등성 유지하는 로직 구현중복 메시지 제거 로직 구현컨슈머 그룹의 컨슈머들은 각각의 파티션에 대해 자신이 가져간 메시지의 위치 정보(오프셋)을 기록하고 있음 커밋각 파티션에 대해 현재 위치(오프셋)를 업데이트하는 동작 Lag만약 Producer가 데이터를 넣는 속도가 Consumer가 데이터를 소비하는 속도보다 빠르다면 컨슈머가 마지막으로 읽은 offset과 Producer가 마지막으로 넣은 offset의 차이가 발생한다. 이 차이를 Consumer Lag..

Solution 2024.06.24

[Apache Kafka] Consumer Group

참고 블로그:https://devlog-wjdrbs96.tistory.com/442https://medium.com/@greg.shiny82/실무-관점에서의-apache-kafka-활용-023d468f9182 하나의 토픽에 여러 컨슈머 그룹이 동시에 메세지를 가져올 수 있다.동일한 컨슈머 그룹 내 컨슈머가 추가되면 위와 같이 파티션 소유권이 바뀌게 되고, 이렇게 소유권이 이동하는 것을 리밸런스 라고 한다.컨슈머 그룹의 리밸런스를 통해 컨슈머 그룹에는 컨슈머를 쉽고 안전하게 추가할 수 있고 제거할 수도 있어 높은 가용성과 확장성을 확보할 수 있다.카프카가 다중 컨슈머(Multiple Consumer) 기능을 지원한다는 것이다. 다중 컨슈머 기능이란 여러 개의 컨슈머 그룹이 서로간의 상호 간섭 없이 각자의 ..

Solution 2024.06.24

[Apache Kafka] Topic / Partition / Record

Topic / Partition / RecordKafka는 여러 개의 Topic을 가질 수 있다.Topic은 여러 개의 Partition을 가질 수 있다. (즉, 파티션이란 Topic을 분할한 것)Partition은 처음 생성 이후 추가만 가능하고 줄일 수 없다. 왜 하나의 Topic을 여러 개의 Partition으로 분산 저장하는가?분산 저장하여 고가용성파티션을 늘렸을 때 메세지는 Round-Robin 방식으로 write하나의 파티션 내에서는 메세지 순서가 보장되지만, 파티션이 여러 개일 경우에는 순서 보장 X   레코드(Record) Partition 내 Producer가 보낸 데이터 내용타임스탬프, 메세지 키, 메세지 값, 오프셋, **헤더**로 구성메시지 키: 메시지를 순서대로 저장 (메시지 키가..

Solution 2024.06.24

[Apache Kafka] Kafka 개념

참고 블로그 ​https://devocean.sk.com/community/detail.do?ID=165483&boardType=DEVOCEAN_STUDY&page=1https://medium.com/@0joon/10%EB%B6%84%EC%95%88%EC%97%90-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-kafka-bed877e7a3bc  Kafka 개요Kafka는 이벤트 처리 시스템 중 하나인 분산 메세지 큐 (비동기) 방식 이벤트 스트리밍 플랫폼이다. 인기 많은 식당에는 사람들이 많이 줄 서있다. 여기서 사람들 한 명 한 명을 데이터로 취급해보자.대기열(큐)이 없을 경우, 어떤 사람이 먼저 왔는지 구분이 되지 않는다. (질서 X)식당 내 수용 인원은 한정되어있으므로 대기열(..

Solution 2024.06.24