반응형 DATA42 [ES] match vs term [ElasticSearch] match, term 쿼리 제대로 이해하기ElasticSearch 에서 검색을 위한 가장 기본적인 쿼리 DSL 을 작성한다고 하면 대부분 match 쿼리나 term 쿼리를 베이스로 작성합니다. 기본적인 match, term 쿼리의 동작을 자세히 정리해봤습니다.jaeyeong951.medium.com match 와 term 쿼리 모두 특정 필드의 내용이 질의어와 일치하는 문서를 찾는데 사용합니다. 하지만 일치의 여부를 어떻게 찾는지에 대한 그 세부사항은 굉장히 다릅니다. GET index_for_search/_search{ "query": { "match": { "fieldForSearch": { "query": "this is something" } } }} 질의어인 “th.. 2024. 11. 6. [공유] 신뢰성 있는 카프카 애플리케이션을 만드는 3가지 방법 (최원영 Cory) [2023.09.14. 제3회 Kakao Tech Meet 발표] 이벤트 드리븐 아키텍처와 스트림 데이터 파이프라인을 만들때 고민해야 하는 부분을 다룹니다. 프로듀서/컨슈머와 같은 카프카 애플리케이션의 전달 신뢰도를 높이기 위해서 적용할 수 있는 기술들에 대해 설명하고 내부적으로 적용했던 경험을 공유합니다. 메시지 전달 신뢰성-> 정확히 한번, 적어도 한번, 최대 한번프로듀서는 브로커에 레코더를 보내고 컨슈머가 브로커를 통해 레코드를 가져간다.신뢰성 있는 카프카를 만드는 3가지 방법 방법1) 멱등성 프로듀서 Idempotence producer프로듀서가 보내는 데이터 중복 적재를 막기 위해 enable.idempotencs 옵션을 제공한다. 3.0부터는 기본값이 true로 설정된다.기본 프로듀서와 달리.. 2024. 11. 2. Kafka KRaft zookeeper어떤 브로커가 특정 파티션 및 토픽의 리더인지 결정하고 저장하는 역할토픽 추가 or 삭제, 브로커 추가 or 삭제 등 변경 사항이 발생하면 kafka에게 알려준다.단점 : kafka 자체가 아닌 외부에서 관리해야 하기 때문에 kafka 확장에 제한이 된다. (데이터 중복, 브로커와 zookeeper의 메타데이터 불일치, 시스템 복잠성 증가 등) 최신 버전 kafka는 zookeeper를 사용하는 대신 KRaft를 사용할 수 있다.kafka 내부에서 동작하며 kafka의 일부이기 때문에 관리 비용이 줄어든다.zookeeper 사용보다 확장성이 10배 이상 좋아지고, 배포와 운영이 더 쉬워진다고 한다. Controller Quorum의 장점zookeeper의 파티션 상한은 2000000개 .. 2024. 10. 27. ORM 이란 Object-Relational Mapping코드에 있는 객체와 DB에 있는 데이터를 매칭시켜주는 도구 SQL문을 직접 쓰지 않아도 데이터 핸들링이 가능하게 한다. 장점보통 ORM들은 Mock Object를 지원하기 때문에 실제 DB가 없어도 테스트가 가능하다.단점쿼리가 복잡해지면 그냥 쿼리를 쓰는게 낫다. 지원하지 않는 기능을 어떻게든 해결하려하면 너무 어렵기 때문에.. 2024. 10. 27. Redis 란? In-Memory Storage라서 저장장치를 쓰는 RDB에 비해 빠르다.다양한 기능을 제공한다. (key-value, 위치 기반 검색, 랭킹, queue-stack, Transaction 지원, TTL 지원) 주요 기능Snapshot - 지속적으로 무중단 저장 장치에 저장 가능하다.Replication - 다른 노드에 복제가 가능하다.Redis Cluster - 여러대의 Redis로 분산 저장 및 처리가 가능하다.Thread Model - Nodejs Thread Model과 유사하다.Redis와 MemcacheD를 비교해봤을 때 Redis 의 사용빈도가 높은 거으로 보인다. Redis ClusterRedis client가 요청하려는 key를 해시 함수를 돌려 나온 값으로 노드를 찾아서 저장한다.데이터.. 2024. 10. 26. 큐 vs 로그 기반 메시징 시스템 https://maily.so/devpill/posts/c2f8ba57 큐 vs 로그 기반 메시징 시스템: 당신의 선택은?실시간 데이터 처리를 위한 최적의 메시징 시스템 선택을 위한 필수 가이드maily.so 목표: 실시간 데이터의 높은 볼륨을 비동기식으로 처리하기 위해 시스템에서 메시지를 버퍼링하는 것 큐기반 메시징선입선출 방식 데이터처리N개의 생산자가 큐에 데이터를 pushN개의 소비자가 비동기로 큐에서 데이터를 읽는다큐를 더 높은 레벨의 스케일로 확장하는 법 -> pubsub : 소비자가 각각의 큐에서 동일한 메시지를 읽을 수 있도록 함 2024. 8. 19. [공유] 캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁 서비스에 대량의 트래픽이 몰릴 때 데이터베이스에 집중되지 않게 하는 방법 중 하나인 캐시가 있습니다.캐시로 인해 발생할 수 있는 장애 유형을 정리한 글을 공유합니다. 캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁대용량 트래픽 환경에서 캐시를 사용할 때 주의해야할 위험 상황과 예방법을 소개합니다.toss.tech 문제1. 캐시 쇄도 (Cache Stampede)캐시가 전부 같은 시간에 만료되도록 하면 발생하는 이슈해결방법: 지터(jitter)캐시 만료 시간에 0~10초 사이의 무작위 지연 시간을 추가하여 설정한다. 문제2. 캐시 관통 (Cache Pentration)보통 DB에 값이 없을 때 null을 받아오면 캐시를 채우지 않도록 구현하는데, '값이 없다' 라는 정보를 캐싱하지 않으면 계속 .. 2024. 6. 2. [공유] Kafka에서 파티션 증가 없이 동시 처리량을 늘리는 방법 - Parallel Consumer 네이버 D2 블로그 글을 읽고 공유합니다.https://d2.naver.com/helloworld/7181840 카프카에서 파티션별 단일 컨슈머 스레드가 할당되는 구조이기 때문에 메시지 동시 처리량을 늘릴 수 있는 가장 쉬운 방법 중 하나는 파티션을 증가시키는 것입니다.다만 파티션 수를 한번 늘리면 줄일 수 없다고 합니다. 파티션을 늘리는 단점브로커 파일 (데이터정보, 메터정보) 시스템 리소스 사용량 증가단일 브로커에 파티션 리더가 더 많이 배치되기 때문에 브로커 노드 장애 혹은 재시작으로 영향받는 범위가 넓다.파티션 단위로 설정된 레플리카 수만큼 복제되므로 디스크 사용량, latency가 증가한다. 네이버에서 카프카를 활용하여 로그 관리 시스템을 운영하는데 방대한 양의 로그를 빠르게 처리하려고 파티.. 2023. 12. 26. [NHN FORWARD 2021] Redis 야무지게 사용하기 보고 정리 반복해서 접근하고, 잘 변하지 않는 데이터를 캐시로 사용하는 것이 좋다. 캐싱 전략 읽기 전략 Look-Aside (Lazy Loading) : 캐시에 먼저 확인 후 -> 캐시에 없으면 DB 조회 * Cache Warming : 서비스에 처음 도입할 경우 캐시에 당연히 없으니 DB 조회에 몰리게된다. 이를 위해 미리 캐시에 저장한 후 오픈하는 것. 쓰기 전략 Write-Around : DB에만 바로 저장하는 것 Write-Through : DB에 저장하고, Redis에도 저장하는 것 단점: 저장할때마다 두번 거치기때문에 지연 생김, 무조건 저장하므로 낭비 부분이 생긴다. 2023. 8. 26. 이전 1 2 3 4 5 다음 728x90 반응형