사용환경
*kafka, redis는 docker로 설치해서 이용
- Ubuntu 18.04
- Kafka 2.5.0
- Redis 6.0.5
- Python 3.6.9
Kafka
- 비동기 처리를 위한 메시징 큐
1) Producer: 정해진 topic에 메시지를 기록함
2) Consumer: topic에 저장되어 있는 메시지를 필요로 할 때, 가져갈 수 있음
Redis
- 메모리 기반의 key-value 구조 데이터베이스 관리 시스템
- value 값으로 string, list, set, hash 등 여러 데이터 형식을 지원
0. python 패키지 설치
*가상 환경으로 프로젝트 실행
(venv) $ pip install kafka-python
(venv) $ pip install redis
1. txt 파일 읽고 Kafka에 데이터 전송
- txt 파일을 읽어 dictionary로 만들고 list 생성
- producer를 생성해 topic에 dictionary 형태로 메시지 전송
2. Kafka 데이터 Redis에 저장
- consumer를 생성해 topic 메시지를 list에 저장
- redis 서버에 연결
- sets을 이용해 key에 데이터 저장
*이 때의 데이터는 dictionary를 json 문자열로 변환해서 저장
3. Redis에 저장된 데이터를 json 데이터로 생성
- key에 저장된 sets 데이터를 list에 저장
- list 내의 데이터(json 문자열로 저장된 데이터)를 다시 dictionary로 변환
- list 데이터를 json 파일로 저장