일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Netty
- jmeter
- WebLogic
- docker
- RabbitMQ
- Redis Sentinel
- Hibernate
- spring boot
- spring boot redis
- KAFKA
- JPA
- MySQL
- argo cd
- docker-compose
- Docker Compose
- cassandra
- Airflow
- redis
- grafana
- mybatis
- ChannelPipeline
- coalesce
- vue.js
- weblogic 10
- Selenium
- netflix oss
- docker compose mysql
- spring cloud
- QueryDSL
- Spring Open Feign
- Today
- Total
목록전체 글 (401)
IT.FARMER
카프카 컨슈머 그룹의 리벨런싱 카프카는 컨슈머그룹이 존재한다. 이때 컨슈머그룹에서 broker가 잘못되어 빠지게 되거나, 그룹에 추가적인 컨슈머가 들어올때 리벨런싱을 진행하게 된다. 리벨런싱이 일어날때 Consumer 의 Partitioner 가 어떤 전략을 사용했느냐에 따라 컨슈머가 연결되는 Topic의 partition 이 달라진다. 프로듀서와 컨슈머에대한 파티션전략은 여기를 참고 kafka partitioner 전략 (consumer) - 작성중 kafka partitioner 란? (producer, consumer) 리벨런싱(rebalancing)이 생기는 이유 Consumer Group 내의 consumer 가 추가 되거나 삭제될때 클러스터링 확장 혹은 컨슈머 브로커에서 장애가 발생했을때 일어..
1. KafKa Offsets commit 정책 consumer configuration 에서 commit config 를 false로 설정 되었을경우, 즉 commit을 자동으로 하지 않았을 경우에 어떤게 commit을 할지 결정 하는 모드 이다. 커밋 오프셋을 하기 위한 몇가지 옵션이 존재 하며, 기본 BATCH 이고 다른 옵션으로 사용 가능하다. https://docs.spring.io/spring-kafka/reference/html/#committing-offsets 근데 이렇게 기본옵션인 auto commit을 사용하게 되면 배치모드로 동작하게되고 특정 부분에서 문제가 생겼을때, 유실되는 부분이 생길수있다. (spring boot 의 자동커밋 기본 시간은 5000ms) 그래서 중요한 업무를 수..
kafka partitioner 종류와 전략 (producer) 1. Kafka Producer의 Partition 종류 카프카 프로듀서에는 몇 가지 파티션분배 전략이 존재한다. 이중 자주사용되거나 중요한 몇가지에 대해서만 이야기 해보자 . DefaultPartitioner - 기본(org.apache.kafka.clients.producer.DefaultPartitioner) 메세지의 키 또는 라운드 로빈 방식에 따라 메세지를 토픽의 파티션에 할당한다. 동일한 키는 항상 동일한 파티션으로 분배되도록 하고, 키가없는 경우에만 라운드로빈으로 된다. 메세지 처리시 순서보장은 하지 않는다. → 이전략은 일반적으로 키가 랜덤하게 생성되는경우에 사용할수있다. RoundRobinPartitioner(org.apac..
컨슈머 그룹(consumer group) offset 관리 및 reset 방법 1. Consumer offset - reset(리셋) 방법 운영중에 특정 offset으로 이동하여 다시 실행하고자 할경우에 사용할 수 있다. 혹은 테스트중에 컨슈머를 모두 리셋시키고 싶을경우에 사용한다. 1.1 컨슈머 삭제 컨슈머그룹을 바꿔주거나 컨슈머를 삭제고 다시 생성하는게 제이 빠른것 같다. kafka-consumer-groups.sh --bootstrap-server : --group --topic --delete --execute 1.2 컨슈머 offset 변경방법 (리셋) 오프셋 변경방법에도 여러가지가 있다. 타임 단위로 이동할 수도 있고 , 초기상태로도 할 수있다. 즉 kafka 컨슈머 그룹의 offset을 리셋..
2020.05.13 - [MessageQueue/Kafka] - kafka cluster 구성 kafka 설치 (Single mode) 1. kafka 최신 파일 다운로드 💡 kafka는 단독으로 동작되지 않고 zookeeper에 의해 관리 되기 때문에 zookeeper를 함께 설치 하여하 한다. 기본적으로 kafka를 다운받으면 기본적으로 검증된 zookeeper 가 들어 있기때문에 다운 받지 않고 패키지 않에 들어 있는 zookeeper를 사용한다. wget --2021-03-18 15:37:56-- Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2 Connecting to downloa..
브로커? 파티션과, 리플리케이션, ISR 이란? 브로커란 kafka가 설치된 물리적 서버를 칭한다. 파티션과 리플리케이션은 토픽 생성시에 정하게 된다. 브로거카 3대 라고 생각하면 1:1, 1:2, 1:3 과 같이 파티션갯수, 리플리케이션 팩터를 지정 할 수있다. 토픽을 이렇게 생성하게 되면 브로커에서 다음과 같이 구성된다. partition : 3, replication fector :1 partition : 3, replication fector :2 partition : 3, replication fector :3 위의 그림들을 보면 선언한것 처럼 partition 은 각 노드별로 1번만 사용하며, 복제는 1,2,3 으로 지정한 것을 사용 할 수있다. ISR(In Sync Replica) 이란 이처..
kafka partitioner 란? (producer, consumer) 카프카에는 파티셔너에서 선택할수있는 몇 가지 전략이 존재한다. 이는 파티셔너에서 파니션으로 데이터를 분배해주게 되는데, 이때 어떤 방식으로 파티션에 분배할지에 대한 선택이다. 먼저 프로듀서가 무엇인지 부터 알아보자. 카프카의 프로듀서란 ? 카프카에서 프로듀서란 데이터를 생성해서 카프카 클러스터에 데이터를 보내어 큐에 쌓게 하는 역활을 한다. 프로듀셔는 카프카로 데이터를 전송할때 내부적으로 직렬화 → 분할→ 압축 단계를 거처 Accumulator 공간에 쌓여 있다가 Batch 형태로 브로커에 전송된다. 전체 적인 그림으로 보면 다음과같다. ProducerRecode 라는 클레스로 프로듀서를 만들어 send() 메세지를 보내면 첫째 ..
kafka ack mode 란? 카프카에는 ack 모드라는것이 있다. acknowledgment의 약어이다. (어렵다..) 이 ack 모드는 메세지를 성공적으로 처리했는지 kafka 에게 알리는 방식을 말한다. 방식에는 다음과 같이 세가지 방식이 있다. ack=0, ack=1, ack=all 이 모드들은 메세지의 송수신방식에 대한 설정이다. kafka는 메세지의 송신과 수신을 보장하기 위해 Producer 가 메세지를 송신할때 Broker가 메세지를 수신하고, Consumer가 Broker 에서 메세지를 수신할때까지 기다리는 방식을 사용한다. 쉽게 말해 ack mode란 ? Producer가 kafka의 broker 로 메세지를 보내게 되는데, producer 가 보낸 메세지를 kafka가 잘 받았는가?..
Message Queue, serial process(직렬처리구조) 프로듀서에서 발행한 A,B,C 데이터들을 컨슈머에서 하나씩 데이터를 가져와 (FIFO : first in first out) 순차적으로 처리 한다. Message queue, Parallel(병렬처리 기법 ) 하나의 큐에 여러개의 컨슈머가 할당되어 있는 경우엔 순차적메세지를 가져와 각자 독립적으로 처리가 가능하다. 빠르게 데이터를 소비 하며 시간을 줄일수있다. 확장에 용이 하다. Message Queue , multi consumer(다중컨슈머)Pub/Sub 프로듀서에서 발행한 데이터를 , 여러 컨슈머에서 동시에 받아 볼수있다. 채팅이나, 알림에 사용 할 수 있다. 하나의 메세지를 여러 컨슈머가 동시에 처리하는 것을 말한다.