Skip to content

[refactor(BE)] : 기존 임베딩 요청 작업 개선 (Kafka -> Redis Queue)#87

Merged
vcz-Chan merged 3 commits intomainfrom
refactor/embed
Oct 26, 2025
Merged

[refactor(BE)] : 기존 임베딩 요청 작업 개선 (Kafka -> Redis Queue)#87
vcz-Chan merged 3 commits intomainfrom
refactor/embed

Conversation

@mdy3722
Copy link
Collaborator

@mdy3722 mdy3722 commented Oct 11, 2025

요약

  • 메모리 용량 이슈로 서버가 다운되는 현상이 발생해 카프카 브로커 도입을 철회하고 레디스 큐에 임베딩 요청할 게시글 정보를 푸시하는 방식을 도입함.
  • 게시글 수정 시 데이터베이스에 반영이 되지 않는 현상을 발견하여, 이에 대한 오류를 해결함.
  • 게시글 수정 시 게시글-태그의 관계를 완전히 제거(clear)하고 바로 반영(flush)하고 그 후, 수정된 게시글을 데이터베이스에 반영(Update)하여 문제를 해결
  • 임베딩 요청을 할 게시글 정보를 직접적으로 레디스에 저장하지 않고, 수정할 부분(제목 또는 내용)이 있는 것에 대해 수정되었으니 임베딩 작업이 필요하면 true, 임베딩 할 필요 없는 정보면 false로 하여 레디스에 저장됩니다.
  • AI서버는 게시글 정보를 읽어들이고 데이터가 true인 것의 키(title 또는 content)에 대해서만 데이터베이스에 접근하여 임베딩 처리합니다.

관련 이슈

Changes

  • BlogPostService.java 내의 게시글 생성 / 게시글 수정 코드에서 webclient를 통한 ai서버에 게시글 제목과 내용을 전송하는 방식을
  • 레디스 큐로 {postId, 제목 수정 여부, 내용 수정 여부}를 json 형식으로 Left Push하는 방식으로 리팩토링하였습니다.

Test Plan

  • Redis 클라이언트로 접속
# 로컬
redis-cli

# EC2
docker exec -it my-redis redis-cli
  • 키값 확인
keys *
  • 키 embedding:queue 의 내부 데이터(내용) 확인
# 0 : 처음, -1 : 끝까지 -> 출력
lrange embedding:queue 0 -1

스크린샷

  • 게시글 ID 28번을 생성하고 처음에는 내용만 수정, 두 번째는 제목만 수정하고 레디스 내부 데이터 현황 확인
image

@vcz-Chan vcz-Chan merged commit e118f70 into main Oct 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[♻️ Refactor] AI서버로의 게시글 임베딩 요청 작업에 대해 Redis Queue 도입

2 participants