
Nick
20.09.2016
12:07:11
у редиса вроде как нет

Vladislav
20.09.2016
12:07:21
хазел в принципе же на jvm по моему

Nick
20.09.2016
12:07:27
да

Vladislav
20.09.2016
12:07:31
и атомик референсами всё разруливается

Google

Vladislav
20.09.2016
12:07:41
ну кроме примитивов)

Nick
20.09.2016
12:07:46
в общем странный выбор

Vladislav
20.09.2016
12:07:59
это я к тому, что в хазелкасте по идее у тебя есть возможность обьектами типа User оперировать

Luger
20.09.2016
12:08:07
Как раз
Ну и да, редис у нас раньше появился прост)

Vladislav
20.09.2016
12:08:12
без сериализации/десериализации (ну по идее)

Nick
20.09.2016
12:08:38
сериализация там есть точно

Dmitry
20.09.2016
12:08:43

Nick
20.09.2016
12:08:49
вопрос в том, наскок она эффективная

Dmitry
20.09.2016
12:09:10
Это боль, половина фишек только в гридгейне работает

Nick
20.09.2016
12:09:19
к примеру?
я прост не юзаю его

Google

Dmitry
20.09.2016
12:09:32
Норм умеет только key value

Nick
20.09.2016
12:09:41
дык эт основная цель

Dmitry
20.09.2016
12:10:01
Ну это просто такой комбайн
Редис лучше
Мы юзаем распределенные очереди
Они не оч

Nick
20.09.2016
12:11:00
а с кафкой не сравнивали?

Dmitry
20.09.2016
12:11:02
И не рекомендуется их в прод тащить самими разработчиками

Daniel
20.09.2016
12:11:14
кафка то здесь каким боком?

Dmitry
20.09.2016
12:11:22
Для очередей

Luger
20.09.2016
12:11:25
Кафка в каком ключе здесь сравнивается?

Nick
20.09.2016
12:11:44
про очереди уже терки
посоны вы чо

Dmitry
20.09.2016
12:12:15
Я не тестил
Тестили джобы
У нас кв нужно было чистить
Решили что джоба рядом данными круть
Но в итоге не оправдались ожидания
Ну и клиентское апи бывает странное, типа возвращает нул если не смог приконектится к ноде
Даже не эксепшен, Карл

Google

Alexander
20.09.2016
12:18:39

Nick
20.09.2016
12:19:40
не юзал

Andrew
20.09.2016
13:22:57
никто, случайно, reactive-kafka не пользовался?

Timothy
20.09.2016
13:25:11
Юзаю ее для snowplow
Вместо kinesis

Andrew
20.09.2016
13:27:16
вопрос в том, что producer этой самой реактивной кафки периодически пытается открыть ооочень много соединений с кафкой

Alexey
20.09.2016
13:28:17
сниппет или не было

Andrew
20.09.2016
13:28:34
раньше грешили на fork-join-pool с неограниченным по дефолту количеством потоков, поставили макс 64 потока вчера - сегодня история повторилась

Timothy
20.09.2016
13:29:11
Не встречал такого в проде

Alexey
20.09.2016
13:29:40
дело в том, что продюсер простой как палка. и в реактив кафке и в самой кафке
если есть воспроизводимый пример могу помочь

Andrew
20.09.2016
13:37:30

Dmitry
20.09.2016
13:37:57
Ab?

Alexey
20.09.2016
13:39:00
cat /dev/zero?

Andrew
20.09.2016
13:45:02
ну там не просто поток рандомных байт, а конкретные пакеты, которые разбираются с akka-streams
предположение было, что на каждое входящее tcp-соединение создается коннект к кафке, поэтому их так много

Timothy
20.09.2016
13:59:01
А как в продюсер отправляются сообщения из каждого tcp коннекта? Через materialize консюмера или единый mergehub?

Andrew
20.09.2016
14:02:31
mergehub не используется

Timothy
20.09.2016
14:03:19
А как тогда происходит отправка в producer? Есть снипет?

Google

Andrew
20.09.2016
14:04:24
вот как-то так
val kafkaSink = Sink.fromGraph(GraphDSL.create() { implicit builder => {
import GraphDSL.Implicits._
val recordProducer = Flow[TrackerMessage].log("to json")
.map(elem => new ProducerRecord[Array[Byte], String](topic, elem.toJson)).log("to sink")
val sink = Producer.plainSink(producerSettings)
val input = builder.add(recordProducer)
val output = builder.add(sink)
input ~> output
SinkShape(input.in)
}

Admin
ERROR: S client not available

Timothy
20.09.2016
14:06:32
Он материализуется на каждый коннект?

Andrew
20.09.2016
14:07:52
val connections: Source[IncomingConnection, Future[ServerBinding]] = Tcp().bind(ip, port)
def main(args: Array[String]) {
connections runForeach {
connections =>
connections.flow
.joinMat(handlerGraph)(Keep.right).run()
}
}
он на выходе handlerGraph
совсем днище, да?(

Nick
20.09.2016
14:11:53
эт тут чел так написал)

Foo
20.09.2016
14:11:59
хех

Aleksey
20.09.2016
14:14:30
Это еще цветочки.

Vladimir
20.09.2016
14:15:37
там не по гайдлайнам, Одерский же безточечные вызовы вроде осудил в конце концов

Daniel
20.09.2016
14:15:50
ну и шейдить переменные не оч =) (rename connections)

Andrew
20.09.2016
14:18:05
да, есть косяк.
по поводу отдельных стримов - max-pool-size-max = 64 разве не должно было ограничить кол-во активных потоков?

Daniel
20.09.2016
14:21:45
так потоков (Thread) скорее всего и есть 64
а вот объектов RunnableGraph на каждый запрос по штуке

Timothy
20.09.2016
14:23:14

Daniel
20.09.2016
14:24:25
там весь код в монадах, просто ты не заметил
уже привыкаешь, это хорошо

Vyatcheslav
20.09.2016
14:25:02
ну а чего ты хотел от акка-стримов. На ней даже хелоуворлд не напишешь без камаза героина, если впервые видишь

Timothy
20.09.2016
14:26:02
так нужно смотреть правильные стримы: https://github.com/functional-streams-for-scala/fs2
и https://monix.io/docs/2x/intro/hello-world.html

Google

Denis
20.09.2016
14:26:58
А как в фс2 с такими штуками как результат материализации? Всякий киллсвитчи и прочее

Pavel
20.09.2016
14:27:46
по действию на строку - да.

Daniel
20.09.2016
14:28:28
а зачем?
лишние скобки
джавистами одобренно, надо тоже хэллоу ворлд сделать на мониксе)
на самом деле сравнение тут не оч объективное
на акковских стримах тот же хэллоу ворлд будет почти аналогичен
в примере с проблемой, делался кастомный этап и цеплялся еще к серверу

Lxk
20.09.2016
14:40:32
не совсем понял почему хеллоу ворлд валидная метрика для продакшена
тогда лучше сравнить бизнесс задачу челеком, где уже и видно будет разница с джавой =)

Daniel
20.09.2016
14:46:51
тут не про джаву сравнение, а про либы стримовые