ktds Container 기반 Kafka, Redis 교육자료
본 교육은 Container를 기반으로 한 Kafka, Redis 를 학습하는 과정으로 kubernetes 환경에서 kafka/Redis install수행하는 방법과 각각 모니터 솔루션을 설치하는 방법을 알아보며 Spring Boot / Python 으로 실습한다.
문의: 송양종( yj.song@kt.com / ssongmantop@gmail.com )
1. 시작전에 ( 가이드 문서 보기 )
- WSL2 설치
- Docker Desktop 설치
- MobaxTerm 설치
- Typora 설치
- 교육자료 Download
2. Kafka 개념 ( 가이드 문서 보기 )
- kafka 개요와 특징확인
- Kafka 구성요소인 Broker, Message, Producer, Consumer ,Topic 의 Concept 대해 확인
- Broker
- Producer와 Consumer 사이에 존재하는 Broker 확인
- Partition과 Consumer Group
- 병렬처리를 가능하게 하는 Partition과 수신 애플리케이션을 담당하는 Consumer Group
- Offset 관리
- Conumer Group 단위로 Offset 을 관리
- Producer/Consumer Partitioning
- Partion 별로 메세지를 수신/ 발신 한느 방법에 대한 개념 확인
- Replicas
- Broker 장애시 수신 메시지 분실 방지를 위한 복제(Replication)
- ISR(In-Sync Replica)
- ISR은 현재 동기화 상태에 있는 리플리케이션
- Producer Ack
- Replication 구조에서 Producer 메시지 송신 타이밍을 결정하는 Ack 설정
3. Kafka Hands-in ( 가이드 문서 보기 )
- Strimzi / Strimzi Operator 란?
- Strmzi download 및 install 방법
- Kafka Cluster 생성
- Kafka User 생성
- Kafka Topic 생성
- Broker 접근 방식의 이해
- Internal / External Access 이해
- Internal Access Test
- Node Port 구성 / External Access Test
- Python Client (Kubernetes / Docker 이용) 설치
- Internal Access / External Access
- 개인별로 할당된 Topic 확인
- 개인별 Spring Cloud Stream 특정
- kafka-consumer 실습
- kafka-producer 실습
- Stop The World 내용 확인
- Rebalancing 시나리오
- 시나리오 테스트 수행
4. Redis 개념 ( 가이드 문서 보기 )
- Redis 개요
- Redis / Redis Cluster
- Caching 정의
- hit 관련 용어
- Cache 사용시 주의사항
-
Pattern 1 : 코드성 데이터 캐싱
-
Pattern 2 : 주기 생성 데이터 캐싱
-
Pattern 3 : E2E 구간 성능 향상
5. Redis Hands-in ( 가이드 문서 보기 )
- helm chart download / Redis Cluster Install
- Internal Access - Redis client 실행, Redis-cluster 상태 확인, set/get 확인
- helm chart download / RedisInstall
- Internal Access : Redis client, set/get 확인
- External Access : Node IP 확인, Redis client 확인(Docker), set/get 확인
- redis-ui deploy
- ACL 기본명령
- 읽기전용 계정 생성
- 특정 key만 접근 허용 권한
- Jedis vs Lettuce
- redis-sample 소스 확인 및 수행
- CRUD 테스트
별첨. KT Cloud Setup ( 가이드 문서 보기 )
- k3s Cluster 용도 VM 생성
- k3s 설치
-
Strimzi Cluster Operator Install
-
Kafka Cluster 생성
-
KafkaUser / KafkaTopic 생성
-
Accessing Kafka / Internal Access / External Access(Node Port)
-
Monitoring 환경구축 (Kafka Exporter / Prometheus / Grafana )
- helm install
- Redis Cluster / Redis Install
- P3X Redis UI
- ACL
- Java Sample