데이터센터

데이터센터 (Datacenters)

이 페이지는 Kafka를 여러 데이터센터에 걸쳐 운영할 때 어떤 배포 패턴을 권장하는지 설명해요. 단일 클러스터로 데이터센터를 묶는 것보다, 데이터센터마다 로컬 클러스터를 두고 미러링하는 게 일반적으로 훨씬 낫다는 게 핵심이에요.

출처: 문서

본문

일부 배포는 여러 데이터센터에 걸친 데이터 파이프라인을 관리해야 할 필요가 있습니다. 우리가 권장하는 접근 방식은 각 데이터센터에 로컬 Kafka 클러스터를 배포하고, 각 데이터센터의 애플리케이션 인스턴스는 로컬 클러스터와만 상호작용하며 클러스터 간 데이터를 미러링하는 것입니다(이를 수행하는 방법은 지리적 복제(Geo-Replication) 문서를 참고하세요).

이 배포 패턴은 데이터센터가 독립적인 엔티티로 동작하게 해주고, 데이터센터 간 복제를 중앙에서 관리·조정할 수 있게 해줍니다. 또한 각 시설이 데이터센터 간 링크가 끊겨도 독립적으로 운영될 수 있게 해줍니다. 이 경우 미러링은 링크가 복원될 때까지 뒤처지고, 복원되면 따라잡습니다.

모든 데이터의 전역 뷰가 필요한 애플리케이션의 경우 미러링을 사용해 모든 데이터센터의 로컬 클러스터에서 미러링된 집계 데이터를 가진 클러스터를 제공할 수 있습니다. 이러한 집계 클러스터는 전체 데이터 셋이 필요한 애플리케이션이 읽기용으로 사용합니다.

이것이 유일한 배포 패턴은 아닙니다. WAN을 통해 원격 Kafka 클러스터에서 읽거나 쓸 수도 있지만, 당연히 클러스터에 도달하는 데 필요한 추가 지연시간이 발생합니다.

Kafka는 프로듀서와 컨슈머 모두에서 자연스럽게 데이터를 배치 처리하므로, 고지연 연결에서도 높은 처리량을 달성할 수 있습니다. 하지만 이를 허용하려면 socket.send.buffer.bytessocket.receive.buffer.bytes 구성을 사용해 프로듀서, 컨슈머, 브로커의 TCP 소켓 버퍼 크기를 늘려야 할 수 있습니다. 이를 설정하는 적절한 방법은 여기에 문서화되어 있습니다.

일반적으로 단일 Kafka 클러스터를 고지연 링크로 여러 데이터센터에 걸쳐 실행하는 것은 권장하지 않습니다. 이는 Kafka 쓰기에 대한 매우 높은 복제 지연시간을 초래하며, 위치 간 네트워크가 끊기면 Kafka가 모든 위치에서 사용 가능하게 유지되지 않습니다.

더 알아보기 (Learn more)

  • 데이터센터마다 로컬 클러스터를 두고 미러링하면 링크 장애에도 각 시설이 독립 운영돼요.
  • 고지연 WAN에서도 높은 처리량을 유지하려면 소켓 버퍼 크기 조정이 필요할 수 있어요.
  • 클러스터 간 미러링 구성은 지리적 복제 문서를 참고하세요.