DevOps/Kafka

[카프카 프로그래밍] 카프카 생태계와 브로커, 주키퍼

키깡 2024. 6. 22.
728x90

카프카 생태계

  • 카프카 프로듀서가 기본적으로 데이터를 넣고, 컨슈머가 데이터를 가져간다.
  • stateful/stateless하게 다시 토픽을 처리해서 넣고 싶을 때는 스트림즈.
  • 데이터베이스에서 가져와서 토픽에 데이터를 넣는 역할은 커넥트(소스) 다시 가져가는 애가 커넥트(싱크).
    • 그럼 그냥 프로듀서, 컨슈머랑 같은거 아니야? 🙅 프로듀서 컨슈머와의 차이는 템플릿으로 반복적으로 만들 수 있다는 거다. (rest api)
  • 프로듀서, 커넥트, 컨슈머, 스트림즈는 모두 java library로 제공되며, go나 js는 써드 파티라 모든 기능이 제공된다고 볼 수 없다는 점 유의.

브로커는 뭐해?

  • 브로커0, 1, 2에 모두 데이터를 저장해서 브로커0이 죽더라도 컨슈머가 브로커1, 브로커2에서 가져갈 수 있게 분산 저장해.

주키퍼는 왜 필요해?

  • 카프카 클러스터를 실행하기 위해 필요해.
  • 카프카 3.0 부터는 주키퍼 없어도 클러스터 동작이 가능하지만, 상용에서는 아직도 주키퍼를 사용하고 있어.

이 포스팅은 모두 인프런의 [아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!를 듣고 제가 다시 볼 내용들을 정리한 포스팅입니다. 

 

댓글