环境说明:
kafka客户端在网络A中(IPV6网络),IPv6地址:[2409:8057::2]
kafka服务段在网络B中(IPV4网络),IPv4地址:10.243.10.2
,端口:29093
nginx是双栈服务器IPv6:[2409:8057::1]
,IPv4:10.243.10.1
nginx按参考 https://www.orchome.com/1957 的方法
stream {
server {
listen 9092;
location / {
proxy_pass kafka://10.243.10.2:29093;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
客户端访问kafka服务时客户端提示kafka服务地址不可达。
./kafka-console-producer.sh --broker-list [2409:8057::1]:9092 --topic GZs
>test
>{"key":"value"}
>[2023-10-24- 17:36:53,986] WARN [Producer clientId=console-producer] Connection to node 0 (10.243.10.2/10.243.10.2:29093) could not be established.
还请各位大侠看一下,这样的组网场景是不是使用nginx代理kafka走不通。我理解应该是kafka客户端请求元数据的时候,服务端的返回的是服务列表是IPv4地址,客户端去连接该IPv4时找不到导致连接broker失败。
可以看下:kafka外网转发
你的答案