본문 바로가기
반응형

Kafka7

[Kafka] 같은메시지를 반복적으로 소비했던 리밸런싱 이슈 해결 (MAX POLL RECORDS CONFIG = "max.poll.record 초기 Kafka 운영 중 이상한 이슈에 직면했다. - 현상 kafka의 소비되어 처리된 메시지가 한 번이계속 반복적으로 수행하고 적게는 몇번 많게는 수십번까지 다시 소비하는 현상 이였다. 내 이론상 kafka 메시지는 리스너에서 처리된 후 kafka에 커밋을 치고 offset값을 올려주면서 다음 메시지를 처리한다고 생각했는데... 즉, 다시 말해서 정말 생각지도 못했던 이슈였던 것이다. 원인을 찾고 해당 증상을 면밀히 조사하여, kafka 리스너 셋팅 몇개를 수정하면서 문제를 해결하긴 했지만 초기에 알지 못했으면 큰 이슈로 연결 될뻔 했다. - 원인 Consumer가 메시지를 처리하는 도중 Timeout이 발생했고 그로 인해 파티션 리밸런싱 과정이 일어났다. Consumer는 (MAX_POLL_RECOR.. 2020. 11. 30.
[Kafka] Topic 메세지 보관주기 설정 (MSK) AWS 에서 제공하는 MSK 의 다큐먼트먼저 공유한다. https://docs.aws.amazon.com/ko_kr/msk/latest/developerguide/msk-configuration-properties.html 사용자 지정 MSK 구성 - Amazon Managed Streaming for Apache Kafka advertised.listeners 속성은 설정할 수 있지만 listeners 속성은 설정할 수 없습니다. docs.aws.amazon.com 카프카를 운영하면서 메시지를 언제까지 보관해야할지 고민에 빠졌다. 기본값인 1주일 정도를 보관하자니 너무 무거워서 부담이되고. 짧으면 너무 메세지를 짧게 가지고있어서 확인을 못할 것 같고, 라는 고민에 빠졋다. 결국 1~3일 정도가 적당하다.. 2020. 10. 12.
[kafka Connect] 주기적으로 수행되는 무거운 쿼리 ALL_OBJECTS (table.poll.interval.ms) Kafka Connect 를 운영하던 중 1분에 몇번씩 아래와 같은 무거운 쿼리가 수행하는 것을 파악할 수 있었다. SELECT NULL AS table_cat, o.owner AS table_schem, o.object_name AS table_name, o.object_type AS table_type, NULL AS remarks FROM all_objects o WHERE o.owner LIKE :1 ESCAPE '/' AND o.object_name LIKE :2 ESCAPE '/' AND o.object_type IN ('xxx', 'TABLE') ORDER BY table_type, table_schem, table_name DB 자원의 큰 리소스를 차지하고 있었고. 해당 쿼리는 DB의 테이.. 2020. 10. 12.
[Kafka Tool] KaDeck 이용해 Topic, Message생성하기. 회사에서 프로젝트를 진행하고 있어 휴가기간동안 오랜만에 블로그를 작성한다. Test 개발을 끝내고 Kafka Listener 소스를 반영하다보면 Message를 생성해주는 생성자 부분을 개발하기 위해 시간이 소요되곤 한다. 그러다가 발견한 Kadeck 이라는 Tool 이다. 1. 설치 https://www.getkadeck.com/#/ 기본 인적사항만 입력하면 무료로 사용 가능하다. 위에 내용을 적고나면 Email 로 라인센스 key와 다운로드 url을 받을 수 있다. 2. 사용 KaDeck 메인 화면으로 "Add new cluster" 를 눌러서 Kafka 서버정보를 입력하면 아래와 같은 Kafka에 대한 정보를 볼 수 있따. 3. Topic, Message 생성 TOPIC 생성. TOPIC name과.. 2020. 8. 5.
[Spring Boot, kafka] 스프링 프로젝트에 kafka 리스너 적용기. Kafka와 zookeeper 설치와 실행이 완료됬다면 spring 프로젝트에서 접근이 가능하다. kafka가 로컬에 실행하였다면 간단하게 토픽이 생성되는 것 까지 볼수있다. 1. gradle Kafka 추가. bulid.gradle implementation 'org.springframework.kafka:spring-kafka' 2. yml (properties) 셋팅 application.yml 3. Consumer 셋팅 @Slf4j @EnableKafka @EnableRetry @Configuration public class KafkaConsumerConfig { @Value("${spring.kafka.bootstrap-servers}") private String bootstrapServer.. 2020. 6. 29.
[MAC, Kafka] 맥에 Kafka 설치 하고 토픽생성. (Docker, homebrew, Apache) 맥에 Kafka를 설치할 수 있는 방법은 세가지가 있다. Docker homebrew (비추천) Apache에서 다운로드 https://www.apache.org/dyn/closer.cgi?path=/kafka/2.3.0/kafka_2.12-2.3.0.tgz 1. Docker 를 이용해서 다운로드 할때는 Confluent를 이용했다. https://docs.confluent.io/current/quickstart/ce-docker-quickstart.html Confluent Platform Quick Start (Docker) — Confluent Platform Version 5.5.1 Confluent Platform Quick Start (Docker) This quick start shows y.. 2020. 6. 29.
반응형