原因分析:
个人理解:wsl2是windows下面的子程序,本身也是用一个端口运行,而不是使用主机端口,所以spring boot直接连接主机端口是找不到wsl2下面的kafka,需要转发。
解决办法:
1. 在WSL2 终端内部使用`ifconfig`(或`ip addr`),找到其外部接口 IP( `eth0` 的网络接口,它有一个IP地址 XXX.XX.XX.XX,这可能是您的外部接口IP地址,因为它是分配给计算机的可公开路由的IP地址),然后将其用作通告的侦听器。
2. 使用Windows CMD运行下面命令,将端口从管理程序转发到主机
3.
netsh interface portproxy add v4tov4 listenport=9092 listenaddress=0.0.0.0 connectport=9092 connectaddress=XXX.XX.XX.XX
XXX.XX.XX.XX替换为外部接口IP
4. 接下来的工作就会自动完成:从 Windows 环境连接到`localhost`会将请求转发到管理程序,管理程序将返回其通告的侦听器地址。
运行 Kafka 并将侦听器配置为带有端口转发的容器,它会自己从 Windows 主机正确转发端口
其他小插曲:
老师的springboot是jdk11编译的,可以选择安装jdk11的库降级编译,或者升级到springboot3.0.x以上版本,jdk17以上编译。
参考链接:https://stackoverflow.com/questions/71569699/running-kafka-confluent-platform-on-wsl-2-ubuntu-distribution-and-spring-appli
Sign in to make a reply
Best of Me
原因分析:
解决办法:
方法一:使用命令行
1. 在WSL2 终端内部使用`ifconfig`(或`ip addr`),找到其外部接口 IP( `eth0` 的网络接口,它有一个IP地址 XXX.XX.XX.XX,这可能是您的外部接口IP地址,因为它是分配给计算机的可公开路由的IP地址),然后将其用作通告的侦听器。
2. 使用Windows CMD运行下面命令,将端口从管理程序转发到主机
3.
netsh interface portproxy add v4tov4 listenport=9092 listenaddress=0.0.0.0 connectport=9092 connectaddress=XXX.XX.XX.XX
XXX.XX.XX.XX替换为外部接口IP
4. 接下来的工作就会自动完成:从 Windows 环境连接到`localhost`会将请求转发到管理程序,管理程序将返回其通告的侦听器地址。
方法二:只使用 Windows 的 Docker
运行 Kafka 并将侦听器配置为带有端口转发的容器,它会自己从 Windows 主机正确转发端口
其他小插曲:
老师的springboot是jdk11编译的,可以选择安装jdk11的库降级编译,或者升级到springboot3.0.x以上版本,jdk17以上编译。