전체 글
-
[Kafka] Partition 딥다이브📖 개발 공부/kafka 2023. 1. 18. 01:10
카프카의 토픽들은 여러 파티션으로 나뉘어진다. 토픽이 카프카에서 일종의 논리적인 개념이라면, 파티션은 토픽에 속한 레코드를 실제 저장소에 저장하는 가장 작은 단위다. 각각의 파티션은 Append-Only 방식으로 기록되는 하나의 로그 파일(물리적 파일)이다. 파티션의 특징은 병렬로 처리 가능하다는 것이다. 많은 양의 메시지 처리를 위해 파티션 수를 더 늘릴 수 있다.파티션의 레코드는 각각 offset 정보를 가진다. 이는 파티션 내에서 고유한 레코드의 순서를 의미하는 식별자다. 하나의 파티션 내에서는 메시지 순서가 보장된다. (메시지 순서 보장의 단위라 할 수 있다.) 하지만 하나의 토픽이 여러 파티션으로 구성되는 경우, 토픽 단위의 메시지 순서는 보장할 수 없다. 이는 파티션 내부에서의 순서는 보장되지..
-
[Kafka] Kafka Architecture📖 개발 공부/kafka 2023. 1. 14. 01:46
카프카란? 스트리밍 데이터를 다루기 위한 미들웨어와 그 주변 생태계 분산형 스트리밍 플랫폼(A distributed streaming platform)으로써 분산환경에 특화되어 있는 특징이 있다. 메시지를 특정 수신자에게 직접적으로 보내는 것이 아닌, 메시지를 받기 원하는 곳에서 해당 토픽을 구독함으로써 메시지를 읽는다. 카프카의 구성 Broker(브로커) Kafka에서 데이터를 수신, 전달하는 서비스이자 실행되는 Kafka Application Server 카프카 애플리케이션이 설치되어 있는 서버 또는 노드다. 하나의 Server 당 하나의 데몬 프로세스로 동작한다. 보통 가용성을 위해 3 Node Broker로 구성한다. Zookeeper(주키퍼) 자세히 보기 분산 코디네이션 시스템, Broker와 ..
-
[대규모 시스템 설계 기초 - 01] 사용자 수에 따른 규모 확장성📚 개발 도서/대규모 시스템 설계 기초 2023. 1. 13. 19:00
[01] 사용자 수에 따른 규모 확장성 한 명의 사용자를 지원하는 시스템에서, 몇백만 사용자를 지원하는 시스템에 이르기까지 설계 단일 서버 모든 컴포넌트(웹 앱, 데이터베이스, 캐시 등)가 단 한 대에 서버에서 실행되는 간단한 시스템 사용자 요청 과정 클라이언트는 DNS에 도메인 이름으로 IP를 질의한다. DNS는 우리 시스템의 일부는 아니다. 클라이언트는 DNS 조회 결과로 IP를 얻어온다. 이 IP 주소는 웹 서버의 주소이다. 이 IP 주소로 클라이언트는 HTTP 요청을 전달한다. 웹 서버는 클라이언트에게 HTML 웹 페이지를 전달한다. 데이터베이스 서버 분리 사용자가 늘어나면, 단일 서버로는 부족하여 웹계층(웹/모바일 트래픽 처리 서버)와 데이터 계층(데이터베이스 서버)로 분리할 수 있다. 이는 각..