У меня проблемы с использованием Kafka в unity3d на Mac.
Я выполнил шаги, описанные в решении, чтобы получить Kafka в Unity3D: Интеграция Kafka в unity3d, вызывающая ошибку Win32Exception
И когда я пытаюсь настроить потребителя, я получаю следующую ошибку:
DllNotFoundException: kernel32
Confluent.Kafka.Impl.Librdkafka.Initialize (System.String userSpecifiedPath) (at /Users/user/Desktop/confluent-kafka-dotnet-1.1.0/src/Confluent.Kafka/Impl/LibRdKafka.cs:376)
Confluent.Kafka.Consumer`2[TKey,TValue]..ctor (Confluent.Kafka.ConsumerBuilder`2[TKey,TValue] builder) (at /Users/user/Desktop/confluent-kafka-dotnet-1.1.0/src/Confluent.Kafka/Consumer.cs:537)
Confluent.Kafka.ConsumerBuilder`2[TKey,TValue].Build () (at /Users/user/Desktop/confluent-kafka-dotnet-1.1.0/src/Confluent.Kafka/ConsumerBuilder.cs:360)
KafkaConsumer.RunConsume (System.String brokerList, System.Collections.Generic.List`1[T] topics, System.Threading.CancellationToken cancellationToken) (at Assets/KafkaConsumer.cs:43)
KafkaConsumer.StartConsume () (at Assets/KafkaConsumer.cs:19)
KafkaConsumer.Start () (at Assets/KafkaConsumer.cs:13)
Я попытался создать файлы DLL в сообществе Visual Studio 2019, копируя файлы DLL из корзины.Я также распаковал пакет nuget и попробовал эти .dll.
Я попробовал обе версии 1.1.0 и 1.2.0.
Я также распечатал путь к Librdkafka.dllпрямо перед тем, как не удалось загрузить, и путь был правильным.
Вот мой потребительский код:
ConsumerConfig config = new ConsumerConfig
{
BootstrapServers = brokerList,
GroupId = "csharp-consumer",
EnableAutoCommit = false,
StatisticsIntervalMs = 5000,
SessionTimeoutMs = 6000,
AutoOffsetReset = AutoOffsetReset.Earliest,
EnablePartitionEof = true
};
const int commitPeriod = 5;
using (var consumer = new ConsumerBuilder<Ignore, string>(config)
// Note: All handlers are called on the main .Consume thread.
.SetErrorHandler((_, e) => Console.WriteLine($"Error: {e.Reason}"))
.SetStatisticsHandler((_, json) => Console.WriteLine($"Statistics: {json}"))
.SetPartitionsAssignedHandler((c, partitions) =>
{
Console.WriteLine($"Assigned partitions: [{string.Join(", ", partitions)}]");
// possibly manually specify start offsets or override the partition assignment provided by
// the consumer group by returning a list of topic/partition/offsets to assign to, e.g.:
//
// return partitions.Select(tp => new TopicPartitionOffset(tp, externalOffsets[tp]));
})
.SetPartitionsRevokedHandler((c, partitions) =>
{
Console.WriteLine($"Revoking assignment: [{string.Join(", ", partitions)}]");
})
.Build())
{
Любая помощь будет принята с благодарностью!