PaaS/MQ

엔터프라이즈용 kafka의 환경구성

armyost 2022. 7. 8. 18:50
728x90

엔터프라이즈 환경에서는 장애 복구등을 위해 하나 이상의 데이터 센터를 운영, 관리하는 경우가 많습니다. 따라서 kafka클러스터 역시 다수의 데이터 센터에 배치되어 있으므로, kafka와 kafka간의 데이터 리플리케이션은 필수 입니다. 이때 kafka간의 데이터 리플리케이션에는 주로 미러 메이커를 사용합니다. 

 

커넥터 기반의 미러메이커 2.0

장애복구 차원에서 다중 데이터센터를 운영하는 경우 각 데이터 센터에 kafka 클러스터를 배치하고 kafka와 kafka간에는 리플리케이션을 구성해야 합니다. 두번째 최근 가장 흔한 사례로써 온프레미스에서의 데이터를 클라우드로 마이그레이션하려는 경우에는 온프레임스에 kafka를 하나 두고 클라우드에 또 다른 kafka를 두어서 온프레미스에서 클라우드로 리플리케이션 하기도 합니다. 세번째는 데이터 분석을 위한 용도로 kafka와 kafka간에 리플리케이션이 필욯바니다. kafka를 용도별로 구분하는 경우도 있는데 예를 들어 업스트림 kafka는 실시간 용도이고 다운스트림 kafak는 배치를 위한 용도로 쓰입니다. 

[스트림] → [커넥터] → [kafka] 순이다.

 


엔터프라이즈 구성

여기서 한가지 중요한 점이 있습니다. 미머링 역할을 담당하는 kafka 커넥트의 위치입니다. 다운스트림 kafka와 kafka 커넥트가 같이 위치하고 있는 것으로 보입니다. kafka와 kafka간의 미러링에서 가장중요한 것은 메시지 손실이 없어야 한다는 점입니다. 일반적으로 미러링이라고 하면 미러링되는 대상과 미러링하는 대상 양쪽 모두가 동일하다는 생각을 할 것입니다.

 

예를들어 업스트림 kafka는 부산에 다운스트림 kafka는 서울에 위치하며 미러링을 위한 kafka 커넥트는 업스트림 kafa2k와 동일하게 부산에 위치한다고 보면. 업스트림 kafak의 토픽을 컨슘하는 컨슈머와 다운스트림 kafka의 토픽으로 전송하는 프로듀서가 있습니다. 이때 업스트림 kafka에서 컨슘하는 동작은 로컬 네트워크에서 이뤄지며, 네트워크 장애 상황은 거의 발생하지 않을 것입니다. 하지만 토픽으로 전송하는 동작은 네트워크 전용선 또는 인터넷구간에서 이뤄지므로 네트워크 회선 장애 등의 상황에 노출될 가능성이 높습니다. 

 

이번에는 미러링을 위한 kafka 커넥트의 위치가 다운스트림 카프카와 동일한 위치에 있는 경우를 가정해보겠습니다. 이번에는 업스트림 kafka에서 컨슘하는 동작이 전용선 또는 인터넷 구간에서 이뤄지고 다운스트림 kafka로 전송하는 동작은 로컬 네트워크에서 이뤄집니다. 만약 전용선 또는 네트워크 구간에서 회선 장애들의 문제가 발생한다고 했을때 컨슈머의 오프셋을 장애전 시점으로만 변경한다면 일부 메시지의 중복은 발생할 수 있지만 메시지의 유실은 되지 않을것입니다. 

'PaaS > MQ' 카테고리의 다른 글

kafka SASL 인증 구축하기  (0) 2022.07.14
kafka 클러스터 만들기  (0) 2022.07.13
kafka 커넥트  (0) 2022.07.08
kafka 스키마 레지스트리  (0) 2022.07.08
kafka systemctl 등록  (0) 2022.07.08