[ https://issues.apache.org/jira/browse/KAFKA-14494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oleg Zhovtanyuk updated KAFKA-14494: ------------------------------------ Attachment: kafka-client-java-direct.log.gz kafka-client-java-socks.log.gz kafka-client-node-socks.log.gz > Kafka Java client can't send data when behind SOCKS proxy - while native > client can > ----------------------------------------------------------------------------------- > > Key: KAFKA-14494 > URL: https://issues.apache.org/jira/browse/KAFKA-14494 > Project: Kafka > Issue Type: Bug > Components: clients > Affects Versions: 3.3.1 > Reporter: Oleg Zhovtanyuk > Priority: Major > Attachments: client-java.tar.gz, client-nodejs.tar.gz, > kafka-client-java-direct.log.gz, kafka-client-java-socks.log.gz, > kafka-client-node-socks.log.gz > > > When Kafka Java client sits behind the SOCK5 proxy, it connects to the > cluster, gets the list of brokers, but enters the infinite loop trying to > detect the least loaded broker. > To the contrary, NodeJS client (a wrapper for librdkafka) with exactly the > same setup, performs the same, but proceeds further to the binary data > exchange. > > Both clients and their execution logs are attached. > Java client logs looks like > > As Java client ignores JVM proxy options (it uses custom socket factory), > I've employed > [socksify|https://manpages.debian.org/testing/dante-client/socksify.1.en.html] > native library, that forcefully forwards all socket calls to the proxy > server. > It can be installed with the package manager on any UNIX, e.g. for Ubuntu > {code:java} > sudo apt-get install dante-client{code} > > Java client can be run as > * Kafka cluster URI + credentials -> 'client.properties', > * > {code:java} > mvn clean package{code} > * > {code:java} > ./run-with-socksify.sh{code} > NodeJS client can be run as > * Kafka cluster URI + credentials -> 'consumer.js', > * > {code:java} > npm install .{code} > * > {code:java} > ./run-with-socksify.sh {code} > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)