
Митко Соловец?
12.07.2018
18:44:22

Rikland
12.07.2018
18:46:13
Да чета много мертвых душ (:

Евгений
12.07.2018
18:46:20
не я в свой чат людей когда набираю то в лс , я про то чтоб сюда пригласить

Rikland
12.07.2018
18:46:50
Если бы 3к человек одновременно говорило, сложно было бы чат прочитать.

Google

Митко Соловец?
12.07.2018
18:47:01

Денис
12.07.2018
18:49:59
Да чета много мертвых душ (:
Каких нафиг мёртвых душ?
Ты где видел профессиональные тематические чаты, где хотя бы 100 человек в один и тот же момент времени говорят? И, главное, зачем?

Sergey
12.07.2018
18:50:30
Плюс часовые пояса

Евгений
12.07.2018
18:51:15
а у этого чата есть курилка чтоб фильтровать сообщения тут?

Sergey
12.07.2018
18:51:57

1337
12.07.2018
18:52:23
нормально все в этом чате, говорят ровно столько сколько надо имхо
флуда не так много

Mikhail
12.07.2018
18:57:58
у меня тут попрос по спрингу, как сделать эндпоинт для отдачи больших файлов?

Tolegen
12.07.2018
18:59:14

Митко Соловец?
12.07.2018
18:59:46
но если реально большие, надо гуглить как стриминг сделать

Sergey
12.07.2018
19:00:30

Google

Sergey
12.07.2018
19:00:41
Ну вот так я стриминг делал

Tolegen
12.07.2018
19:00:52
Есть ощущение что HTTP не особо подходит
Он же текстовый протокол. Биты в base64 переводятся?

Mikhail
12.07.2018
19:01:39

Митко Соловец?
12.07.2018
19:02:44

Mikhail
12.07.2018
19:02:47
что подразумевается под стримингом?

Dima
12.07.2018
19:04:07
в HTTP 1.1 есть поддержка передачи чанками. http://www.oracle.com/technetwork/systems/chunking-155634.html

Mikhail
12.07.2018
19:08:13
меня больше смущает, что сервлеты построены на блокирещем api, чанки-нечанки, поток ждет, пока клиент прочитает данные
надеюсь, где-то в глубине спринг может задействовать неблокирующую запись

Митко Соловец?
12.07.2018
19:11:52
те не сохраняем все в памяти, а потом обрабатываем
а обрабатываем сразу

Tolegen
12.07.2018
19:13:18

Mikhail
12.07.2018
19:13:39
я не могу проапдейтиться до второго бута
жду релиза 5.1
не похоже, что StreamingResponseBody осилит много реквестов =(
when using this option it is highly recommended to configure explicitly the TaskExecutor used in Spring MVC for executing asynchronous requests. Both the MVC Java config and the MVC namespaces provide options to configure asynchronous handling
звучит так, как будто под капотом пул потоков, которые будут заниматься записью

Google

Andrey
12.07.2018
19:18:49

Mikhail
12.07.2018
19:19:59

Alexander
12.07.2018
19:29:45
ребята, может кто сталкивался, использую hazelcast для hibernate second level cache и вот что получаю: There is no suitable de-serializer for type -205. This exception is likely to be caused by differences in the serialization configuration between members or between clients and members.
есть отдельная нода с hazelcast, в приложении использую spring.jpa.properties.hibernate.cache.hazelcast.use_native_client=true

Mikhail
12.07.2018
19:45:42

Sergey
12.07.2018
19:47:18
Mono<byte[]> я так думаю

Mikhail
12.07.2018
19:52:14

Sergey
12.07.2018
19:52:47
даже Mono<Resource>

Mikhail
12.07.2018
19:54:57
надо будет потестировать

Tolegen
12.07.2018
19:55:21
а если мне гигабайт нужно отдать?
Так он же их отдаёт по готовности. Готова часть - отдал, следующая готова - отдал. Правда клиент должен быть асинхронным тоже. Я на самом деле хз как это реализовано под капотом. Polling? Пуша та нет)

Mikhail
12.07.2018
19:55:31
никогда не думал, что скажу такое, но скорее бы spring 5.1 зарелизился

Tolegen
12.07.2018
20:02:42

Sergey
12.07.2018
20:03:19

Aleksey
12.07.2018
20:03:33
Буферизовать на диск
Как делает например nginx
Для медленного клиента

Tolegen
12.07.2018
20:04:08
Тут я так понимаю именно хочется готовыми средствами воспользоваться

Aleksey
12.07.2018
20:04:30
Получается что да, врятли webflux сам такое умеет)

Google

Aleksey
12.07.2018
20:05:12
Из готового вроде vert.x такое реализует, хотя я могу ошибаться
А не вариант ещё делать временные ссылки в S3?

Денис
12.07.2018
20:07:07
Вообще да, если файл здоровый, и не нужно его менять на лету - проще линк оформить на него

Aleksey
12.07.2018
20:07:22
Кажется это называется signed url в терминах s3

Tolegen
12.07.2018
20:07:25
Ну ещё проблема держать коннект. Его держать не хочется, а выбора нет, если клиент медленный.

Aleksey
12.07.2018
20:07:32
Но опять же могу ошибаться

Tolegen
12.07.2018
20:08:17
Только оптимизировать, отменяя сессии тех, кто отвалился

Aleksey
12.07.2018
20:11:03
А хочется именно стримить файлы? Не будет ли в такой задаче быстрее сделать DownloadAndStore на диск, а потом прогнать клиенту уже через WebFlux

Admin
ERROR: S client not available

Aleksey
12.07.2018
20:11:19
В таком случае сработает Zero copy
Но добавит проблем с актуальностью данных очисткой и прочим добром конечно
Так, я вдруг вспомнил
Можно рестримить через nginx
С помощью заголовка X-Accel
И X-Accel-Redirect

Mikhail
12.07.2018
20:33:30

Tolegen
12.07.2018
20:39:29
Кажись идея давать им ссылки в S3 - самое нормальное. Иначе придется класть файл на диск в том или ином виде, если не хочется его держать в памяти, пока клиент не скачает.

Google

Tolegen
12.07.2018
20:39:46
А если класть файл на диск то инстанс вырастет)

