팬아웃(fan-out)
in DEV on WEB, Kafka, Architecture, Fan-out
팬아웃(fan-out)
하나의 producer 가 다수의 consumer 에게 데이터를 분배하는 패턴
주로 메시지 큐, 이벤트 스트리밍에 사용되며, 데이터를 동시에 여러 대상에게 전달하거나 처리량을 확장하는데 사용됨
즉, 데이터를 여러 소비자에게 동시에 전달하여 처리 성능을 높이거나 확장성을 제공하는 패턴임
카프카의 팬아웃 예시는 한 개의 토픽을 producer 가 전송하면 여러 consumer 가 동시 구독하는 것을 들 수 있음
팬아웃은 부하를 분산시키고, 소비자를 추가하여 쉽게 확장이 가능하며, 각 소비자는 독립적으로 동작하므로 한 소비자의 장애가 다른 소비자에게 영항을 미치지 않음
팬아웃의 단점은 데이터를 여러 대상에게 중복 전달하므로 저장 공간이나 네트워크 비용이 증가할 수 있고, 모든 소비자가 동시에 데이터를 처리하지 않을 경우 데이터 처리 지연이 발생할 수 있음