Ищу помощь по kafka в настройках класса .net.
Я установил kafka на свой компьютер, пытаюсь запустить консольное тестовое приложение с использованием пакета nuget Confluent.kafka и запускаю его. возникла проблема с ошибкой ниже.
Я поддерживаю устаревшую систему, поэтому использую Windows 10, Visual Studio 2019 и .Net framework 4.8
Я проверил веб-сайт Confluent, и он говорит, что он работает с .Net classic... Хотя я вижу librdkafka.dll в debug\bin. Что я делаю не так?
System.DllNotFoundException
HResult=0x80131524
Message=Failed to load the librdkafka native library.
Source=Confluent.Kafka
StackTrace:
at Confluent.Kafka.Impl.Librdkafka.TrySetDelegates(List`1 nativeMethodCandidateTypes)
at Confluent.Kafka.Impl.Librdkafka.LoadNetStandardDelegates(String userSpecifiedPath)
at Confluent.Kafka.Impl.Librdkafka.Initialize(String userSpecifiedPath)
at Confluent.Kafka.Producer`2..ctor(ProducerBuilder`2 builder)
at Confluent.Kafka.ProducerBuilder`2.Build()
at KafkaTest.Program.d__1.MoveNext() in C:\Projects\JiraBay\KafkaTest\Program.cs:line 67
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
This exception was originally thrown at this call stack:
Confluent.Kafka.Impl.Librdkafka.TrySetDelegates(System.Collections.Generic.List)
Confluent.Kafka.Impl.Librdkafka.LoadNetStandardDelegates(string)
Confluent.Kafka.Impl.Librdkafka.Initialize(string)
Confluent.Kafka.Producer.Producer(Confluent.Kafka.ProducerBuilder)
Confluent.Kafka.ProducerBuilder.Build()
KafkaTest.Program.RunProducer() in Program.cs
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, object, bool)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, object, bool)
System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
[Call Stack Truncated]
Мой код ниже
static void Main(string[] args)
{
try
{
RunProducer();
}
catch (Exception ex)
{
ex.ToString();
}
}
public static async void RunProducer()
{
var config = new ProducerConfig
{
BootstrapServers = "localhost:9092", //local cluster
ClientId = "CCTest",
SecurityProtocol = Confluent.Kafka.SecurityProtocol.Plaintext,
Acks = Acks.Leader,
MessageTimeoutMs = 300000,
};
var message = new Message
{
Key = "testKey",
Value = "This is my 3rd Event net day", //serializable body, eg xml /json
Timestamp = new Timestamp(DateTime.Now) //Timestamp is populated by default, metadata
//Headers = "test" //metadata, can contan type serializer
};
var ppro = new ProducerBuilder(config).Build();
using (var producer = new ProducerBuilder(config).Build())
{
var result = await producer.ProduceAsync("quickstart-events", message);
// producer.Flush(); //this is a synchronouse method , recommended is to flush in batch mode
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... onsole-app