수학에 인생을 바쳐서 연구하면 그 끝은 철학과 비슷하다.
학문의 관점으로 봤을때 수학과 철학은 닮은 점이 아주 많다.
먼저 이과적, 개발자적으로 보면 비슷한건 맞아보인다.
둘다 자연이 아닌 사람이 만든 개념을 연구하는 것이니.
고등학교 때 수학을 좋아하고, 철학을 싫어했던 입장으로선 의아했다.
수학 공식의 원리를 이해했을때 그 짜릿함, 그리고 그 공식으로 문제를 성공적으로 풀때 그 짜릿함이 있다.
마치 검법의 묘리를 깨우치고 신검합일의 경지에 올라 적수가 없을때 느낌이랑 비슷할까?
하지만 대학을 가서 그 짜릿함은 온데간데 찾을 수가 없었다.
공식을 대입해서 푼다기 보다, 개념을 이해하고 연관되는 개념을 추론하는 형식에 가깝게 느껴졌다.
그 순간 그 선생님의 말이 생각났다. 이런 뜻이구나.
(그래서 데카르트가 수학자 이자 철학자 였을까?)
이런 심오한 이야기로 블로그를 시작한 것은, Kafka를 공부하면서 점점 더 이해가 안되는것 같아서 그렇다.
아! 브로커 내부에선 이렇게 파티셔닝 하고 리벨런싱도 하는구나?
그럼 새로운 파티션 배정받으면서 메세지 유실이 어떻게 없는거지..?
잠깐 근데 파티셔닝 할때 Round Robin 방식으로 하는데, 컨슈머 하나가 파티션 하나를 읽으면 메세지 몇개 빠지는거 아니야?
?????
당연히 아니고, 내가 잘못 이해한거겠지만, 더 찾아봐야겠다..어렵다
저번 글과 연관되서 시작하자면 본격적으로 기본 프로젝트 뼈대를 잡고, 주요 클래스는 선언한채로 kafka 설치에 전념했다.
먼저 내 컴퓨터 환경에서!
Kafka 2.13-3.9.0을 현제 윈도우 환경에 설치하고,
Kafka-console-consumer.bat /Kafka-console-producer.bat 를 통해 테스트도 했다.
그리고 springboot에서 kafka 의존성 추가해주고..
producer는 kafka 연결된 로그는 보이는데...
consumer 쪽은 죽어도 연결이 안된다.
혹시 구현되있는 서비스가 빈으로 등록이 안된건지..
@service에서 @component로도 바꿔보고
groupId도 삭제해보고..문제가 안보인다.
그렇다면.. 어짜피 kafka는 docker통해서 띄우려고 했으니까! 윈도우 환경에서는 그만 하고, docker 사용하자.
근데 여기서
Docker로 띄우면 되겠지 생각했지만 찾아보면 다들 docker compose를 사용한다.
왜?
""
도커(Docker)는 소프트웨어 컨테이너 기술을 제공하는 플랫폼으로,
애플리케이션과 그 의존성들을 격리된 환경에서 실행할 수 있게 해준다.
이를 통해 애플리케이션을 효율적으로 개발, 배포, 및 실행 가능
도커는 다양한 운영 체제 및 클라우드 환경에서 동일한 방식으로 동작하므로 개발 환경과 프로덕션 환경 간의 일관성을 제공
""
Docker Compose:
Docker container를 여러개 관리할때 사용!
우린 kafka 하나만 쓸건데?
아니다. zookeeper도 같이 띄우기에 docker compose다.
이렇게 API로 테스트 진행하고,
받는 측에서도 로그 확인!
이 단순한 로그 보려고 온간 삽질을 했었는데, 너무너무 바보같은 실수라서 공유하기는 부끄럽다.
디버깅 팁을 주자면
Kafka Consumer가 로그가 안찍히고, .bat 파일에서 cli로 테스트 했을때는 잘된것이라면,
Consume config 파일이 Bean 등록이 됐는지 확인해보자...
조그마한 사이드 프로젝트에서 유용하게 사용하여 공유할 수 있는게 있다면 공유 하겠다.
분산형 스트리밍 플랫폼, 대규모 스트리밍 데이터를 주고받는데 특화되어있다.
너무 좋은 글과 작성자를 발견했다. 영어로 되어있는데 요즘은 번역도 잘 되니까 강추!
어렵지 않은 영어를 사용하셔서 읽을만 하다
https://www.linkedin.com/pulse/kafka-consumer-overview-sylvester-daniel/
https://www.linkedin.com/pulse/kafka-producer-overview-sylvester-daniel/
이분의 글도 너무 잘쓰시고 이해가 잘되어 공부하는데 많이 참고가 되었다!
https://medium.com/@greg.shiny82/%EC%8B%A4%EB%AC%B4-%EA%B4%80%EC%A0%90%EC%97%90%EC%84%9C%EC%9D%98-apache-kafka-%ED%99%9C%EC%9A%A9-023d468f9182