Mikhail
12.07.2018
20:40:01
Mono<Resource> с кастомным ресурсом должно нормально работать, хотя не понятно как оно random access реализует

Tolegen
12.07.2018
20:40:08
ну и костылять придется с отдачей частей и управлением всем этим делом
правда мне все равно не очень понятно как это реализовано. Клиент должен периодически стучать, опрашивая не готова ли следующая часть?

Mikhail
12.07.2018
20:42:40

Tolegen
12.07.2018
20:44:42
ну он же отвалится, когда дочитает часть и должен будет сделать новый запрос, нет? или просто коннект будет держаться и в него будут докидываться данные?

Aleksey
12.07.2018
20:45:18
Почему отвалится, chunked будет отдаваться

Tolegen
12.07.2018
20:45:46
и даже если так, то клиент должен быть реактивным получается. Реагировать на законченную передачу, ну и скачку делать не в UI треде

Mikhail
12.07.2018
20:46:46
можно и без чанков, если клиент точно знает, что не дочитал до конца

Aleksey
12.07.2018
20:47:54

Mikhail
12.07.2018
20:57:29
что-то я опять уперся в ограничения спринга =(

Andrey
12.07.2018
21:06:53
что-то я опять уперся в ограничения спринга =(
Я делал отдачу файла, без разницы откуда ты будешь читать его с диска или с с3. Даже кешировать предварительно не нужно. Но ты будешь платить за задержки... И вроде основные проблемы возникают, когда клиент медленный.
А ещё нужно посмотреть Apache camel, может он умеет такое!?

Mikhail
12.07.2018
21:08:04
если не спринг, то я свой фреймворк заюзаю, у меня там нет проблем с медленными клиентами

Andrey
12.07.2018
21:09:35
Пусть у него с3 как бэк енд будет

Mikhail
12.07.2018
21:10:22
кажется мне даже webflux не поможет

1337
12.07.2018
22:05:09
> public class PostgreSQLContainer<SELF extends PostgreSQLContainer<SELF>> extends JdbcDatabaseContainer<SELF>