From e717faa1e1e82ed6fe2146db4663a3f4ac528c3b Mon Sep 17 00:00:00 2001 From: Jeremy Custenborder Date: Mon, 7 Mar 2016 15:14:33 -0800 Subject: [PATCH 1/2] KAFKA-3347 - Modified KAFKA_JVM_PERFORMANCE_OPTS to include -Djava.net.preferIPv4Stack=true. --- bin/kafka-run-class.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/kafka-run-class.sh b/bin/kafka-run-class.sh index f45d8d4af17d5..4442ce4eddbfa 100755 --- a/bin/kafka-run-class.sh +++ b/bin/kafka-run-class.sh @@ -161,7 +161,7 @@ fi # JVM performance options if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then - KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true" + KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true " fi From 49d58dc2ac4688bc016d844f6664606806865fa3 Mon Sep 17 00:00:00 2001 From: Jeremy Custenborder Date: Wed, 16 Mar 2016 16:41:06 -0700 Subject: [PATCH 2/2] Introduced a new KAFKA_NETWORK_OPTS variable. By default this will set -Djava.net.preferIPv4Stack=true which will cause the JVM to prefer an ipv4 stack. This also opens up the doors to allow a user to do something like export KAFKA_NETWORK_OPTS='-Djava.net.preferIPv4Stack=true -Dhttp.proxyHost=1.2.3.4 -Dhttp.proxyPort=8080' which could set proxy settings for Kafka Connect connectors. --- bin/kafka-run-class.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/bin/kafka-run-class.sh b/bin/kafka-run-class.sh index 4442ce4eddbfa..53f95dd70e5c8 100755 --- a/bin/kafka-run-class.sh +++ b/bin/kafka-run-class.sh @@ -161,9 +161,15 @@ fi # JVM performance options if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then - KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true " + KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true " fi +# JVM networking options +if [ -z "$KAFKA_NETWORK_OPTS" ]; then + KAFKA_NETWORK_OPTS="-Djava.net.preferIPv4Stack=true " +fi + + while [ $# -gt 0 ]; do COMMAND=$1 @@ -199,7 +205,7 @@ fi # Launch mode if [ "x$DAEMON_MODE" = "xtrue" ]; then - nohup $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" > "$CONSOLE_OUTPUT_FILE" 2>&1 < /dev/null & + nohup $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_NETWORK_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" > "$CONSOLE_OUTPUT_FILE" 2>&1 < /dev/null & else - exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" + exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_NETWORK_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" fi