서론 모니터링은 보통 인프라와 어플리케이션 모니터링으로 나뉩니다. 인프라 모니터링은 cpu, memory 등 서버 성능에 대한 데이터인 메트릭을 제공합니다. 어플리케이션 모니터링은 API 호출, 어플리케이션 에러 등에 대한 데이터인 로그를 제공합니다. 어플리케이션 모니터링 시스템을 구축하게 되면 운영에 있어서 많은 이점을 얻을 수 있습니다. 먼저 어플리케이션에서 서비스 중단과 같은 에러를 해결하기 위한 로그를 빠르게 확인할 수 있습니다. 그리고 사용자 행동 패턴, 인기있는 기능, 사용 중인 문제점 등을 분석함으로써 사용자 경험을 개선하는데 유용한 정보를 제공 할 수 있습니다. 이 글에서는 어플리케이션 모니터링을 Spring logback에서 경로를 지정해 Kafka로 publish하고, ELK중 logs..
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..
Kafka-Broker & Apache Zookeeper 우선 Broker와 Zookeeper는 Kafka Cluser의 기본적인 요소라고 할 수 있다. 간단하게 설명하면 Broker는 직접 분산처리를 하는 일꾼이고 Zookeeper는 그것을 관리하는 관제탑이라고 비유할 수 있다. 설명을 들어가기전 전체적인 그림을 먼저 봐보자. 위 그림에서 처럼 Broker는 Producer와 Consumer를 통해서 메시지를 읽고 처리하는 kafka의 messageQ의 메인 로직을 실행하지만 Zookeeper는 그 로직이 잘 수행될 수 있도록 관리를 해주는 소프트웨어이다. Broker Kafka에서 broker는 Partition에 대한 read/write를 관리하는 소프트웨어이다. producer에서 데이터를 각 p..
Kafka에서 가장 기본이 되는 Topic은 메시지(=레코드, 이벤트, 데이터)들이 저장되는 논리적인 개념이다. 각 Topic은 용도에 맞게 만들어서 데이터를 저장하게 된다. ex) 서버 모니터링, 어플리케이션 로그 데이터 등.. Kafka 사전 지식 Kafka에는 Topic과 연관된 여러 개념들이 있다. 나중에 설명하겠지만 미리 설명해보자면, 1. producer: 메시지를 생산 및 Kafka의 Topic으로 보냄 2. consumer: Topic의 메시지를 소비 3. consumer group: 협력하는 consumer들의 모임(분산, 병렬처리를 가능하게 함) 4. commit log: 추가만 가능하고 변경 불가능한 Data Structure. 메시지는 항상 로그 끝에 추가된다.(한번 추가되면 변경이..
- Total
- Today
- Yesterday
- centos
- Producer
- OS
- logback
- consumer
- apache kafka
- broker
- spring
- spring boot
- feign client
- NextJS
- apache
- frontend
- cs
- Firebase
- Linux
- docker
- API
- rhel
- zookeeper
- Data Engineering
- Java
- JPA
- 프론트엔드
- Front
- K8S
- React
- KAFKA
- 리액트
- Container
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |