AIO_KAFKA

less than 1 minute read

카프카 클라이언트의 파이썬 버전 프로젝트는 카프카의 프로듀서/컨슈머를 파이썬으로 구현한 것으로 자바버전의 API를 흉내낸 것으로 보인다. 내부를 보면 Producer는 결과에 대한 콜백을 등록하여 나중에 확인하는 Java 의 Future를 흉내내고, Consumer는 내부 반복 - 타임아웃시간 동안 기다리면서 메시지를 기다리는 작업을 수행하도록 구현한 프로젝트다.

반면, 내가 쓰고자하는 AIO-KAFKA는 파이썬의 코루틴을 써서 비동기식으로 구현한 프로젝트다.

필요성

처음에는 나도 kafka-python를 써서 테스트용 클라이언트를 짜서 실험했었다. 하지만, 하나의 프로세스에서 여러 컨슈머를 이용하려고 시도하자 내 짧은 파이썬 지식으로는 해결이 되지 않음을 느꼈다.

  1. kafka-pythonconsumer 블락킹 방식으로 메시지를 받을때까지 다른 작업을 못함
  2. 그러면 그 consumer를 코루틴으로 감싸서 스케쥴링하는 서비스를 만들면? -> 될지 안 될지 모르지만, 확실한 것은 배보다 배꼽이 더 큼 그거할 바에는 django로 웹 서비스로 구현

이런 때에 살짝 검색해보니 역시나 능력자들은 세계 어딘가에 있었다.

Leave a comment