Я использую пакет nuget Kafka-Net, чтобы сделать базовый POC для производства и потребления Kafka.
Однако у меня проблема в том, что сообщения, которые она публикует в теме, не имеют временных отметок (при просмотре в последней версии Kafka Tool). Это связано с тем, что пакет Kafka-Net не был обновлен для поддержки способа обработки меток времени в более новых версиях Kafka? Нужно ли переходить на использование Confluent Kafka?
Сообщения добавляются в тему с правильными смещениями и полезной нагрузкой, они просто имеют пустую метку времени.
Это мой код
using System;
using System.Collections.Generic;
using System.Configuration;
using KafkaNet;
using KafkaNet.Model;
using KafkaNet.Protocol;
namespace KafkaProducer
{
class Program
{
static void Main(string[] args)
{
var brokerUri = ConfigurationManager.AppSettings["BrokerUri"];
Console.WriteLine("Enter the topic name to publish to");
var topicName = Console.ReadLine();
Console.WriteLine();
Console.WriteLine($"Now publishing to topic {topicName}, enter messages separated by a carriage return");
Console.WriteLine();
var uri = new Uri(brokerUri);
var options = new KafkaOptions(uri);
var router = new BrokerRouter(options);
var client = new Producer(router);
while (true)
{
var payload = Console.ReadLine();
if (payload == "exit") break;
var msg = new Message(payload);
client.SendMessageAsync(topicName, new List<Message> { msg }).GetAwaiter().GetResult();
}
}
}
}