전체 글137 실전 카프카 개발부터 운영까지 - 4. 카프카의 내부 동작 원리와 구현 4.1 카프카 리플리케이션 4.1.1 리플리케이션 동작 개요 replication-factor라는 기본 옵션에서 설정하는 값을 토대로 리플리케이션을 생성한다. N개의 리플리케이션이 생성되면, N-1개까지의 브로커 장애가 발생해도 메시지 손실 없이 안정적으로 메시지를 주고 받을 수 있다. 4.1.2 리더와 팔로워 리더 : 모든 읽기와 쓰기를 진행. 프로듀서는 리더에게만 메시지를 전송 / 컨슈머도 리더로부터 메시지를 가져옴. 팔로워 : 리플리케이션 진행. 파티션의 리더가 새로운 메시지를 받았는지 지속적으로 확인하고 새로운 메시지가 있다면 해당 메시지를 리더로부터 복제. 4.1.3 복제 유지와 커밋 ISR(InSyncReplica) 그룹 : 리더 & 팔로워는 ISR이라는 논리적 그룹으로 묶여있다. ISR 그룹.. 2024. 3. 20. 실전 카프카 개발부터 운영까지 - 3. 카프카 기본 개념과 구조 사내에서 카프카 스터디를 진행하고 있다. 아래 실전 카프카 개발부터 운영까지 책을 읽고 책 리뷰하는 형태로 진행된다. 실전 카프카 개발부터 운영까지 | 고승범 - 교보문고 실전 카프카 개발부터 운영까지 | 아파치 카프카의 공동 창시자 준 라오(Jun Rao)가 추천한 책!국내 최초이자 유일한 컨플루언트 공인 아파치 카프카 강사(Confluent Certified Trainer for Apache Kafka)와 공 product.kyobobook.co.kr 3.1 카프카 기초 다지기 카프카를 구성하는 주요 요소 주키퍼(ZooKeeper) : 아파치 프로젝트 애플리케이션 이름. 카프카의 메타데이터 관리 및 브로커의 정상상태 점검(health check)을 담당한다. 카프카 / 카프카 클러스터 : 여러 대의 .. 2024. 3. 19. AWS OpenSearch Deep Dive [오픈서치 딥다이브] 샤드를 고르게 배포하려면 샤드 수를 데이터 노드 수의 배수로 구성 가용성을 높이려면 AZ의 배수를 고려해서 레플리카 수를 구성 인덱스 생성 패턴 Rolling index : 데이터에 시간이 있어서 오래된 인덱스는 주기적으로 마이그레이션하거나 삭제 가능. ex) search-logs-2022, iot-sensor-logs-2022-07 Long-Term Retention Index : 같은 인덱스에 소스 데이터를 저장 문서의 업데이트나 삭제가 필요한 경우가 많음 ex) movies, website-contents, internal-docs 인덱스 사이즈 관리 사이즈 기반 로테이션 : 특정 크기를 넘어서면 인덱스를 새로 생성하여 데이터를 분배하여 넣음 데이터가 늘어나도 샤드 하나의 크기.. 2024. 2. 6. Elastic Search : Complete Guide to ElasticSearch - 관계형처럼 조인하기 [조인 쿼리] RDB보다는 몽고DB(조인을 아예 하지 않거나, 애플리케이션 수준에서 진행)같은 noSQL에서의 조인과 가깝다 비정규화는 데이터 저장소를 더 많이 먹지 않는가? ㅇㅇ 근데 es는 메인 저장소로 쓰지 않는 것을 추천하기 때문에 ㄱㅊ (검색만 빠르면 괜찮다 주의) es에서 간단한 조인 기능들을 제공하기는 하지만, 비효율적이기 때문에 많은 도큐먼트를 다룰 때는 좋지 않다 mapping 옵션에서 join property를 줄 수 있다. 아래 예시를 참고. (이때 department가 꼭 조인하는 인덱스의 명칭과 똑같을 필요는 없다.) PUT /department { "mappings": { "properties": { "join_field": { "type": "join", "relations":.. 2024. 2. 5. Elastic Search : Complete Guide to ElasticSearch - 매핑과 분석기에 대한 추천 [매핑에 대한 추천] 명시적 매핑을 사용해라 다이나믹 매핑이 편하긴 하지만 프로덕션에서 좋은 아이디어는 아니다. 많은 문서를 저장할 때는 최적화된 매핑이 저장소를 아낄 수 있다. dynamic을 false 가 아니라 strict 로 두라는 뜻 깜짝 놀랄만하거나 기대하지 못한 결과를 마주할 일이 없다. 항상 text이자 keyword로 멀티 매핑하는 것을 피해라 보통은 둘 중에 하나만 필요하다. 각 매핑은 디스크 공간을 필요로 한다. 전문 검색이 필요 > 텍스트 집계, 정렬, 필터링이 필요 > 키워드 coercion (강제 형변환)을 비활성화해라 강제 형변환은 올바르지 않은 행동도 용인하게 된다. 가능하면 항상 올바른 데이터 형을 사용해라. 적절한 숫자 데이터 형을 사용해라 int형이 충분한 경우가 많다... 2024. 2. 4. Elastic Search : Complete Guide to ElasticSearch - 리인덱싱 [기존 매핑을 업데이트하기] 일반적으로 업데이트 불가 기존 도큐먼트들을 업데이트하는 게 문제가 있기 때문 (ex. 텍스트 값들은 이미 분석되어 있음) 전체 데이터 구조를 다시 만들어야 할 수도 있음 비어있는 인덱스여도 매핑을 업데이트하거나 삭제하는 건 불가함. 방법은 새로운 인덱스로 옮기는 것 뿐.. “ignore_above” 옵션만 가능 [Reindex API] 새로운 매핑과 인덱스를 PUT 해준다. POST /_reindex API를 사용한다. POST /_reindex { "source": { "index": "reviews" }, "dest": { "index": "reviews_new" } } 리인덱싱은 생각보다 자주 필요하다 (비즈니스 요구사항이 바뀔 수도 있고.. 저장 형태를 바꿔야 할 수도.. 2024. 1. 21. 이전 1 2 3 4 ··· 23 다음