daangn/kinesumer
Amazon Kinesis용 클라이언트 측 분산 컨슈머 그룹 클라이언트
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 이상
바로 시작하기
- DynamoDB 상태 저장소 테이블 생성
LSI 스키마에 따라 DynamoDB 테이블을 생성합니다.
- Go 모듈에 Kinesumer 추가
go get github.com/daangn/kinesumer
- 클라이언트 초기화
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)
}
- 에러 채널 모니터링
go func() {
for err := range client.Errors() {
// 에러 처리
}
}()
- 스트림에서 메시지 소비
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/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@gitbapAI가 README 기반으로 요약했습니다 · 원문 보기