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

42
Этот слайд пустойТак нужно 1

Upload: viktor-gamov

Post on 22-Jan-2018

417 views

Category:

Technology


2 download

TRANSCRIPT

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

Этот слайд пустой… Так нужно

1

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

Верхом на реактивныхстримах

#jokerconf

#hazelcast#java8

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

> whoami• Solutions Architect @Hazelcast

• Тусуюсь с «правильными пацанами»

• @gamussa везде в интернете

Обязательно зафоловьте меня в TwitterЯ очень интересный ©

3

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

Программа выступления• Освежим свои знания о Java 8 Streams

• Распределяем и властвуем

• Распределенные данные

• Распределенные стримы

• Как мы это сделали4

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

5

Java 8 Streams

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

Java 8 Streams – это…• Абстракция для представления последовательности элементов

• не структура данных

• передают элементы из источника через конвейер операций

• операции не изменяют исходные данные6

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

А почему мне не должно быть все равно?

• Ты пишешь на Java в 2016

• Стримы пришли в Java, чтобы остаться

• Тагир смотрит на тебя как-то странно, если ты не используешь стримы

7

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

8

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

Егор @yegor256 Баруху @jbaruch, РП-105

- Б: являются ли абстрактные анонимные Innerклассы лучшим решением, чем лямбды?

- E: да, конечно. Классы, какие бы ни были: анонимные, абстрактные, какие угодно классы. Классы - это классы. Лучше чем лямбды... да, классы лучше чем эти вот лямбды.

9http://razbor-poletov.com/2016/03/episode-105.html

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

Операции из java.util.stream

• map(), flatMap(), filter()

• reduce(), collect()

• sorted()

10

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

Проблема

• Данные могут не поместиться на одном компьютере

• Данные слишком важны, чтобы храниться на одном компьютере

12

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

13

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

CACHES

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

Репликация или шардинг?

15http://book.mixu.net/distsys/single-page.html

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

Problem

• Data doesn’t fit just one machine

16

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

Решение

• Возьмем распределенный Map aka IMap

17

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

Что такое Hazelcast?• Опинсорсный грид — IMDG

• Распределенные

• Кэши(IMap, JCache)

• Java Коллекции (IList, ISet, IQueue)

• Обмен сообщениями (Topic, RingBuffer)

• Вычисления (ExecutorService, M-R)19

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

20

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

GreenPrimary

GreenBackup

GreenShard

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

Path to Microservices

25Highly scalable In-Memory Data Grid

Simple and configurable backbone

one jar to «rule them all»

Hazelcastis a…

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

Проблема

• Распределение вычислений

• Lambda serialization

26

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

27

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

Решение

• Сериализуемые версия интерфейсов

• встречайте DistributedStream

28

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

29

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

31

Jet Streams

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

Что такое Hazelcast Jet?• Фреймворк распределенных вычислений общего назначения

• Модель описания вычисления построена на ориентированном ациклическом графе

• Построен на основе Hazelcast

• Потенциальный конкурент Apache Spark или Apache Flink33

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

34

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

DAG - ОАГ

35

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

Исполнение задачи

36

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

38

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

39

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

Вступайте в наши ряды• Вступай в программу Developer Preview

• http://hazelcast.org/jet-signup

• напишите мне [email protected]

• Зафоловьте @hazelcast и меня @gamussa

• Пишите свои вопросы #hazelcast #hazelcastjet40

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

В качестве заключения• Java Stream API представляет очень широкие возможности для расширения

• Война и Мир – это сложная литература

• Андрей и Пьер – действительно главные персонажи

41

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

42

#jokerconf #hazelcast#java8