최신 글
-
Kafka 카프카 source connector가 exactly-once를 지원하는 방법 KIP-618에서 Source connector의 exactly-once(일부) 지원을 건의하였고 이 내용은 3.3.0에서 처음 적용되었습니다. https://cwiki.apache.org/confluence/display/KAFKA/KIP-618%3A+Exactly-Once+Support+for+Source+Connectors KIP-618: Exactly-Once Support for Source Connectors - Apache Kafka - Apache Software FoundationStatus Current state: Accepted Discussion thread: here Voting thread: here JIRA: KAFKA-10000 - 이슈 세부사항 가져오는 중... 상태 , .. -
Kafka 카프카는 복제본(replica)를 자동으로 다른 브로커로 재배치하지 않습니다 브로커가 0, 1, 2, 3, 4번으로 구성된 클러스터가 있고, 특정 토픽의 파티션은 0번이 리더이며 1번과 2번에 복제본이 있다고 가정합니다. - 브로커 : 0,1,2,3,4- 토픽의 파티션 : 0(리더), 1(팔로워), 2(팔로워) 이후 브로커 2번을 graceful shutdown하거나 예상치 못한 장애로 인해 오래 오프라인 상태가 되는 상황을 떠올려볼 수 있습니다.“브로커 2번이 장시간 오프라인이면, 카프카가 자동으로 복제본을 3번이나 4번 브로커로 옮겨주지 않을까?” 복제본이 자동으로 이동한다면 가용성과 내구성이 유지될 것처럼 보입니다. 그러나 실제 Kafka는 어떻게 동작할까요.카프카의 동작브로커 2번이 1분, 10분, 1시간, 그 이상을 오프라인 상태로 유지하더라도 Kafka는 오직 두 가지.. -
Kafka KIP-932 Queues for Kafka 사용해보기(KafkaShareConsumer) 일반적으로 사용되는 아파치 카프카는 이벤트 스트림으로 파티션단위로 데이터를 처리하기 때문에 컨슈머 개수를 파티션 개수만큼 실행시켜 운영하는 것이 일반적이다. Queues for Kafka는 이와 다르게 파티션 개수보다 더 많은 컨슈머를 운영하기 위한 기능이다. https://cwiki.apache.org/confluence/display/KAFKA/KIP-932%3A+Queues+for+Kafka KIP-932: Queues for Kafka - Apache Kafka - Apache Software FoundationStatus Current state: Accepted Discussion thread: https://lists.apache.org/thread/9wdxthfsbm5xf01y4xvq6qt.. -
Kafka Apache Kafka 4.1.0 docker-compose.yaml 실행 version: "3.8"services: kafka: image: apache/kafka:4.1.0 container_name: kafka41 ports: - "9092:9092" environment: KAFKA_NODE_ID: 1 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: INTERNAL://0.0.0.0:9092,EXTERNAL://0.0.0.0:9091,CONTROLLER://0.0.0.0:9093 KAFKA_ADVERTISED_LISTENERS: INTERNAL://127.0.0.1:9092,EXTERNAL://host.docker.internal:9091 KA.. -
개발이야기 Openapi API 사용시 ⚠️선결제하면 안되는 이유.. - 돈낭비.. 2024년 8월에 개인 프로젝트도 할겸 겸사겸사 openapi platform에서 선결제를 했었다. 그 당시 생각으로는 당장 사용하지 않더라도 차차 api key를 활용하면서 안전하게 돈이 빠져나가면 되겠다는 생각에 50달러(당시 7만원 정도)를 결제했었다.그리고 어쩌다저쩌다 하다보니 2025년이 되었고, 다시 프로젝트를 할 일이 생겨서 예전에 충전했던 50달러 사용해야지~ 하고 들어갔더니 왠걸~ 내가 사용할 수 있는 금액이 0.00 달러로 찍혀있는게 아닌가;;;그래서 내가 이걸 어디 낭비해서 다썻나..? 하고 payment history 내역을 찾아봐도 아무리 쓴 내역이 없다. 그러다가 들어간 곳은 credit grants. 여기서 수상한 state를 볼 수 있었는데 EXPIRE 라는 글자가 있는게 아.. -
개발이야기 Ubuntu에서 JDK11 설치 후 기본값으로 설정하기 1) JDK 버전 확인$ java -version 2) apt 업데이트, jdk11 설치$ sudo apt update$ sudo apt install openjdk-11-jdk -y 3) 버전 확인$ java -versionopenjdk version "11.0.27" 2025-04-15OpenJDK Runtime Environment (build 11.0.27+6-post-Ubuntu-0ubuntu122.04)OpenJDK 64-Bit Server VM (build 11.0.27+6-post-Ubuntu-0ubuntu122.04, mixed mode, sharing) -
Kafka 윈도우즈 wsl2 환경에서 로컬 카프카 브로커 연동하기 윈도우즈 wsl 환경에서 ipv6를 사용할 경우 localhost 또는 127.0.0.1 접근이 안될 경우가 있습니다. 이 경우 접근을 위해 다음과 같이 셋팅을 할 경우 접근이 가능합니다. 준비물- wsl2- Ubuntu- Apache kafka 3.9.0- Intellij CE 1) Apache kafka 3.9.0 다운로드 및 압축 풀기https://kafka.apache.org/downloads 에서 3.9.0 바이너리를 다운로드 합니다.이후 다운로드 받은 압축파일을 푼다. 2) Ubuntu 터미널 실행 및 다운로드 환경 접근dvwy@dvwy:~$ cd /mnt/c/Users/choco/Downloads/kafka_2.12-3.9.0/kafka_2.12-3.9.0dvwy@dvwy:/mnt/c/Use.. -
Kafka Sent auto-creation request for Set(__consumer_offsets) to the active controller 에러 해결 방법 로컬에서 테스트 도중에.. 발생한 에러이다.Sent auto-creation request for Set(__consumer_offsets) to the active controllerSent auto-creation request for Set(__consumer_offsets) to the active controllerSent auto-creation request for Set(__consumer_offsets) to the active controllerSent auto-creation request for Set(__consumer_offsets) to the active controllerSent auto-creation request for Set(__consumer_offsets) to .. -
Kafka 카프카4.0 부터는 eager rebalancing protocol이 삭제됩니다. https://issues.apache.org/jira/browse/KAFKA-18839 [KAFKA-18839] Drop support for eager rebalancing in Streams - ASF JIRAIn 3.1 we deprecated the EAGER protocol in Kafka Streams (see KAFKA-13439). This ticket covers actually dropping this protocol in 4.0. Note that KAFKA-8575 covers the actual task cleanup we can do once we no longer have to support eager rebalancing, whichissues.apache.org 이 이슈(.. -
Kafka [local macOS 환경] apache kafka(3.5.0기준) + redpanda/console 로 편하게 테스트 하기 로컬 환경에서 개발을 하다보면 항상 shell script로 사용하지만 좀 불편할때가 많습니다. redpanda에서는 console을 통해 apache kafka와 연동하는 웹 콘솔을 오픈소스로 제공하고 있습니다. https://github.com/redpanda-data/console GitHub - redpanda-data/console: Redpanda Console is a developer-friendly UI for managing your Kafka/Redpanda workloads. ConsoleRedpanda Console is a developer-friendly UI for managing your Kafka/Redpanda workloads. Console gives you a s..
인기글
-
Kafka 카프카는 복제본(replica)를 자동으로 다른 브로커로 재배치하지 않습니다 브로커가 0, 1, 2, 3, 4번으로 구성된 클러스터가 있고, 특정 토픽의 파티션은 0번이 리더이며 1번과 2번에 복제본이 있다고 가정합니다. - 브로커 : 0,1,2,3,4- 토픽의 파티션 : 0(리더), 1(팔로워), 2(팔로워) 이후 브로커 2번을 graceful shutdown하거나 예상치 못한 장애로 인해 오래 오프라인 상태가 되는 상황을 떠올려볼 수 있습니다.“브로커 2번이 장시간 오프라인이면, 카프카가 자동으로 복제본을 3번이나 4번 브로커로 옮겨주지 않을까?” 복제본이 자동으로 이동한다면 가용성과 내구성이 유지될 것처럼 보입니다. 그러나 실제 Kafka는 어떻게 동작할까요.카프카의 동작브로커 2번이 1분, 10분, 1시간, 그 이상을 오프라인 상태로 유지하더라도 Kafka는 오직 두 가지.. -
Kafka 카프카 컨슈머의 auto.offset.reset 옵션을 반드시 earliest로 변경해야 하는 이유 auto.offset.reset는 카프카 컨슈머를 다루는데 있어 아주 중요한 부분입니다. 해당 옵션이 가질 수 있는 값은 다음과 같습니다. earliest : 마지막 커밋 기록이 없을 경우, 가장 예전(낮은 번호 오프셋) 레코드부터 처리 latest : 마지막 커밋 기록이 없을 경우, 가장 최근(높은 번호 오프셋) 레코드부터 처리 none : 커밋 기록이 없을 경우 throws Exception 해당 옵션은 필수 옵션이 아닌 선택 옵션으로서 입력을 하지 않으면 자동으로 latest로 설정됩니다. 일반적으로 컨슈머를 운영할 때 이 옵션을 건드리는 경우는 거의 드문데요. 그러다보니 기본값인 latest로 설정할 경우 우리도 모르게 운영 중 데이터의 유실이 발생할 수 있다는 사실을 놓치기도 합니다. 그러다보.. -
일상 자전거를 구입하지 않고 카카오T바이크를 타는 5가지 이유 19년 3월 9일 카카오T바이크(이하 카카오바이크)를 처음 탄 이후 20번이 넘게 자전거를 이용했고 더 이상 나의 생활과 카카오바이크는 땔수없는 필수적인 요소로 자리잡았다. 올해 초 저렇게 허접한 노랑 검정색의 자전거를 누가 탈까 생각 했던 나였지만, 이제 카카오바이크에 누구보다 빠르게 달려가서 QR코드를 찍고 탑승하는 나의 모습을 보면 사람이 이렇게 바뀔 수 있구나 생각도 든다. 판교, 분당 근처가 주 생활권인 나에게로서는 버스나 택시보다 더 나은선택으로 다가올것이라고는 최초탑승 전에는 알지 못했다. 탑승 횟수가 1번, 10번, 20번이 넘어가면서 왜 카카오모빌리티가 막대한 resource(자전거 유지보수, 구입비용, 서비스 비용 등)를 들여 이 서비스를 했는지 알것만도 같았다. 카카오모빌리티는 이 서.. -
개발이야기 결혼식 청첩장 Github blog로 세련되게 만들기. 후기! 2019년 5월 18일. 이날은 여자친구와 4년 그리고 1일 되는날, 그리고 결혼식이 열렸던 날이다. 결혼식을 준비하면서 만든 github.io blog기반 모바일 청첩장을 만들게 된 이유와 만들기까지의 과정에 대해 이야기 하고자 한다. 결혼식을 위해 뼈발자(뼈속까지 개발자)인 나는 어떻게 결혼식을 준비하는데 있어 실력을 발휘할까 고민하던 도중 모바일 청첩장을 직접! 만들어보면 어떨까 아이디어를 생각하였다. 모바일 청첩장을 직접 만들고자 한 이유는 아래와 같았다. 첫째. 바른x, 더카x 등 종이 청첩장을 만들어주는 사이트의 디자인이 마음에 안든다. 둘째. 무료로 청첩장을 만들어 주는 사이트는 시간이 지나면 만료되어 더이상 조회가 불가능하다. 셋째. 선물 예약 기능. 친구들에게 필요한 선물을 알려주고 예약.. -
하둡 Hdfs dfs 명령어 정리 및 설명(ls, cat, du, count, copyFromLocal 등) Hadoop을 적절히 사용하기 위해서는 hdfs 명령어를 알아야 한다. 아래에 정리를 해 보았다. ※ 2.6.0 version을 기준으로 정리함 Hadoop 명령어 Hadoop filesystem command를 사용하기 위함. Usage : hdfs dfs [GENERIC_OPTIONS] [COMMAND_OPTIONS] HDFS 명령어 File System(FS) shell은 Hadoop Distributed File System(HDFS)를 여타 파일시스템처럼 관리하기 위한 목적으로 command를 사용할 수 있다. Hadoop-2.6.0에서는 총 33개의 HDFS 명령어를 지원한다. 1) appendToFile Local 파일들을 hdfs에 append 저장하기 위한 목적 Usage: hdfs df..
-
Kafka 카프카 프로듀서의 acks=all 옵션은 사실(?) 느리지 않다! 카프카 3.0 부터는 카프카 프로듀서의 acks 옵션이 all로 지정됩니다. acks=all이 기본값으로 지정된 이유 중 하나는 프로듀서와 브로커 간 통신을 멱등성(idempotence)있게 만들기 위함입니다. 프로듀서와 브로커는 acks를 통해 레코드가 전송되었는지 확인합니다. 문제는 acks가 유실되었을 경우입니다. 네트워크 상태, 브로커 상태에 따라서 언제든 유실될 수 있는 acks를 정상적으로 전송하기 위해서는 acks를 위한 acks(!)를 만들어야만 합니다. 이는 두 장군 문제 알고리즘과 동일하다고 볼 수 있습니다. 결과적으로 프로듀서의 중복 전달을 제거하기 위해 카프카 3.0부터는 enable.idempotence가 true로 변경되었고 이에 딸려오는 추가 옵션인 acks가 all로 설정되게.. -
Kafka 카프카 auto.offset.reset 종류 및 사용방법 카프카에서 consumer를 새로 생성하여 topic에서부터 데이터를 가져오기 위해서는 여러 옵션이 필요한데 그 중 하나는 auto.offset.reset입니다다. 이 auto.offset.reset의 역할에 대해 알아보겠습니다. 아래 글은 Kafka-client, Kafka broker 2.4 기준으로 작성하였습니다. auto.offset.reset auto.offset.reset에서 offset은 consumer offset입니다. 만약 이번에 topic에 붙은 consumer의 offset정보가 존재하지 않는다면 auto.offset.reset의 default값(latest)이나 또는 설정한 값을 따라가게 됩니다. auto.offset.reset - latest : 가장 마지막 offset부터 - .. -
Kafka 아파치 카프카 Exactly-once 처리의 진실과 거짓 아파치 카프카와 같은 분산 이벤트 스트리밍 플랫폼을 사용하거나 메시지 브로커를 활용하다 보면 항상 마주치는 문제는 마로 메시지 전달 시멘틱(message delivery semantic)입니다. 메시지 전달 시멘틱은 A지점에서 B지점으로 데이터를 전송할 때 어느 만큼의 신뢰도로 데이터를 전송하는지에 대한 정의입니다. 즉, 특정한 장애 상황(또는 임계치를 벗어난 상황)에서도 보증하는 데이터 전달 신뢰도라고 볼 수 있습니다. 메시지 전달 시멘틱은 크게 세가지로 나뉩니다. 적어도 한번(at least once), 많아도 한번(at most once), 정확히 한번(exactly once). '적어도 한번'은 데이터가 전달될 때 유실이 발생하지는 않지만 중복이 발생할 가능성이 있음을 뜻합니다. 아파치 카프카는 .. -
Java & Scala Java8이상에서 MaxMetaspaceSize 설정, 반드시 해야할까? 지난글(Java 8 에서 사라진 maxPermSize, PermSize을 대체하는 옵션?)에서 Class의 Meta정보, Method의 Meta정보, Static변수와 상수정보를 저장하는 공간인 Permanent Heap에 대해서 이야기해 보았다. Java8부터 해당 Heap은 Native Memory영역으로 넘어갔으며 Native Memory상한까지 영역을 차지할 수 있으며, 그렇기에 Metaspace에 대한 옵션은 크게 주의를 가지고 설정할 필요가 없다고 적었다. 하지만, MaxMetaspaceSize를 정의하지 않은 상태의 특수한 상황이라면 어떨까? 지속적으로 class의 meta정보, static변수와 상수정보값이 늘어나는 경우에는 아래와 같이 끔찍한 일이 벌어질 것이다. 상기 applicatio.. -
Kafka 카프카 source connector가 exactly-once를 지원하는 방법 KIP-618에서 Source connector의 exactly-once(일부) 지원을 건의하였고 이 내용은 3.3.0에서 처음 적용되었습니다. https://cwiki.apache.org/confluence/display/KAFKA/KIP-618%3A+Exactly-Once+Support+for+Source+Connectors KIP-618: Exactly-Once Support for Source Connectors - Apache Kafka - Apache Software FoundationStatus Current state: Accepted Discussion thread: here Voting thread: here JIRA: KAFKA-10000 - 이슈 세부사항 가져오는 중... 상태 , ..
728x90