• Spring Cloud Slueth

    Spring Cloud Slueth Spring Cloud Slueth는 분산 트레이싱을 위한 Spring Cloud 프로젝트이다. 공식문서는 spring-cloud-slueth를 참고하길 바란다. 용어 Spring Cloud Slueth는 Dapper’s 용어를 사용한다. Span : 작업의 기본 단위. 예를 들어 RPC의 경우 요청을 보내고 받는것이 하나의 Span이 된다. Span은 64비트의 유니크한 ID를 가지며, 64비트의 TraceId를 가진다. Span은 description, timestamp, tag...


  • Apache Spark Job이 시작하지 못할때

    Apache Spark Job이 시작하지 못할때 아래와 같은 에러가 발생하면서 Spark Job이 시작하지 못할 경우가 있다. Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 원인 및 해결 방법 이 에러는 Spark Job을 실행할 때 executor memory와 executor core를...


  • Debezium

    Debezium CDC란? Changed Data Capture의 약자이다. 변경된 내용을 골라내는 기술이다. DBMS들은 CUD 작업전에 작업 내용을 Logging한다 (write-ahead-logging). CDC는 Source DB의 로그을 읽어 변경된 내용을 Target DB에 적용한다. OGG(Oracle Golden Gate), Debezium 등이 대표적이다. CDC는 주로 Incremental Indexing에 사용된다. Debezium이란? Debezium은 카프카 커넥터의 Source 커넥터의 집합이다. CDC를 사용하여 데이터베이스의 변경 사항을...


  • Dead Letter Queue in Kafka

    Dead Letter Queue in Kafka Dead Letter Queue 메시지를 어떠한 이유로 처리할 수 없는 경우엔 Dead Letter Queue(토픽)로 보낸다. 아래와 같은 이유로 메시지 처리가 실패할 수 있다 메시지를 deserialize할 수 없는 경우 데이터가 예상과 다른 경우 (예를 들어 값이 항상 양수인 필드에 음수가 들어간 경우) Kafka Connect Kafka Connect에서는 처리할...


  • Spring Micrometer Kafka Metric 수집

    Spring Micrometer Kafka Metric 수집 Spring Boot Actuator를 추가하면 Micrometer 관련된 디펜던시를 추가하고, 자동설정(auto-configuration)을 해준다. 스프링부트는 CompositeMeterRegistry를 자동설정하고 클래스패스에서 찾은 MeterRegistry를 CompositeMeterRegistry에 등록한다. 새로운 MeterRegistry을 등록하려면 micrometer-registry-{system} 디펜던시를 런타임으로 추가해주면 된다. 또한 스프링부트는 자동설정한 MeterRegistry를 Metrics 클래스의 글로벌 스태틱 변수에 등록한다. 아래와 같이 MeterRegistry를 주입받고 Meter를 생성해서 사용하면 된다. @Component...