В настоящее время я пытаюсь опубликовать сообщения из цикла for на сервере kafka, работающем на моем локальном компьютере, с использованием библиотеки kafka-net в c # (https://github.com/Jroland/kafka-net),, следуя примеру, приведенному в связанном репо, мойкод следующий:
string kafkaServer = "http://" + ip + ":" + port;
Uri uri = new Uri(kafkaServer);
var options = new KafkaOptions(uri);
var router = new BrokerRouter(options);
var client = new Producer(router);
...
foreach(string sumup in LS){
payloadJson["fullPathDataFolder"] = remoteFolder;
payloadJson["globalName"] = GloablName;
payloadJson["name"] = name;
payloadJson["text"] = sumUp + "\n";
payloadJson["type"] = type;
string payload = payloadJson.ToString();
KafkaNet.Protocol.Message msg = new KafkaNet.Protocol.Message(payload);
client.SendMessageAsync(topic, new List<KafkaNet.Protocol.Message> { msg }).Wait();
}
Этот код выполняется через первую итерацию, и я могу получить первую строку со второй машины, связанной с тем же сервером с потребителем. Затем приведенный выше код остаетсязастрял на интрукции:
client.SendMessageAsync(topic, new List<KafkaNet.Protocol.Message> { msg }).Wait();
Если сейчас я удаляю .Wait (), этот код работает довольно быстро, но он случайным образом игнорирует часть строки, которую я посылаю. Чего мне не хватает?
PSЯ также пытался использовать Confluent.kafka, и у меня были похожие проблемы
PPS Важно, чтобы эта программа запускалась последовательно.