web-dev-qa-db-ja.com

KafkaのJavaオプションを設定するにはどうすればよいですか?

私はKafkaを試してきましたが、メインサイトのドキュメントから、ヒープサイズや使用するガベージコレクターなど、jvmのさまざまなオプションを設定できることがわかりました。

http://kafka.Apache.org/documentation.html#Java

ただし、これらのオプションを設定する方法と場所はわかりません。このアプリケーションには、設定目的で使用される多くのファイルが含まれる/ configディレクトリが付属していますが、Java用のものはありません。また、Kafka=のためのスクリプトの束を含む/ binディレクトリが付属していますが、Javaの構成方法を実際に示すものは何もありません。

だから私の質問は、どのようにJava Kafkaが使用するオプションを設定しますか?ファイルを介して行われますか、それとも別の方法がありますか?

34
Luis Medina

私は受け入れられた答えに同意しません。 binディレクトリ内のスクリプトを変更することは、お勧めできません。 Kafka=を次のバージョンにアップグレードする場合、新しいバイナリを抽出すると、スクリプトで行われた変更が上書きされます。

推奨される方法は、スクリプトの外部で環境変数KAFKA_HEAP_OPTSを設定することです。

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

スクリプトを介してKafka=を開始する前に変数が設定されている場合、/bin/kafka-server-start.shで定義されたデフォルト値の代わりに変数を使用します。

57
benny.la

これを行う別の方法は、/bin/kafka-server-start.sh

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

または/bin/kafka-run-class.sh

KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true"
13
Salvador Dali

Kafka-run-classh.shを見る-kafkaは次の変数を使用します:

  • $ KAFKA_HEAP_OPTS
  • $ KAFKA_JVM_PERFORMANCE_OPTS
  • $ KAFKA_GC_LOG_OPTS
  • $ KAFKA_JMX_OPTS
  • $ KAFKA_LOG4J_OPTS

次の方法で実行できます。

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 
export KAFKA_JMX_OPTS="-Dcom.Sun.management.jmxremote -Dcom.Sun.management.jmxremote.port=12346 -Dcom.Sun.management.jmxremote.rmi.port=12346 -Dcom.Sun.management.jmxremote.local.only=false -Dcom.Sun.management.jmxremote.authenticate=false -Dcom.Sun.management.jmxremote.ssl=false" 
bin/kafka-server-start.sh -daemon config/server.properties
5
mfedko

コマンドラインからJavaパラメータを渡すことができます。

Java -server -Xms3072m -Xmx3072m -XX:NewSize=256m -XX:MaxNewSize=256m  -classpath <long list of jars> foo.class

`実稼働サーバーの設定では、プロパティファイルを作成するか、コードでプロパティファイルを設定できます。

 Properties props = new Properties();
 props.put("serializer.class", "kafka.serializer.StringEncoder");

そして、それらをproducerConfigに提供します

ProducerConfig config = new ProducerConfig(props);
0
sol4me