Apache Kafka Complete Course for Beginners
- Kafka는 마이크로서비스 간의 통신을 위한 중개자 역할을 수행하여 서비스 간의 결합도를 낮추고 비동기 통신을 가능하게 함 🤝
- Kafka에서는 이벤트를 생성하는 서비스를 '프로듀서'라고 부르며, 생성된 이벤트는 키-값 쌍의 구조를 가짐 📝
- Kafka는 이벤트를 토픽이라는 논리적 단위로 구성하여 저장하며, 각 토픽은 애플리케이션의 필요에 따라 엔지니어가 결정 🗂️
- 토픽을 구독하는 마이크로서비스를 '컨슈머'라고 하며, 컨슈머는 토픽에 새로운 이벤트가 발생할 때 Kafka로부터 알림을 받음 🔔
- Kafka는 데이터베이스를 대체하는 것이 아니라, 하나의 이벤트가 여러 액션을 트리거하는 연쇄 반응을 가능하게 하는 도구로 이해해야 함 ⚙️
- Kafka는 실시간 분석을 자연스럽게 지원하며, 대량의 데이터를 실시간으로 처리해야 하는 애플리케이션에 적합 📊
- Kafka는 파티션을 통해 확장 가능한 성능을 유지하며, 각 파티션은 독립적으로 처리될 수 있음 📦
- 컨슈머 그룹을 통해 특정 파티션에 대한 처리량을 늘릴 수 있으며, Kafka는 자동으로 로드를 분산함 🧑🤝🧑
- Kafka 서버(브로커)는 이벤트를 필요한 기간 동안 영구적으로 저장하며, 이는 Kafka가 표준 메시지 브로커와 차별화되는 중요한 특징임 💾
- Kafka의 이벤트는 컨슈머에 의해 소비된 후에도 삭제되지 않고 디스크에 유지되므로, 여러 번 읽거나 다른 컨슈머가 사용할 수 있음 📚
- 최신 버전의 Kafka는 K raft라는 자체 관리 시스템을 내장하여 외부 Zookeeper에 대한 의존성을 제거함 🛠️
- 데모에서는 음식 배달 백엔드 시스템을 시뮬레이션하여 Kafka의 프로듀서와 컨슈머가 실제로 어떻게 상호 작용하는지 보여줌 🍕
- PyCharm은 Python 개발에 필요한 다양한 기능을 제공하며, Kafka 데모를 위한 편리한 개발 환경을 제공함 💻
- Docker Compose를 사용하여 Kafka 인스턴스를 로컬에서 쉽게 시작할 수 있으며, 이를 통해 개발 및 테스트 환경을 간편하게 구성할 수 있음 🐳