@scala_ru

Страница 106 из 1499
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
сериализация там есть точно

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
прикольно, у hz совместимость с java collections)
а вот это не то же примерно для редиса? https://github.com/redisson/redisson

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
если есть воспроизводимый пример могу помочь
думаю, что воспроизвести его быстро не удастся, т.к., нужен будет достаточно жирный источник tcp-траффика.

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
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() } }
так и получается что на отдельный запрос создается отдельный стрим, который и делает отдельный коннект к кафке

ну и шейдить переменные не оч =) (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
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() } }
на каждый коннект, да. попробуй http://doc.akka.io/docs/akka/2.4/scala/stream/stream-dynamic.html#Using_the_MergeHub, который добавили в 2.4.10

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
тут не про джаву сравнение, а про либы стримовые

Страница 106 из 1499