Replication replication은 기본적으로 데이터의 손실을 최소화하기 위해서 만든 개념이다. partition을 복제하여 다른 broker상에서 복제물(replicas)을 만들어서 장애에 따른 손실을 대비한다. 원본 - Leader, 복제 - Follower producer, consumer는 Leader에만 pub/sub한다. replication은 broker 내부적으로 만든다. Follower가 요청해서 메시지를 가져가는 방식이다. Leader 장애가 나면 새로운 Leader 선정 및 선출된 Leader partition으로 pub/sub 한다. 하나의 Broker에만 Leader가 몰린다면? 하나의 broker에만 부하가 집중되는 것을 Hot Spot이라고 한다. Hot Spot을 방..
Consumer consumer들은 각각 고유의 속도로 commit log로부터 순서대로 poll하게 된다. 다른 consumer group에 속한 consumer들은 서로 관련이 없고 또한, 한 partition의 commit log에 있는 record를 동시에 다른 위치에서 read가 가능하다. consumer offset consumer가 자동, 수동으로 읽은 데이터의 위치를 commit하여 다시 읽음을 방지한다. __consumer_offsets라는 internal topic(기본적으로 kafka를 설치하면 있는 topic)에서 consumer offset을 저장하여 관리한다. format 예시) GroupB:MyTopic:P0:8 partition이 2개 이상인 경우에는 모든 메시지에 대한 전체..
Producer 드디어 Kafka라는 분산 messageQ에 데이터를 밀어넣어주는 producer이다. 앞서 broker를 일꾼이라고 비유한 바가 있는데, 이 일거리들을 던져주는게 producer의 역할이라고 할 수 있다. Kafka에서는 데이터를 "메시지, 레코드, 이벤트" 등으로 부르고는 한다. 사용하는 사람에 따라 편한 용어를 쓰는 것 같다.(필자는 해당 글에서 record라고 지칭하도록 하겠다.) Record Kafka에서 들어오는 데이터인 record는 다음과 같이 두 부분으로 나뉜다. Header: topic, partition, timestamp 등의 metadata Body: key, value(Avro, Json 등의 다양한 포맷의 형태) 다음과 같이 웹에서 request와 비슷하게 he..
- Total
- Today
- Yesterday
- React
- apache kafka
- feign client
- Firebase
- 리액트
- Container
- NextJS
- centos
- zookeeper
- consumer
- Producer
- JPA
- logback
- Linux
- OS
- apache
- spring
- KAFKA
- Front
- API
- K8S
- Java
- docker
- frontend
- spring boot
- Data Engineering
- cs
- rhel
- 프론트엔드
- broker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |