Kafka: The Definitive Guide, 2nd Edition
by Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty
7장. 안정적인 데이터 전송
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
신뢰성은 단일 구성 요소가 아닌 시스템의 속성이므로, Apache Kafka의 신뢰성 보장에 대해 이야기할 때는 전체 시스템과 그 사용 사례를 염두에 두어야 합니다. 안정성과 관련해서는 Kafka와 통합되는 시스템이 Kafka 자체만큼이나 중요합니다. 그리고 안정성은 시스템과 관련된 문제이기 때문에 어느 한 사람의 책임이 될 수 없습니다. Kafka 관리자, Linux 관리자, 네트워크 및 스토리지 관리자, 애플리케이션 개발자 등 모두가 협력하여 안정적인 시스템을 구축해야 합니다.
Apache Kafka는 안정적인 데이터 전송에 매우 유연합니다. 웹사이트의 클릭 추적부터 신용카드 결제에 이르기까지 다양한 사용 사례가 Kafka에 존재한다는 것을 잘 알고 있습니다. 일부 사용 사례는 최고의 안정성이 요구되는 반면, 다른 사용 사례는 안정성보다 속도와 단순성을 우선시합니다. Kafka는 모든 종류의 안정성 절충을 허용할 수 있도록 충분히 구성 가능하고 클라이언트 API가 유연하도록 설계되었습니다.
유연성 때문에 Kafka를 사용할 때 실수로 시스템이 안정적이라고 믿다가 실수로 자신의 발등을 찍기 쉽습니다. 이 장에서는 먼저 다양한 종류의 신뢰성에 대해 이야기하고 Apache Kafka의 맥락에서 그 의미가 무엇인지 알아보겠습니다. 그런 다음 Kafka의 복제 메커니즘과 이것이 시스템의 신뢰성에 어떻게 기여하는지에 대해 이야기하겠습니다. 그런 다음 Kafka의 브로커와 토픽, 그리고 다양한 사용 사례에 맞게 구성하는 방법에 대해 설명합니다. 그런 다음 클라이언트, 생산자, 소비자를 살펴보고 다양한 안정성 시나리오에서 이들을 어떻게 사용해야 하는지에 대해 논의합니다. 마지막으로 시스템이 신뢰할 수 있다고 믿는 것만으로는 충분하지 않으며, 가정을 철저히 테스트해야 하기 때문에 시스템 신뢰성 검증에 대한 주제를 논의할 것입니다.
신뢰성 보장
신뢰성에 대해 이야기할 때는 일반적으로 시스템이 다양한 상황에서 보존하도록 보장되는 동작인 보증의 관점에서 이야기합니다.
아마도 가장 잘 알려진 신뢰성 보증은 관계형 데이터베이스가 보편적으로 지원하는 표준 신뢰성 보증인 ACID일 것입니다. ACID는 원자성, 일관성, 격리 및 내구성을 의미합니다. 공급업체가 자사 데이터베이스가 ACID를 준수한다고 설명할 때, 이는 데이터베이스가 트랜잭션 동작과 관련된 특정 동작을 보장한다는 의미입니다.
이러한 보증은 사람들이 가장 중요한 애플리케이션에서 관계형 데이터베이스를 신뢰하는 이유이며, 시스템이 약속하는 사항과 다양한 조건에서 어떻게 작동할지 정확히 알고 있기 때문입니다. 사람들은 이러한 보증을 이해하고 이러한 보증에 의존하여 안전한 애플리케이션을 작성할 수 있습니다.
안정적인 애플리케이션을 구축하려는 사람들에게는 Kafka가 제공하는 보증을 이해하는 것이 중요합니다. 이러한 이해를 통해 시스템 개발자는 ...