본문 바로가기

애플리케이션 프로그래밍5

[아파치 카프카 애플리케이션 프로그래밍 with 자바] 4-3장 카프카 컨슈머 카프카 컨슈머 멀티 스레드 컨슈머 파티션을 여러 개 운영하는 경우, 데이터를 병렬 처리하기 위해서는 파티션, 컨슈머 개수를 동일하게 맞춰야 한다. 토픽의 파티션은 1개 이상으로 이루어짐 1개의 파티션은 1개 컨슈머가 할당되어 데이터 처리 파티션 개수가 n개라면, 동일 컨슈머 그룹으로 묶인 컨슈머 스레드를 최대 n개 운영 가능 n개의 스레드를 가진 1개의 프로세스를 운영 1개의 스레드를 가진 프로세스를 n개 운영 어떤 방식으로 운영할지는 개발자의 선택 공식적으로 지원하는 라이브러리인 자바는 멀티 스레드를 지원하므로, 자바 애플리케이션을 개발한다면, 멀티 스레드로 동작하는 멀티 스레드를 개발하고 적용하면 좋다. 멀티 스레드 컨슈머 운영 중 고려 사항 하나의 컨슈머 스레드에서 예외 상황 (OOM 등등) 이 터.. 2023. 5. 18.
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 4-2장 카프카 프로듀서 카프카 프로듀서 카프카 프로듀서는 토픽에 데이터를 저장하는 첫 단계! acks 옵션 프로듀서의 옵션으로 acks 옵션 프로듀서가 전송한 데이터를 클러스터에 얼마나 신뢰성 있게 저장할 지 지정 가능 옵션에 따라 성능이 달라질 수 있다. acks = 0 프로듀서가 리더 파티션으로 데이터를 전송했을 때 리더 파티션으로 데이터가 저장되었는지 확인 하지 않는다 리더 파티션은 데이터가 저장된 이후, 몇 번째 오프셋에 저장되었는지 return 이 경우에는 데이터가 저장된 여부에 따른 응답을 받지 않음. 프로듀서는 데이터 전송 실패시, 재시도할 수 있게, retries 옵션 설정 가능 하지만 acks = 0 일 경우, 데이터 전송을 무조건 성공으로 간주, 해당 옵션은 무의미하다. 프로듀서와 브로커 사이의 네트워크 오류.. 2023. 5. 7.
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 4-1장 토픽과 파티션 토픽과 파티션 토픽이 사라지면 카프카 파이프 라인은 동작하지 않음. 적정 파티션 개수 토픽의 파티션의 개수는 카프카 성능과 밀접한 관계가 있다. 파티션의 개수를 적절하게 설정하고 운영하자. 파티션 개수를 정할 때 고려할 점 데이터 처리량 메시지 키 사용 여부 브로커와 컨슈머의 영향도 파일 시스템을 사용하는 카프카는, 파티션의 수 만큼 파일에 접근한다. 운영체제 특성 상 프로세스 당 접근 가능한 파일 개수가 정해져 있다. 브로커가 접근하는 파일 개수를 안정적으로 유지하고 싶을 경우는, 카프카 브로커의 수를 늘리면 된다. 데이터 처리 속도를 올리자 컨슈머의 처리량 늘리기 컨슈머가 실행되는 서버를 스케일업 GC 튜닝 컨슈머는 (S3, 하둡, 오라클 등등) 의 시스템과 연동되므로, 일정 수준 처리량을 높이는데,.. 2023. 5. 5.
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 3-5장 카프카 스트림즈 카프카 스트림즈 토픽에 저장된 데이터를 실시간으로 다른 토픽에 적재하는 라이브러리 카프카 클러스터와 완벽 호환 및 스트림 처리에 필요한 편리한 기능 제공 장애 발생 시 Exactly Once 하도록 장애 허용 시스템 장착 => 데이터 처리 안정성 Up. 개요 스트림즈 애플리케이션은 내부적으로 1개 이상의 스레드 생성 가능 스레드는 1개 이상의 태스크를 가진다. 스트림즈의 Task 는 스트림즈 애플리케이션을 실행하면 생기는 데이터의 최소 처리 단위 3개의 파티션으로 이루어진 토픽을 처리할 경우, 스트림즈 애플리케이션을 실행 시, 내부의 3개의 태스크가 생김. 카프카 스트림즈는 스트림즈 DSL (Domain Specific Language) 과 프로세서 API 2개의 방법으로 개발 가능 스트림즈 DSL 은 .. 2023. 4. 13.
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 3-1장 카프카 브로커와 클러스터 주키퍼 카프카 브로커 카프카 클라이언트와 데이터를 주고 받기 위해 사용하는 주체 장애가 발생하더라도 안전하게 사용하기 위해 데이터를 분산 저장하는 애플리케이션 보통 3대 이상의 클러스터로 운영 분산 저장 및 복제 카프카 브로커의 특징 전달 받은 데이터를 파티션에 저장 및 전달 파일 시스템에 데이터를 저장 메모리나 데이터 베이스가 아닌, 파일 시스템에 저장 => 속도 이슈를 캐싱으로 개선 데이터의 복제는 파티션 단위로 이루어짐 => 리더 파티션으로부터 받음 컨트롤러 다른 브로커들의 상태 체크 및 하나의 브로커가 제외될 경우, 리더 파티션을 재분배 데이터 삭제 카프카는 기본적으로 토픽 데이터 삭제하지 않음. 브로커만이 데이터를 삭제 가능함. => 삭제 용량 옵션 값 설정 가능 코디네이터 컨슈머 그룹 상태 체크 및 .. 2023. 3. 27.
반응형