✅ 인프라 구조 (Docker + Spring Boot)

💡 Zookepper 역할
Kafka 브로커들 관리하는 역할을 한다.
주로 "어떤 토픽이 있는지" , "리더가 누구인지" 같은 메타 데이터를 관리
Kafka 3.3+ 부터는 KRaft 모드라고 Zookeeper 없이 단독 실행 가능한 버전이 나왔다
✅ Redis , Kafka, ElasticSearch 접근하기
# 1️⃣ 인덱스 목록 + 문서 수 확인
curl http://localhost:9200/_cat/indices?v
# 2️⃣ 상품 데이터 전체 조회
curl http://localhost:9200/products/_search?pretty
💡 ?pretty → JSON 결과를 보기 좋게 들여쓰기 해주는 옵션
# 3️⃣ 키워드 검색
curl "http://localhost:9200/products/_search?q=검색어&pretty"
# 4️⃣ ES 서버 상태 확인 (접속 됐는지)
curl http://localhost:9200
# 1️⃣ Redis CLI 접속 (여기서부터 대화형 모드)
docker exec -it redis redis-cli
# 2️⃣ 접속 후 사용할 수 있는 명령어
KEYS * → 전체 키 목록
GET 키이름 → 특정 키 값 조회
TTL 키이름 → 만료 시간 확인
-1 : 영구 보관
-2 : 존재하지 않는 키
HGETALL 키이름 → Hash 타입 전체 조회 (쿠폰 재고 등)
exit → Redis CLI 종료
# 1️⃣ 토픽 목록 확인
docker exec kafka kafka-topics \
--bootstrap-server localhost:9092 --list
// 현재 등록된 토픽 → chat-messages / coupon-issued
# 2️⃣ 토픽 메시지 조회 (최근 10개)
docker exec kafka kafka-console-consumer \
--bootstrap-server localhost:9092 \
--topic chat-messages --from-beginning --max-messages 10
# 3️⃣ 컨슈머 그룹 처리 현황 확인
docker exec kafka kafka-consumer-groups \
--bootstrap-server localhost:9092 \
--group chat-group --describe
LAG = 0 → ✅ 정상 (모든 메시지 처리 완료)
LAG = 큰 숫자 → ⚠️ 처리 못한 메시지 쌓이는 중
| 서비스 | 접속 방식 | 특징 |
|---|---|---|
| Elasticsearch | curl (HTTP) | 접속 없이 바로 조회, REST API |
| Redis | redis-cli 접속 후 명령어 | 대화형, exit로 나옴 |
| Kafka | docker exec + 명령어 | 컨테이너 안에서 직접 실행 |