我在AWS上运行了一个Kafka集群。我想从我的应用程序服务器使用标准 kafka-console-consumer 连接到群集。应用程序服务器可以通过SOCKS-Proxy访问Internet。无需身份验证
如何告诉Kafka客户端通过代理连接?
我尝试了很多东西,包括将标准的JVM代理参数添加到 kaka-run-class.sh 脚本中。但我仍然收到连接拒绝错误。
exec $JAVA -DsocksProxyHost=proxy.host.name -DsocksProxyPort=1080 $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
修改 事实证明,Kafka使用java.nio库。它的套接字实现与代理不兼容。所以他使用的jvm参数对Kafka客户端没有任何影响。
答案 0 :(得分:0)
正如评论和编辑中提到的,提问者已经找到了解决方案/根本原因:
<块引用>事实证明,Kafka 使用了 java.nio 库。这是插座 实现与代理不兼容。所以jvm参数我 used 对 Kafka 客户端没有影响。