윈도우즈 wsl 환경에서 ipv6를 사용할 경우 localhost 또는 127.0.0.1 접근이 안될 경우가 있습니다. 이 경우 접근을 위해 다음과 같이 셋팅을 할 경우 접근이 가능합니다.
준비물
- wsl2
- Ubuntu
- Apache kafka 3.9.0
- Intellij CE
1) Apache kafka 3.9.0 다운로드 및 압축 풀기
https://kafka.apache.org/downloads 에서 3.9.0 바이너리를 다운로드 합니다.
이후 다운로드 받은 압축파일을 푼다.
2) Ubuntu 터미널 실행 및 다운로드 환경 접근
dvwy@dvwy:~$ cd /mnt/c/Users/choco/Downloads/kafka_2.12-3.9.0/kafka_2.12-3.9.0
dvwy@dvwy:/mnt/c/Users/choco/Downloads/kafka_2.12-3.9.0/kafka_2.12-3.9.0$
WSL 우분투 환경에서 윈도우즈 다운로드 디렉토리에 접근하기 위해서는 /mnt/c/Users/사용자이름/Downloads 로 접근하면 된다
3) config/server.properties 설정
$ vi config/server.properties
broker.id=0
listeners=PLAINTEXT://[::1]:9092
wsl 환경에 접근하기 위해 IPv6 기준 로컬호스트인 [::1] 을 입력한다. 이후 카프카 브로커를 실행한다.
1) 주키퍼 실행
$ bin/zookeeper-server-start.sh config/zookeeper.properties
2) 카프카 실행
$ bin/kafka-server-start.sh config/server.properties
4) kafka-console-producer.sh확인
$ bin/kafka-console-producer.sh --bootstrap-server [::1]:9092 --topic test
>a
>b
>c
[::1]:9092로 전송하여 데이터가 정상적으로 전달되는지 확인합니다.
5) /etc/hosts 수정
우분투 내에서 해당 host로 접근을 하는 추가 호스트를 만들기 위해 다음과 같이 수정합니다.
$ sudo vi /etc/hosts
[::1] my-kafka
// 이후 부터는 my-kafka:9092 로 접근 가능
$ bin/kafka-console-producer.sh --bootstrap-server my-kafka:9092 --topic test
>a
>b
>c
6) intellij CE 에서 접근 확인
public class SimpleProducer {
private final static Logger logger = LoggerFactory.getLogger(SimpleProducer.class);
private final static String TOPIC_NAME = "test";
private final static String BOOTSTRAP_SERVERS = "[::1]:9092";
public static void main(String[] args) {
Properties configs = new Properties();
configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS);
configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String, String> producer = new KafkaProducer<>(configs);
String messageValue = "testMessage";
ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, messageValue);
producer.send(record);
logger.info("{}", record);
producer.flush();
producer.close();
}
}
bootstrap-server에 [::1]:9092 로 설정했을 경우 정상 접근됨을 확인합니다.
7) hosts 설정 수정 및 확인
메모장을 '관리자 권한으로 실행' 으로 실행합니다. 이후, \Windows\System32\drivers\etc\hosts 파일을 실행하여 다음과 같이 수정합니다.
이후 intellij CE에서 my-kafka:9092 로 접근해서 브로커와 연동되는지 확인합니다.
public class SimpleProducer {
private final static Logger logger = LoggerFactory.getLogger(SimpleProducer.class);
private final static String TOPIC_NAME = "test";
private final static String BOOTSTRAP_SERVERS = "my-kafka:9092"; // 변경된 호스트
public static void main(String[] args) {
... 생략
'빅데이터 > Kafka' 카테고리의 다른 글
Sent auto-creation request for Set(__consumer_offsets) to the active controller 에러 해결 방법 (0) | 2025.04.18 |
---|---|
카프카4.0 부터는 eager rebalancing protocol이 삭제됩니다. (0) | 2025.02.28 |
[local macOS 환경] apache kafka(3.5.0기준) + redpanda/console 로 편하게 테스트 하기 (0) | 2025.02.26 |
카프카에서 데이터 삭제는 어떻게 이루어 지는가> (0) | 2025.02.13 |
kafka 4.0부터는 스칼라 2.12가 더 이상 사용되지 않습니다. (0) | 2025.02.13 |
standalone 카프카(kraft모드 in local) 실행 스크립트(1줄) (0) | 2025.02.11 |