私はKafkaのプロデューサーとコンシューマーを作ろうとしていますが、私のプロジェクトはdotnet Core 2.0で、kafkaとうまく動作していないようです。これは私が思いついた概念の証明です。私はカフカネットnugetパッケージでのVisual Studio 2017を使用しています:kafkaはdotnet coreをサポートしていますか?
私がプロデューサーを実行しようとすると
using KafkaNet;
using KafkaNet.Model;
using KafkaNet.Protocol;
プロデューサー
static void Main(string[] args)
{
string payload = "Welcome to Kafka!";
string topic = "IDGTestTopic";
Message msg = new Message(payload);
Uri uri = new Uri("localhost:9092");
var options = new KafkaOptions(uri);
var router = new BrokerRouter(options);
var client = new Producer(router);
client.SendMessageAsync(topic, new List<Message> { msg }).Wait();
Console.ReadLine();
}
消費者
static void Main(string[] args)
{
string topic = "IDGTestTopic";
Uri uri = new Uri("http://localhost:9092");
var options = new KafkaOptions(uri);
var router = new BrokerRouter(options);
var consumer = new Consumer(new ConsumerOptions(topic, router));
foreach (var message in consumer.Consume())
{
Console.WriteLine(Encoding.UTF8.GetString(message.Value));
}
Console.ReadLine();
}
を使用してまず、BrokerRouterにエラーメッセージが表示されます。
$exception {System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: port
at System.Net.IPEndPoint..ctor(IPAddress address, Int32 port)
at KafkaNet.DefaultKafkaConnectionFactory.Resolve(Uri kafkaAddress, IKafkaLog log)
at KafkaNet.Model.KafkaOptions.<get_KafkaServerEndpoints>d__0.MoveNext()
at KafkaNet.BrokerRouter..ctor(KafkaOptions kafkaOptions)
at SampleKafkaProducer.Program.Main(String[] args) in C:\v4target\SampleKafka\SampleKafkaProducer\SampleKafkaProducer\Program.cs:line 18} System.ArgumentOutOfRangeException
ポートの範囲はどのくらいですか?私のVisual Studioプロジェクトは、55000のポートで実行されています。私が調査した複数の情報源はカフカのポートとして9092を使用しています。
誰もがエラーメッセージを理解していますか?私がKafkaのバージョンをdotnetコアに対応していないので、主な問題の一部ですか?
少なくとも例外を引き起こしたコード行を教えてくれる例外からstacktrace全体を投稿してください。その情報は貴重です。 – nos
ありがとうございます@nos。私は正確なスタックトレースを取得しましたが、ポートにつながっています。エラーは、KafkaOptionsを取り込むBrokerRouter()で始まりますが、ここで問題が何であるかはわかりません。 –