콘텐츠로 이동
Leader 문서0.4

Redis Lettuce 백엔드

최신 안정판 Leader 0.4.0 릴리스 기준

라이브러리 모듈

Lettuce connection, token 소유 Redis key, Lua compare-and-delete/extend로 단일·고정 슬롯 그룹·전략 선출을 구현합니다. 블로킹과 코루틴 API를 제공합니다.

Redis를 이미 운영하고 Lettuce의 connection 모델과 명시적인 script 방식을 선호할 때 선택합니다.

Maven 좌표: io.github.bluetape4k.leader:bluetape4k-leader-redis-lettuce

dependencies {
implementation(platform("io.github.bluetape4k:bluetape4k-dependencies:<version>"))
implementation("io.github.bluetape4k.leader:bluetape4k-leader-redis-lettuce")
}

고유 token이 TTL key를 소유합니다. Lua script가 release와 extension을 조건부로 수행합니다. 전략 선출은 후보 메타데이터를 저장하고 Core 전략을 적용합니다.

val elector = LettuceLeaderElector(connection)
elector.runIfLeader("daily-report") { generateReport() }

connection 확장/factory, blocking/suspend 단일·group elector, 전략 elector를 사용합니다. Connection은 호출자가 소유합니다.

전용 key prefix를 쓰고 Redis client/connection 생명주기를 명시합니다. 본문은 멱등하게 만들고 failover 중 동작을 미리 정하세요.

Spring은 Lettuce 자원으로 factory를 만들 수 있습니다. strategic-election과 rate-limiter 예제에 후보와 그룹 패턴이 나와 있습니다.

wait/lease/minimum lease, auto-extension, key prefix, group size, retry, client timeout, topology refresh, Redis 내구성 정책을 설정합니다.

경쟁은 null입니다. Timeout, MOVED/topology, script, 인증, extension 실패는 예외로 드러납니다. 만료 뒤 pause된 이전 작업과 겹칠 수 있습니다.

command 지연, reconnect, topology 변경, script 실패, key/TTL, extension 실패, skip 비율, Redis 메모리를 관측합니다.

실제 Redis에서 두 connection, token-safe release, 만료, 그룹 슬롯, 전략 registry, failover, suspend 취소를 검증합니다.

strategic-election으로 후보 점수 방식을, rate-limiter로 그룹 슬롯을 익히세요. Redisson의 고수준 client 모델과도 비교합니다.

Redis 가용성과 failover 의미가 job 경로에 들어옵니다. Redis token은 외부 DB의 fencing이 아닙니다.

아래 그림은 0.4.0 배포본의 README 자산을 해당 배포 커밋에서 직접 불러옵니다. 이후 SNAPSHOT이 아니라 이 매뉴얼 버전의 구조와 실행 흐름을 보여 줍니다. 미리보기를 누르면 같은 배포 커밋의 SVG 원본이 열립니다.

Lettuce Redis leader contract 지도

배포본 README: leader-redis-lettuce/README.ko.md

Lettuce slot-token acquire release and crash recovery 흐름

섹션 제목: “Lettuce slot-token acquire release and crash recovery 흐름”

Lettuce slot-token acquire release and crash recovery 흐름

배포본 README: leader-redis-lettuce/README.ko.md

Lettuce minLeaseTime backend TTL delegation 흐름

섹션 제목: “Lettuce minLeaseTime backend TTL delegation 흐름”

Lettuce minLeaseTime backend TTL delegation 흐름

배포본 README: leader-redis-lettuce/README.ko.md

Elector · Lua 지원 · 안정판 안내