range 3

partition.assignment.strategy 설정을 이용한 Consumer autoscaling 최적화

현재 제가 근무하는 회사는 모든 서비스를 마이크로서비스 아키텍처(MSA)로 동작하기 위해 Kubernetes 환경에서 운영하고 있습니다. 이러한 환경에서는 Horizontal Pod Autoscaler(HPA)를 사용하여, Consumer 애플리케이션이 일정 리소스를 초과하여 사용할 경우, 이를 감지하고 자동으로 스케일아웃(Scale Out)을 진행하여 최대 파티션 개수만큼 늘어날 수 있도록 설정하였으며 반대로 리소스 사용량이 감소하면, 스케일인(Scale In)을 통해 리소스 소비를 최소화하도록 조정하였습니다. 그러나, HPA로 인하여 Kafka 컨슈머의 스케일아웃(Scale Out) 또는 스케일인(Scale In)이 빈번히 발생하면, 파티션 할당(Partition Assignment) 과정에서 부하가..

Kafka/kafka 기본 2024.03.07

Elasticsearch Aggregations#3 terms, ranges, histogram, date_range

Aggregation을 수행할 때 사용할 데이터 terms terms는 데이터의 keyword별 종류 및 개수를 집계하는데 사용합니다. 모든 도큐먼트의 level의 종류와 개수 구하기 우리는 데이터를 가져오는 것이 목적이 아닌 Aggregation을 수행하는 것이 목적이기 때문에 "size"를 0으로 설정하였습니다. level 필드의 데이터 종류와 각 종류별로 도큐먼트가 몇개 있는지 확인합니다. api POST http://localhost:9200/test-log-index-2021-09-12/_search header content-type: application/json body { "size": 0, "query": { "match_all": {} }, "aggs": { "byLevel": { "..

Elasticsearch 2021.09.17

Elasticsearch 검색하기#3 match, term, range 쿼리

삽입된 데이터는 이전 페이지를 참조해주세요 https://stdhsw.tistory.com/entry/Elasticsearch-%EA%B2%80%EC%83%89%ED%95%98%EA%B8%B01 match 쿼리 match는 term과 비슷해 보이지만 미묘한 차이가 있습니다. match의 경우 기본적인 검색을 수행하는데 사용을 하지만 저 같은 경우 text 필드에서 보다 상세한 검색을 수행할 경우 주로 사용됩니다. 즉 문서의 내용에서 특정 단어가 들어 갔는지 검색할때 많이 사용됩니다. text 필드 검색하기 message 필드에 "aaa"라는 문자열이 포함된 모든 도큐먼트를 검색합니다. api POST http://localhost:9200/my-log-index-2021-08-29/_search head..

Elasticsearch 2021.09.10