카프카 역할은 메시지큐임
메시지큐는 워낙에 예전부터 종류가 많음. rabbitmq, activemq, zeromq 등등
심지어 activemq는 apache 였던가 그럼.
근데 사실 특별한 경우 빼고 범용적으로 쓰기에는 카프카만한게 읎음.
일단 메시지큐 자체가 대부분 메모리 기반이라 죽으면 데이터 유실나서 지랄맞음. 근데 카프카는 디스크 기반임.
근데 성능은 대부분의 케이스에서 다른 메모리 기반들이랑 비교해도 안꿀리고 오히려 더 나은 케이스도 있음.
이거는 카프카 공식 doc 보면 잘 설명되어있는데 요약하자면 디스크를 리니어하게 쓰기때문에 랜덤억세스 비율이 낮아서 그럼.
아무튼 성능도 걸출하고 데이터유실 걱정도 없다.
거기다가 데이터를 consume 하면 없어지는게 아니라 일정기간 리텐션을 두고있기때문에 새로운 consumer가 붙어도 예전 데이터부터 가져올 수 있다.
특히 빅데이터가 크면서 같이 큰 컴포넌트중에 하나임.
데이터 수집/추출하면서 어마어마한 트래픽을 받아내야되는 케이스에는 저거말고는 사실 답이 잘 없음.
그리고 꼭 어마어마한 트래픽이 아니라 그냥 일반 기업에서 배치성으로 데이터 처리할때도 쓰기 좋음.
메시지큐는 워낙에 예전부터 종류가 많음. rabbitmq, activemq, zeromq 등등
심지어 activemq는 apache 였던가 그럼.
근데 사실 특별한 경우 빼고 범용적으로 쓰기에는 카프카만한게 읎음.
일단 메시지큐 자체가 대부분 메모리 기반이라 죽으면 데이터 유실나서 지랄맞음. 근데 카프카는 디스크 기반임.
근데 성능은 대부분의 케이스에서 다른 메모리 기반들이랑 비교해도 안꿀리고 오히려 더 나은 케이스도 있음.
이거는 카프카 공식 doc 보면 잘 설명되어있는데 요약하자면 디스크를 리니어하게 쓰기때문에 랜덤억세스 비율이 낮아서 그럼.
아무튼 성능도 걸출하고 데이터유실 걱정도 없다.
거기다가 데이터를 consume 하면 없어지는게 아니라 일정기간 리텐션을 두고있기때문에 새로운 consumer가 붙어도 예전 데이터부터 가져올 수 있다.
특히 빅데이터가 크면서 같이 큰 컴포넌트중에 하나임.
데이터 수집/추출하면서 어마어마한 트래픽을 받아내야되는 케이스에는 저거말고는 사실 답이 잘 없음.
그리고 꼭 어마어마한 트래픽이 아니라 그냥 일반 기업에서 배치성으로 데이터 처리할때도 쓰기 좋음.
- dc official App
ㅇㅇ 걍 존나쉬움 관리도 쉽고
워낙 여기저기서 많이 쓰다보니까 카프카 지원도 앵간하면 다됨 - dc App
포봄 // 자세한건
https://kafka.apache.org/documentation/#persistence
여기 잘나와있음 - dc App
Don't fear the file system - dc App
사실상 mq는 카프카가 평정했다고봐야함