카프카 데이터 플랫폼의 최강자 3장을 읽고 정리한 내용입니다.
많은 데이터 처리의 한계
운영 관리의 어려움
여러 대 서버로 이루어진 서버 그룹
더 높은 성능
장애 극복
시스템 확장 용이
남은 잔여 메모리 일부를 페이지 캐시로 사용해 성능향상을 높인다
카프카는 5GB 힙 메모리면 충분하니, 거기서 남은걸 페이지 캐시로 사용하길 권장
하나의 시스템에서 카프카와 다른 어플리케이션을 같이 실행하면 페이지 캐시를 공유하게 됨.
참고: https://brunch.co.kr/@alden/25
페이지 캐시는 리눅스(VFS 계층) 에서는 디스크 접근을 최소화 하여 파일 I/O성능을 향상시키기 위해 사용되는 메모리 영역입니다. 한 번 읽은 파일의 내용을 이 페이지 캐시 영역에 저장하고, 같은 파일의 접근이 일어나면 디스크에서 읽어오는 것이 아니라 페이지 캐시에서 읽어오게 됩니다.
리눅스에서 파일을 여는 과정 중 find_get_page() 메소드를 통해 해당 영역이 페이지 캐시에 있는지 확인하고 만약 있다면 디스크까지 접근하지 않게 됩니다. 만약 해당 영역이 페이지 캐시 내에 없다면_page_cache_alloc() 메소드를 통해 해당 파일의 내용을 저장할 페이지 캐시 영역을 할당하고, bio 구조체를 통해 할당받은 페이지 캐시를 추가 합니다.
출처: https://boxfoxs.tistory.com/288 [박스여우 - BoxFox]
빈번한 IO를 방지하기 위해 작은 IO들을 묶어서 처리할 수 있도록 배치 작업으로 처리
데이터를 구분하기 위한 단위로 사용
토픽명 => 접두어로 서비스 명을 사용
// 카프카 설정 파일
vi /usr/local/kafka/conflg/server.properties
// 팩터 값 설정
default.replication.factor
원본
읽기/쓰기가 여기서 발생
복제본
리더 파티션이 실패하면 팔로워가 리더 역할을 승계. 고장난 리더는 팔로워가 되어 복제되지 못한 데이터를 새 리더에게서 읽어와서 동기화
unclean.leadeer.election.enable = true or false
// 1번 방식 : false, 2번 방식 : true
브로커 레벨에서의 실패를 감지
모든 파티션의 리더 변경을 책임
토픽과 파티션 메타 데이터를 관리하고 파티션 리더를 결정
브로커 관리
brocker/topics에서 클러스터내 토픽 정보 확인 가능
컨슈머가 읽은 오프셋 정보
0.9 이후로는 오프셋 저장 장소가 카프카의 토픽(__consumer_offsets)
토픽의 상셍 설정 정보 확인