[Kafka] kafka 세그먼트

Mineru·2022년 1월 29일
0

카프카에서 세그먼트란?

카프카에서는 프로듀서가 보낸 각 메세지들을 저장한다. 그런데 메세지들은 어디에 저장 되고 있을까?

기본적으로 해당 토픽의 파티션에 저장되어 있다.

로그 파일이 생성 되는 위치를 보기 위해서는 kafka의 위치에서 설정 폴더에 server.properties 내부의 logs.dir 값을 확인해야 한다.

해당 logs.dir 폴더에 들어가서 ls -l 명령어로 확인해보면,
디렉토리 구조로 여러 오프셋 파일과 직접 생성한 토픽이름으로 된 디렉토리가 있다.

생성한 토픽 이름이 만약 test-topic이라면 실제로 보여지는 이름은 살짝 다르다.
파티션0에 저장이 되었다면 test-topic-0. 파티션1에 저장이 되었다면 test-topic-1.
이렇게 보여질 것이다.

이제 세그먼트를 보기 위해서 직접 생성한 토픽 이름 + 파티션 번호로 된 디렉토리에 들어가서 세그먼트를 보도록 하겠다.

cd test-topic-0
xxd 00000000000000000000.log

00000000: 0000 0000 0000 0000 0000 003d 0000 0000  ...........=....
00000010: 0242 6526 4400 0000 0000 0000 0001 7ea7  .Be&D.........~.
00000020: dff2 3700 0001 7ea7 dff2 37ff ffff ffff  ..7...~...7.....
00000030: ffff ffff ffff ffff ff00 0000 0116 0000  ................
00000040: 0001 0a48 656c 6c6f 0000 0000 0000 0000  ...Hello........
00000050: 0100 0000 3a00 0000 0002 931f 6524 0000  ....:.......e$..
00000060: 0000 0000 0000 017e a7e0 0b93 0000 017e  .......~.......~
00000070: a7e0 0b93 ffff ffff ffff ffff ffff ffff  ................
00000080: ffff 0000 0001 1000 0000 0104 4f4b 0000  ............OK..
00000090: 0000 0000 0000 0200 0000 3900 0000 0002  ..........9.....
000000a0: 0876 76e4 0000 0000 0000 0000 017e a7e0  .vv..........~..
000000b0: 3bf3 0000 017e a7e0 3bf3 ffff ffff ffff  ;....~..;.......
000000c0: ffff ffff ffff ffff 0000 0001 0e00 0000  ................
000000d0: 0102 5400 0000 0000 0000 0003 0000 0039  ..T............9
000000e0: 0000 0000 0282 bc30 ab00 0000 0000 0000  .......0........
000000f0: 0001 7ea7 e111 f400 0001 7ea7 e111 f4ff  ..~.......~.....
00000100: ffff ffff ffff ffff ffff ffff ff00 0000  ................
00000110: 010e 0000 0001 023f 00                   .......?.

위 명령어를 입력하면 프로듀서에서 보낸 내용들이 군대 군대 보인다.
이때 00000000000000000000.log 파일 하나를 세그먼트라고 한다.
실제로 로컬 디스크에 저장되는 로그 파일을 세그먼트라고 한다.

profile
Daily Coding

0개의 댓글