onlybooks / kafka2

실전 카프카 개발부터 운영까지
98 stars 56 forks source link

appendix_C cluster_zk_kafka문의 #3

Open EthanMathewHunt opened 2 years ago

EthanMathewHunt commented 2 years ago

안녕하세요

https://github.com/onlybooks/kafka2/blob/main/appendix_C/cluster_zk_kafka/docker-compose.yml 관련으로 질의 드렸던 개발자입니다 바쁘실텐데 답변해 주셔서 매우 감사드립니다^^

저는 로컬에서 구동했구요. 동일하게 컨테이너는 정상적으로 다 구동되는데 (7개 다 up) 메일에 드린 내용처럼 토픽 생성시부터 에러가 발생하더라구요 혹시 토픽 생성시에 에러 발생 안하는지요?

토픽생성 command 1 docker exec -i -t kafka3 /bin/bash kafka-topics --bootstrap-server kafka3:9092 --create --topic test --replication-factor 3 --partitions 1

토픽생성 command 2 docker exec kafka3 kafka-topics --bootstrap-server kafka3:9092 --create --topic test --replication-factor 3 --partitions 1

에러 로그 [2022-07-24 10:06:08,469] WARN [AdminClient clientId=adminclient-1] Connection to node -1 (kafka3/192.168.144.5:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

스크린샷 2022-07-26 오후 1 47 34 스크린샷 2022-07-26 오후 1 52 20 스크린샷 2022-07-26 오후 1 46 54

감사합니다.

peterko5236 commented 2 years ago

안녕하세요 독자님! 책에서 도커 클러스터 환경을 직접 다루지 않아, 해당 이슈로 조금은 당황하셧을 것 같습니다. 하나의 호스트에서 동일한 포트를 사용할 수 없어, kafka1은 9091, kafka2는 9092, kafka3은 9093 포트를 사용하고 있습니다. 따라서 아래와 같이 명령어를 입력하시면 정상 동작할 것입니다. kafka3:9092 -> kafka3:9093 kafka-topics --bootstrap-server kafka3:9093 --create --topic test --replication-factor 3 --partitions 1 책과 관련하여 문의 있으시면 언제든지 문의 주세요.

jjangga0214 commented 10 months ago

아마 490 페이지에 single 컴포즈 파일 기준으로 다음과 같이 적혀있어서 헷갈리신게 아닐까요?

스크린샷 2024-01-06 오후 5 11 40

single 과 cluster 는 서로 설정이 다르니까요.

저는 개발환경에선 (카프카만 집어서 말하는 게 아니라 일반적으로) 포트 설정은 디폴트로 놔두고 필요시 외부로의 매핑만 다르게 하는 것을 선호하는 편입니다. 예를 들면 자주 일관성있게 디폴트를 사용하면 포트가 상징이 되기도 하거든요.. 5432 만 봐도 postgres 인 것을 바로 알 수 있는 것처럼.. 또는 postgres 를 생각하면 5432 가 바로 떠오르는 것처럼.. 이런게 약간씩 작업 속도나 편의성을 올려주는 느낌이었습니다. 따로 제 머릿속에 매번 챙겨서 기억해야 할 정보를 줄이는 느낌도 있구요.

개인적으로는 kafka1 내부던 kafka3 내부던 9092로 일관되게 접속할 수 있는게 좋을 것 같다는 생각도 해봅니다

감사합니다.

peterko5236 commented 10 months ago

@jjangga0214

안녕하세요 독자님, 네 single 과 cluster는 서로 설정이 달라 약간 혼동이 있는 것 같습니다. 말씀주신 포트 부분은 좋은 의견이라고 생각합니다. 의견 주셔서 감사합니다 ^^