-
Opensearch - 샤드 복구 에러아키텍처/opensearch 2025. 8. 6. 10:28
1. 환경 구성Opensearch가 하나의 클러스터에 3개가 병렬로 구성돼 있음 2. 문제 상황서로의 Shard가 동기화 되지 않아서 오류가 발생하고 있음.이런 경우 내부적으로 서로 동기화를 맞춰주는데, 한번에 2개(기본값)의 shard만 작업하는 문제가 있음.해결책으로 한 노드가 동시에 최대 10개의 shard를 복구하도록 설정3. 해결 방법아래의 명령어를 입력하여 해결curl -X PUT "localhost:9200/_cluster/settings" -H \'Content-Type: application/json' \-d ' { "transient": { "cluster.routing.allocation.node_concurrent_incom..
-
-
Producer의 acks 설정에 따른 send 방식아키텍처/kafka 2025. 6. 9. 17:01
Producer는 Leager boprker가 메시지 A를 정상적으로 받은 뒤 min.insync.replicas 개수 만큼의 Replicator에 복제를 수행한 뒤에 보내는 Ack 메시지를 받은 후 다음 메시지를 전송한다. min.insync.replicas: broker가 살아있는 상태에서 몇 개의 broker가 죽었을 때 까지 파티션 복제를 할 것인지를 설정. 예를 들어 broker가 3개, min.insync.replicas가 2로 설정돼 있으면 broker가 2개 살아있을 때 까지만, 파티션 복제를 수행함. 브로커가 1개 살아 남게 된다면 파티션 복제를 수행하지 않음. 만약 오류 메시지를 브로커로 부터 받으면 메시지 A를 재전송한다. 메시지 손실이 되지 않도록 모든 장애 상황을 감안한 전송 모드..
-
Kafka Config 구분 및 이해아키텍처/kafka 2025. 6. 4. 17:39
Broker와 Topic 레벨 ConfigKafka 서버에서 설정되는 ConfigBroker의 Config는 전체 토픽에 적용되는 설정Topic의 Config는 특정 Topic에 커스터마이징 되는 설정보통 server.properties는 broker 재기동이 필요dynamic config는 kafka-configs를 이용하여 동적으로 변경 Producer와 Consumer 레벨 ConfigKafka 클라이언트에서 설정되는 ConfigClient 레벨에서 설정되므로 server.properties에 존재하지 않고, kafka-configs로 수정할 수 없으며 Client 수행시마다 설정할 수 있음
-
카프카 - 메시지 키 관련 내용 및 생성 방법아키텍처/kafka 2025. 6. 2. 17:08
카프카의 메시지는 크게 두 가지 종류가 있다. 키가 있는 경우 vs 키가 없는 경우키가 있는 경우특정 key 값을 가지는 메시지는 특정 파티션으로 고정되어 전송된다.키가 없는 경우key가 없는 경우는 Round Robin 방식으로(1번씩 순차적으로 파티셔닝) 파티션에 전송된다. 다중 파티션 토픽 생성 방법kafka-topics --bootstrap-server localhost:9092 --create --topic multipart-topic --partitions 3토픽별 저장된 파티션의 위치 확인 방법kafka-console-consumer --bootstrap-server lolcahost:9092 --topic multipart-topic \> --from-beginning --property ..
-
자이언트스텝 면접 후기면접 2025. 6. 2. 09:42
1. 면접 환경대면 면접을 진행하였고 별도의 다른 격식을 차린 분위기는 아니였다. 복장도 일반적으로 깔끔한 복장(정장 X)을 입고 면접에 참여하면 됐고 면접은 3:1로 이루어졌다. 2. 면접 질문기본적으로 지원자의 경험에 따른 질문 위주로 진행되었다.CS지식은 거의 없었던 것 같다.프로모션(출석체크를 매일 진행하면서 이에 따른 보상을 주는 기능)과 관련된 기능을 개발하면서 알고리즘적으로 어떻게 구현했는지?매장의 위치와 자신의 현재 위치를 어떻게 구현했는지?공부는 어떻게 하는지?지원동기?JWT 사용 이유? Spring Security를 사용해서 유저를 컨트롤할 수 있었는데?
-
카프카 설정 ( Broker-Server )아키텍처/kafka 2025. 6. 2. 09:21
Kafka를 설치하고 난 후,config 디렉토리 내부를 확인해보면 server.properties, zookeeper.properties 두 가지가 있다.카프카와 주키퍼의 설정과 관련된 부분인데 설정해야 할 여러 가지 항목이 있다. dataDir 로그나 데이터와 관련된 정보를 저장.tmp 경로로 기본 설정돼 있는데, 이렇게 되면 vm 서버를 껐다가 킬 경우, offset 정보가 날라가서 어디까지 consumer를 수행했는지 위치 정보를 잃게 됨. replication-factor아래와 사진과 같이 브로커가 2개인 케이스에서 replication-factor을 '2'로 설정하게 되면, 파티션 내부의 데이터가 각 브로커로 복제가 되어서 하나의 브로커가 다운되더라도 다른 브로커에서 데이터를 가지고 있어, 데..
-
FileBeat 동작 원리카테고리 없음 2025. 4. 25. 11:02
FileBeat는 로그 데이터를 수집하는 가벼운 오픈소스이다. 무료로 사용할 수 있으며 주로 logstash와 opensearch와 연동하여 로그 데이터를 수집 및 전송해주는 역할로 많이 사용된다. FileBeat는 크게 inputs와 harvesters 두 가지로 구성돼 있다.하나의 harveter는 하나의 file 읽기에 대한 역할을 책임지고 있다.한줄 한줄 파일을 읽으며 output 설정을 토대로 데이터를 전송해준다.FileBeat가 로그 데이터를 읽게 되면, 디스크에 공간을 점유해서 계속 하여 읽기 작업을 수행한다. 이는 log파일의 이름이나 내용이 수정되더라도 FileBeat의 읽기 작업에 영향을 미치지 않는다. (다만, 디스크에 공간을 스냅샷을 떠 저장하고 있기 때문에 그만큼 공간이 낭비된다..
-
[Kafka] 아파치 카프카 로그 경로 바꾸기아키텍처/kafka 2025. 4. 7. 16:03
Kafka 로그 변경 server.properties 파일의 log.dirs 옵션이다. 이 로그 경로는 Kafka 애플리케이션의 자체 로그가 아니라 토픽, 파티션 정보등 Data가 저장되는 경로라고 이해 하는 것이 더 적합하다.zookeeper.properties 파일의 dataDir 옵션이다. zookeeper에 관련된 로그들이 저장되는 경로이다. kafka 애플리케이션의 로그가 모이는 곳의 default 값이 카프카가 설치된 디렉토리의 logs 디렉토리 bin/kafka-server-start.sh 파일 kafka를 실행할 때 사용하는 스크립트 파일인 kafka-server-start.sh 맨 아랫줄을 보면 kafka-run-class.sh 라는 파일을 참조하는데 이 파일을 ..