Решение очень просто; Просто добавьте это поверх метода Main [STAThread]
Итак, ваш основной метод должен выглядеть следующим образом:
[STAThread]
static void Main(string[] args)
{
....
}
Он работает для меня.
создайте файл, аналогичный созданию текстового файла
blockquote>Таким образом, я предполагаю, что вы следуете в качестве примера настройки производителя и потребителя, отправляя текстовые / json сообщения через kafka.
В вашем случае вам нужно сериализовать ваш видеофайл / фрагмент / чанк в байты , отправить необработанные байты в kafka, прочитать их у потребителя и десериализовать ваш видеофайл / фрагмент / чанк обратно [ 1118].
Чтобы отправить необработанные байты через kafka, вам нужно использовать
ByteArraySerializer
в производителе иByteArrayDeserializer
в потребителе.См .: https://kafka.apache.org/20/javadoc/index.html?org/apache/kafka/common/serialization/ByteArrayDeserializer.html https: // kafka .apache.org / 20 / javadoc / org / apache / kafka / common / serialization / ByteArraySerializer.html
Итак, в вашей конфигурации вам нужно указать свойства (при условии, что вы не используете ключи , только значения): производитель:
"key.serializer":"org.apache.kafka.common.serialization.StringSerializer" "value.serializer":"org.apache.kafka.common.serialization.ByteArraySerializer"
потребитель:
"key.deserializer":"org.apache.kafka.common.serialization.StringDeserializer" "value.deserializer":"org.apache.kafka.common.serialization.ByteArrayDeserializer"
Если вы просто хотите отправить файл mp4, прочитайте его в байтах следующим образом (в Java): [117 ] Файл в байт [] в Java
byte[] array = Files.readAllBytes(new File("/path/to/file").toPath());
С другой стороны, в потребителе вы получаете этот байтовый массив и сохраняете их в файл.