DllNotFoundException в Кафке Unity3d на Mac - PullRequest
0 голосов
/ 28 сентября 2019

У меня проблемы с использованием 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())
        {

Любая помощь будет принята с благодарностью!

...