daangn/kinesumer

Amazon Kinesis용 클라이언트 측 분산 컨슈머 그룹 클라이언트

개발 재료맘대로 써도 됨 · Apache-2.0백엔드·DBGo난이도
78+0이번 주0
8포크4이슈

중간맛 분석

Go로 작성된 Kinesis 클라이언트 라이브러리로, DynamoDB를 상태 저장소로 사용합니다. 여러 스트림을 동시에 소비하고, 샤드 범위를 자동으로 분배하며, 클라이언트 변화 시 리밸런싱합니다. 난이도는 중상(3/5)이며, AWS 계정 간 크로스 어카운트 접근도 지원하고, 즉시 사용 가능한 Go 코드 예제가 제공됩니다.

이런 레포예요

이럴 때 쓰면 좋아요

  • 여러 애플리케이션 인스턴스가 Kinesis 스트림의 데이터를 균형있게 소비해야 하는 경우
  • 실시간 로그 또는 이벤트 스트림을 여러 서버에서 처리할 때
  • Kinesis 샤드 재조정이나 인스턴스 스케일링 중에도 메시지 손실 없이 처리해야 할 때

핵심 기능

클라이언트 측 분산 컨슈머 그룹으로 리더 선출과 자동 샤드 리밸런싱DynamoDB 기반 상태 저장소를 통한 오프셋 체크포인트 관리크로스 어카운트 Kinesis 스트림 접근 지원

대안 대비 차별점

중앙 조정자 없이 DynamoDB만을 이용해 클라이언트 간 동기화를 수행하므로, 별도의 조정 서비스 운영 오버헤드를 제거할 수 있습니다.

준비물

  • AWS 계정 및 IAM 권한 (Kinesis, DynamoDB)
  • DynamoDB 상태 저장소 테이블 사전 생성
  • Go 1.11 이상

바로 시작하기

  1. DynamoDB 상태 저장소 테이블 생성

LSI 스키마에 따라 DynamoDB 테이블을 생성합니다.

  1. Go 모듈에 Kinesumer 추가
go get github.com/daangn/kinesumer
  1. 클라이언트 초기화
client, err := kinesumer.NewKinesumer(
    &kinesumer.Config{
        App:            "myapp",
        KinesisRegion:  "ap-northeast-2",
        DynamoDBRegion: "ap-northeast-2",
        DynamoDBTable:  "kinesumer-state-store",
        ScanLimit:      1500,
        ScanTimeout:    2 * time.Second,
    },
)
if err != nil {
    panic(err)
}
  1. 에러 채널 모니터링
go func() {
    for err := range client.Errors() {
        // 에러 처리
    }
}()
  1. 스트림에서 메시지 소비
records, err := client.Consume([]string{"stream1", "stream2"})
if err != nil {
    panic(err)
}

for record := range records {
    fmt.Printf("record: %v\n", record)
}

별 추이 · 7일

78+0 / 7일

활용성 · 따라 만들기 좋은가

따라 하기 좋음샘플 점수 38/100
  • 관대한 라이선스
  • 테스트 있음
  • 예제 디렉토리
  • 최근 활동
  • AGENTS.md
  • llms.txt
  • 템플릿

⚪ 최근 활동 정보 없음 · 2021년 생성

이 레포에 깃밥 배지 달기

[![깃밥](https://www.gitbap.com/badge/daangn/kinesumer.svg)](https://www.gitbap.com/r/daangn/kinesumer)

🔌 클로드에서 바로 써보기

깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.

방법 ① 커넥터 URL

클로드 설정 → 커넥터에 이 주소를 붙여넣기.

https://www.gitbap.com/api/mcp
방법 ② 플러그인 (체험까지)

플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
연결 방법 자세히 →

AI가 README 기반으로 요약했습니다 · 원문 보기