Задача зависает бесконечно при вызове .Wait () в kafka-net - PullRequest
0 голосов
/ 02 октября 2018

В настоящее время я пытаюсь опубликовать сообщения из цикла 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 Важно, чтобы эта программа запускалась последовательно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...