ローカルマシンでスピンアップするときにkafkaをうまく動作させることができました。しかし、AWSインスタンス上で動作させようとすると、何も正しく動作しないようです。私は自分のサーバーをスピンアップし、私はローカルに、私はまた、すべての内の1つのAMIであるように思わbitamiからAMIを使用してみましたので、kafkaコンソールのプロデューサーやコンシューマーを働かせることができません
curl http://apache.spinellicreations.com/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz | tar -xzf
cd kafka_2.11-0.10.0.0
bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties &
のように飼育係やカフカをスピンアップしたのと同じようにやってみました。トピックを作成するとうまくいくようです。私はエラー
SEASPAULSON-MAC:kafka_2.11-0.10.0.0 spaulson$ bin/kafka-console-producer.sh --broker-list ec2-54-186-31-109.us-west-2.compute.amazonaws.com:9092 --topic test
blah
[2016-10-20 12:13:23,395] ERROR Error when sending message to topic test with key: null, value: 4 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Batch containing 1 record(s) expired due to timeout while requesting metadata from brokers for test-0
を取得し、コンソールプロデューサーを実行しようとすると、私は何度も繰り返し、コンソール消費者を起動しようとすると、しかし、私は、エラーを取得します。
bin/kafka-console-consumer.sh --zookeeper ec2-54-186-31-109.us-west-2.compute.amazonaws.com:2181 --topic test --from-beginning
[2016-10-19 18:26:47,175] WARN Fetching topic metadata with correlation id 152 for topics [Set(test)] from broker [BrokerEndPoint(0,ip-172-31-52-58.ec2.internal,9092)] failed (kafka.client.ClientUtils$)
java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:110)
at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:80)
at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:79)
at kafka.producer.SyncProducer.send(SyncProducer.scala:124)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:59)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:94)
at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:66)
私はこれらの操作が簡単なはずだと思っていますが、それは非常に難しいことです。問題を診断し、何がうまくいかないかを把握するためのドキュメントを見つけるのが難しいです。私が見つけた最高のコマンドはこのコマンドです
KAFKA_HOME/bin/kafka-topics.sh --describe --topic test --zookeeper ec2-54-186-31-109.us-west-2.compute.amazonaws.com:2181
Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
リーダー:0は何か問題があったことを示していますか?しかし何?
AWSやその他のIaaSマシンの場合、広告主様のクライアント用にadvertised.listenersを設定してください。 – amethystic
クライアント上で宣伝リスナーを設定する必要がありますか?私が接続しようとしているマシンのように?私はそれをシェルスクリプトの引数として指定すれば十分だろうと思っていました。 –
"server.properties"に設定する必要があるブローカ設定です。その後、ブローカーを再始動します。 – amethystic