O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

[JokerConf] Верхом на реактивных стримах, 10/13/2016

546 visualizações

Publicada em

Вы из тех, кто считает, что, распараллелив любой цикл, можно улучшить перформанс, и Collection.parallelStream() — ваш лучший друг? А как вам идея — вбросить ещё пачку машин и получить распределенную обработку? Интересно? Тогда для вас этот доклад обязателен к просмотру.

Виктор познакомит слушателей со своим другом, Ориентированным (Направленным) Ациклическим Графом (или Маркизом?!), и покажет, как с его помощью была организована распределенная высокопроизводительная система обработки информации в памяти поверх нашего знакомого Java 8 Stream API.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

[JokerConf] Верхом на реактивных стримах, 10/13/2016

  1. 1. Этот слайд пустой… Так нужно 1
  2. 2. Верхом на реактивных стримах #jokerconf #hazelcast #java8
  3. 3. > whoami • Solutions Architect @Hazelcast • Тусуюсь с «правильными пацанами» • @gamussa везде в интернете Обязательно зафоловьте меня в Twitter Я очень интересный © 3
  4. 4. Программа выступления • Освежим свои знания о Java 8 Streams • Распределяем и властвуем • Распределенные данные • Распределенные стримы • Как мы это сделали 4
  5. 5. 5 Java 8 Streams
  6. 6. Java 8 Streams – это… • Абстракция для представления последовательности элементов • не структура данных • передают элементы из источника через конвейер операций • операции не изменяют исходные данные 6
  7. 7. А почему мне не должно быть все равно? • Ты пишешь на Java в 2016 • Стримы пришли в Java, чтобы остаться • Тагир смотрит на тебя как-то странно, если ты не используешь стримы 7
  8. 8. 8
  9. 9. Егор @yegor256 Баруху @jbaruch, РП-105 - Б: являются ли абстрактные анонимные Inner классы лучшим решением, чем лямбды? - E: да, конечно. Классы, какие бы ни были: анонимные, абстрактные, какие угодно классы. Классы - это классы. Лучше чем лямбды... да, классы лучше чем эти вот лямбды. 9http://razbor-poletov.com/2016/03/episode-105.html
  10. 10. Операции из java.util.stream • map(), flatMap(), filter() • reduce(), collect() • sorted() 10
  11. 11. Проблема • Данные могут не поместиться на одном компьютере • Данные слишком важны, чтобы храниться на одном компьютере 12
  12. 12. 13
  13. 13. CACHES
  14. 14. Репликация или шардинг? 15 http://book.mixu.net/distsys/single-page.html
  15. 15. Problem • Data doesn’t fit just one machine 16
  16. 16. Решение • Возьмем распределенный Map aka IMap 17
  17. 17. Что такое Hazelcast? • Опинсорсный грид — IMDG • Распределенные • Кэши(IMap, JCache) • Java Коллекции (IList, ISet, IQueue) • Обмен сообщениями (Topic, RingBuffer) • Вычисления (ExecutorService, M-R) 19
  18. 18. 20
  19. 19. Green Primary Green Backup Green Shard
  20. 20. Path to Microservices 25 Highly scalable In-Memory Data Grid Simple and configurable backbone one jar to «rule them all» Hazelcast is a…
  21. 21. Проблема • Распределение вычислений • Lambda serialization 26
  22. 22. 27
  23. 23. Решение • Сериализуемые версия интерфейсов • встречайте DistributedStream 28
  24. 24. 29
  25. 25. 31 Jet Streams
  26. 26. Что такое Hazelcast Jet? • Фреймворк распределенных вычислений общего назначения • Модель описания вычисления построена на ориентированном ациклическом графе • Построен на основе Hazelcast • Потенциальный конкурент Apache Spark или Apache Flink 33
  27. 27. 34
  28. 28. DAG - ОАГ 35
  29. 29. Исполнение задачи 36
  30. 30. 38
  31. 31. 39
  32. 32. Вступайте в наши ряды • Вступай в программу Developer Preview • http://hazelcast.org/jet-signup • напишите мне viktor@hazelcast.com • Зафоловьте @hazelcast и меня @gamussa • Пишите свои вопросы #hazelcast #hazelcastjet 40
  33. 33. В качестве заключения • Java Stream API представляет очень широкие возможности для расширения • Война и Мир – это сложная литература • Андрей и Пьер – действительно главные персонажи 41
  34. 34. 42 #jokerconf #hazelcast #java8

×