мы используем последний S3-разъем alpakka для загрузки потока, но он не работает с ошибкой максимальной длины
как exceeded content length limit (8388608 bytes)! You can configure this by setting `akka.http.[server|client].parsing.max-content-length` or calling `HttpEntity.withSizeLimit` before materializing the dataBytes stream.
, поток как источник (загрузка файла с S3) и поток, который обращается к серверу AMQP, используя
java amqp-client library, когда мы обрабатываем файл менее 8M, он обрабатывает, но файл большего размера не обрабатывается и выдает ошибку
выделено выше.
Akka-http не хранит файл в памяти, он передает напрямую
источник, нам нужно сначала сохранить файл в памяти, а затем передать его?
Это нисходящий поток, т. Е. AMQP, являющийся клиентской библиотекой Java (5.3.0), имеет значение
В этом выпуске мы используем одно соединение и один канал для кролика
MQ
val source = s3Client.download(bucketName, key)._1.
via(Framing.delimiter(ByteString("\n"), Constant.BYTE_SIZE,
true).map(_.utf8String))
val flow = Flow[String].mapAsync(
//Calling future of posting message to rabbit MQ
Future {
//Rabbit MQ config Properties
rabbitMQChannel.basicPublish(exchangeName, routingKey, amqpProperties,
message.toString.getBytes)
}
)
val result = source.via(flow).runWith(Sink.ignore)