해결된 질문
작성
·
242
·
수정됨
0
강의에서는 한 기기에서 모든게 이루어져서
강의에서 진행되는 기기는 kafka 서버로 두고
외부 기기 2개로 producer와 consumer 코드를 실행시켜보고 싶은데
설정을 어떻게 해야할지 모르겠습니다.
검색을해보면 advertised.listeners에 IP를 입력해야 하는거 같은데
무슨 IP를 입력하면 좋을까요? 아니면 또 다른 설정이 있나요?
kafka서버 PC 한대 와 다른 PC 2대인 상황이고 같은 와이파이를 공유하고 있는 상황입니다.
producer 코드를 가진 PC를 실행시켜 kafka 서버 PC에 접속하여 consumer 코드를 가진 PC로 받고싶습니다.
답변 1
1
안녕하십니까,
일단 외부 PC에서 VM 환경으로 접속하려면 VM IP address등을 port forwarding 등으로 설정해서 접속할 수 있어야 합니다. 이건 인터넷으로 검색해 보시면 찾아보실 수 있습니다. 외부 client PC에서 다른 PC의 VM에 ssh로 접속 가능한지 설정후 테스트 해보십시요.
advertised.listener는 제가 설명 드리지는 않았지만, 일반적으로 기업 환경등에서 내부에서 사용하는 ip가 아닌 외부에서 접속을 허용하는 네트웍으로 접속하기 위해서 설정합니다.
그러니까, 기업내에서 한 서버에 두개의 네트웍 카드가 있으면 하나의 네트웍 카드는 내부망에서 사용하고, 다른 하나의 네트웍 카드는 외부망에서 사용할 수 있습니다. 이렇게 해서 물리적으로 분리된 두개의 네트웍 ip를 가지고, 외부 ip만 오픈해서 외부에서 접속을 할 수 있게 합니다.
카프카는 listener와 advertised.listener 설정을 할 수 있는데, advertised.listener 설정을 별도로 하지 않으면 해당값은 listener와 동일한 값을 가지게 됩니다. 보통 기업 환경에서는 kafka broker들끼리의 통신은 내부망으로, producer/consumer는 외부망으로 접속하게 합니다. 그래서 listener와 advertised.listener 설정을 다르게 합니다.
하지만 테스트용으로는 그렇게 하실 필요가 없을 것입니다. 그냥 listener 설정만 하셔도 됩니다. 단 이때 listener에 설정된 ip는 반드시 외부에서 접속이 가능해야 합니다.
감사합니다
감사합니다! 시도해 볼게요!