|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
собссно сабж. прикольный подход, мне даже понравился немного. но я не совсем могу понять, как он скажем так, может быть применим в классических вебсервисах? ну да.. ну удобно если их много то можно получить декаплинг и одновременно общение через мессаджи между сервисами.. а дальше то что? )) я так понимаю, те же самые микросервисы могут общаться и иными способами между собой, всякие там эмкью и т.п... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 18:41 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
IMHO Если уж изучать, то тогда хардкордно Erlang. Так сказать первоисточник. Сталкивался с AKKA.... толи заливная рыба... толи Карузо в перепеве Рабиновича. Т.ч. если уж изучать, то подлинник. На форуме была ветка с парой десятков страниц AKKA-срача. Но людей которые бы на нем реально кодили большие системы, как-то не наблюдается. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 19:18 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
andreykaTобщение через мессаджи между сервисами. универсальный механизм общения между любыми объектами-акторами в системе. Т.е. это не только и не столько общение/сеть, сколько совместная работа/отсутвие блокировок/многозадачность. IMHO & AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 19:20 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevIMHO Если уж изучать, то тогда хардкордно Erlang. Так сказать первоисточник. Я пока неасилил. У меня было 2 попытки с наскока взять язык Эриксона но честно говоря.... Поинты: - если вы знаете Lisp то вам будет легче войти. Если нет - то ожидайте ломку мозга. Я лисп немного знаю. - нет классов и структур. Есть списки и вложенные списки и record как синтаксический сахар. - если вы умеете разворачивать циклы (и системы циклов в рекурсии) то вам зайдет язык. Иначе будет тяжко. - отсутствуют более-менее внятные фреймворки. - в качестве замены предлагают Elixir, который насколько я понял базируется на Erlang. - концепция акторов если и существует то ярко не выражена. Я-бы сказал что процессы Erlang это и есть акторы но главное преимущество не в этом а в реакции на ошибки. - из инфо-ресурсов есть хороший канал в Телеграме где наиболее живо идет обсуждение. Остальное - тухляк. Вобщем пока отложил на полку. До лучших времен. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 19:36 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevСталкивался с AKKA.... толи заливная рыба... толи Карузо в перепеве Рабиновича. Т.ч. если уж изучать, то подлинник. На форуме была ветка с парой десятков страниц AKKA-срача. Но людей которые бы на нем реально кодили большие системы, как-то не наблюдается. Совершенно верно. Был топик Четверговых акторов где я поднимал те-же базовые вопросы. Помю что Дима так глубоко проникся что даже запили свой фреймворк. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 20:01 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
я так понимаю их подход с вытянутым продюсерконсюмером подразумевает некоторую изначальную потокобезопасность и возможность скажем так, писать многопоточное приложение без оглядки на всю эту конкурентную херабору, с которой ты должен биться делая его "по классике". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 22:33 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
...кроме того я так понял нодажс тоже основана на чем то нечто подобном? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 22:42 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
andreykaTя так понимаю их подход с вытянутым продюсерконсюмером подразумевает некоторую изначальную потокобезопасность и возможность скажем так, писать многопоточное приложение без оглядки на всю эту конкурентную херабору, с которой ты должен биться делая его "по классике". Там не то чтобы потокобезопасность. Там ошибко-безопасность. Насколько я понял читая теорию актор может падать в хлам сколько угодно. При этом ни один байт данных не пострадает и месседжи которые будут необработаны остаются в очередях до тех пор пока поднятый актор снова их не отработает. Грамотно построенное дерево акторов начиная от супервизора теоретически неубиваемое. В противоположость в обычном приложении запрограммировать логику обхода сбоя не всегда возможно из за множества states. А асинхронизм и сообщения это КМК не главное в акторах хотя тоже дает некоторые бонусы типа неблокирующего взаимодействия. Ну и легкие треды. КМК не треды а просто кооперативное переключение между акторами. Типа контицуаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 22:57 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
andreykaT...кроме того я так понял нодажс тоже основана на чем то нечто подобном? Эээ... нет вроде. Там просто асинхронный IO выпячивался как основной бонус. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 22:57 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
andreykaTсобссно сабж. прикольный подход, мне даже понравился немного. но я не совсем могу понять, как он скажем так, может быть применим в классических вебсервисах? А зачем акку пихать в обычные вебсервисы? Вообще можно в принципе, но тогда придется отказаться от привычного java стека(спринг хибер апп сервер) и перейти на аналоги из scala экосистемы(play, akka-http и тд) Но по большей части все эти фреймворки сами под капотом используют акку, и опускаться до такого низкоуровнего кодинга в принципе и не надо. Да и кодить на голой акке занятие суровое и беспощадное. А вот akka-streams уже могут быть полезны и приятны в кодировании. Когда у вас есть некий pipeline, по которому должны пройти данные и каким-либо образом преобразоваться. А так вообще на акке много чего написано, взять хотя бы тот же spark и play. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2018, 00:54 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
andreykaT...кроме того я так понял нодажс тоже основана на чем то нечто подобном? абсолютно разные вещи. Да простят меня яваскриптеры но нод унылое говно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2018, 00:55 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevIMHO Если уж изучать, то тогда хардкордно Erlang. Так сказать первоисточник. Если для самообучения - то совет правильный. Если для практического использования(а скорее всего так и есть) - то вредный. ТС наверняка интересует JVM стек, причем тут Erlang? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2018, 00:56 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
andreykaTя так понимаю их подход с вытянутым продюсерконсюмером подразумевает некоторую изначальную потокобезопасность и возможность скажем так, писать многопоточное приложение без оглядки на всю эту конкурентную херабору, с которой ты должен биться делая его "по классике". Пока каша в голове, но и тема конечно не легкая. Модель акторов - одна из моделей конкурентного программирования, всего лишь одна из. а их достаточно много(softwaree transactional memory, locks\mutexes, actor model, CSP, go channels, lambda architecture...) так что классики не существует, как вы ее себе представляете. В теории, каждый актор инкапсулирует некое состояние(нету состояния - акторы вам не нужны), доступ к этому состоянию контролируется actor system посредством mailbox механизма, каждый актор может обрабатывать одновременно только одно сообщение, поэтому можно этот стейт не синхронизировать(вернее сказать actor system берет все на себя). Вторая важная вещь в понимании акторов, это понимание процесса обработок ошибок - в каждом акторе пишется только простая и чистая бизнес логика, а все ошибки обрабатываются в супервайзерах, так как это по сути ортогональный аспект приложения(как и репликация, отказоустойчивость, масштабиррование и тд), что является частным случаем общего принципа разработки software system - high coupling and low cohesion, - код должениметь только одну причину для изменения(будь то бизнес-логика, необхоимость масштабирования и тд). Акторы прекрасно позволяет отделить бизнес логику от других аспектов. Но в модели акторов есть куча подводных камней и граблей, иначе они бы давно уже захватили весь мир:) Самая главная из которых - отсутствие типизированности, их очень трудно рефакторить и дебажить ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2018, 01:09 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
уже писал. Akka - если откинуть тонкости реализации, безболезненная система масштабирования. Больше никаких задач нет. производительность однопоточного приложения можно улучшить, переписав алгоритмы, сделав его многопоточным ... потолок в который в итоге все упрется - ресурсы сервера на котором приложение крутится. остаётся два подхода купить сервер помощнее, либо вынести часть задач на другие машины. С AKKA распределение задач на другие компы - это просто небольшая правка в конфигурации. ВСЁ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2018, 04:44 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНа форуме была ветка с парой десятков страниц AKKA-срача. Но людей которые бы на нем реально кодили большие системы, как-то не наблюдается. Потому и не наблюдается. Что тут сидят одни теоретики, которые на основе псевдостатей с хабра и высеров местных диванных аналитиков рассказывают зачем нужна акка. Серьезно отвечать на эти высеры, тем кто реально пишет на акке проекты, не интересно. Просто потому, что тут пишут лютый бред про акку)) Делаю третий проект на акке. Два игровых сервера и вот сейчас финансовую систему. Акторы конечно же не иделальны. Но подходят для 90% задач, которыми занимается 90% программистов. Все вот эти ваши сайтики, опердени и прочие штуки отлично пишутся на акторах. Проблем на порядок меньше чем у соседей, которые другой проект пишут на стандартных микросервисах со спрингом. P.S. Типизация в аткорах таки есть) Если не можете ее найти, то мне вас жаль. С таким уровнем чтения документации надо не в программисты идти... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 23:59 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
на порядок меньше проблем. это заявление весьма серьезное. опишите пожалуйста хотя бы пару-тройку проблем микросервисов на спрингах, которых нету с аккой? я вас спрашиваю не наезда ради, а просто потому что вы вроде как человек, имеющий практический опыт общения с аккой, и более глубокое представление об обсуждаемом вопросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 01:28 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
ау... снова Евгений Ню? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 16:10 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
andreykaTау... снова Евгений Ню? Ушел делать сервисы на Акке... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 16:31 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Ищущий Знания Делаю третий проект на акке. Два игровых сервера и вот сейчас финансовую систему. Акторы конечно же не иделальны. Но подходят для 90% задач, которыми занимается 90% программистов. Все вот эти ваши сайтики, опердени и прочие штуки отлично пишутся на акторах. Проблем на порядок меньше чем у соседей, которые другой проект пишут на стандартных микросервисах со спрингом. . По игровым проектам. Можете кинуть ссылочку на ваши сорцы? Спс. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 18:43 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
maytonПо игровым проектам. Можете кинуть ссылочку на ваши сорцы?Спс. А может вам еще и ключ от квартиры, где девки лежат? ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 10:57 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Ищущий ЗнанияА может вам еще и ключ от квартиры, где девки лежат? ;-)jотличное продвижение языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 10:59 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Ищущий ЗнанияmaytonПо игровым проектам. Можете кинуть ссылочку на ваши сорцы?Спс. А может вам еще и ключ от квартиры, где девки лежат? ;-) Жаль. Просто после пассажа об обширном опыте я рассчитывал на мастер-класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 11:30 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Хотя бы на какой нибудь ростер на тему плюсы акки минусы спринга вебсервисов которых на порядок больше. По ходу точно это Евгений ню перелогинился ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 12:01 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Здесь вроде есть парочка проектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 14:13 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Повторю мою критику AKKA из четверговых акторов Там ошибко-безопасность. Насколько я понял читая теорию актор может падать в хлам сколько угодно. OK. Упал, подняли, в общем проблемы с актором действительно нет. При этом ни один байт данных не пострадает и месседжи которые будут необработаны остаются в очередях до тех пор пока поднятый актор снова их не отработает. Стоп... стоп... стоп... Что значит, ни один байт не пострадает? Логика работы: 1. Актор ПОЛУЧИЛ сообщение из очереди (оно из очереди уже УШЛО) 2. Актор попытался его обработать и почему-то УПАЛ 3. Т.к. упал, актор НЕ смог послать сообщения-ответа с результатом или ошибкой. Необработанное сообщение ПОТЕРЯЛОСЬ и, самое страшное, ошибки нет ((( Ищущий Знаниявот сейчас финансовую систему. So do I. Точнее So did I ))) в past simple ))) Ищущий Знания....Все вот эти ваши сайтики... отлично пишутся на акторах.... "финансовая система", "микросервис", over несколько сотен тысяч юзеров по миру. Первый сценарий: NIO. Клиент установил соединение, channel записался в какие-то внутренние списки NIO Клиент прислал HTTP-запрос, запрос записался в какие-то внутренние списки NIO, ожидает ассинхронного ответа Разобрали запрос, сформировали AKKA-сообщения, послали актору На ответное AKKA-сообщение, формируем HTTP-ответ и отсылаем через NIO, после отсылки NIO свои списки почистит Какой-то актор из 100500 акторов в системе "ошибко-безопасность" упал.... УПС.... а как мы об этом узнаем?... нам же НИЧЕГО в ответ никто не пришлет и прислать не может (т.к. актор который должен был послать ответ "упал") Т.е. получаем "ошибко-безопасный" resource leak note: более частая ситуация, программист в одном из 100500 if в коде или забыл послать сообщение-ответ или не верно сформировал сообщение-ответ (поэтому актор "верхнего уровня" его не получил). Или ошибка или рефакторили и в процессе рефакторинга пару мест пропустили. Ошибки нет, а resource leak есть ((( Второй сценарий: Создание акторов - все хорошо. В "финансовой системе" на каждый символ на бирже создавали отдельный актор. Для "обычных бирж" где торгуется несколько тысяч, максимум десяток тысяч символов... все хорошо ))) Но были отдельные случае бирж (специфику я уже не помню), где коль-во символов было за сотни тысячь.... УПС.... а память то не резиновая... до 300-500 000 акторов система ЖУТКО тормозила, но стоически пыталась работать, но после 500 000 акторов - просто падала Отсюда мораль: Акторы нужно не только создавать, но и стопить. А как КОРРЕКТНО остановить актор в AKKA ? Упс... Упс.... Оно же асинхронно и доступа к очереди нет... Упс... Пытаемся остановить актор, а он, в этот момент, из очереди уже какое-то сообщение прочитал/читает/обрабатывает. Если мы ему скажем AKKA'вскую STOP, то это будет просто KILL, с ПОТЕРЕЙ ВСЕХ НЕОБРАБОТАННЫХ СООБЩЕНИЙ в его очереди + описанный Выше resource leak. Т.ч. в результате замечательный фремворк, где "ошибко-безопасно" просто теряем данные и ресурсы. Очень хотелось бы узнать от ГУРУ, как без велосипедо-строения и без русской матери, два описанных выше кейса можно реализовать на AKKA ? Кейсы не теоретические, а практические, по результату работы с реальной "финансовой системой" Ищущий ЗнанияСерьезно отвечать на эти высеры, тем кто реально пишет на акке проекты, не интересно Повторю свой вопрос: КАК КОРРЕКТНО ОСТАНОВИТЬ АКТОР В AKKA с гарантией отстутствия потерль данных/сообщений. Мне кажется, что ответ на такой элементарный вопрос должен легко находится.... но я я искал и ответа не нашел (((. В результате пришлось писать и тестировал под тысячу строк велосипедо-кода в реальном проекте. С огромной кучей synchronize, коллекций и прочий мути. От которых AKKA обещает "избавить программиста" При этом ни один байт данных не пострадает и месседжи которые будут необработаны остаются в очередях до тех пор пока поднятый актор снова их не отработает. упс... упас... насколько я помню, в AKKA, каждому актору соответствует своя "очередь" (в кавычках! там все хитро). Если мы актор останавливаем, то его очередь убивается тоже. Подозревая, что если актор упал и мы создаем новый, то тоже, у нового актора будет новая очередь Т.ч., как раз таки, мы ТЕРЯЕМ ВСЕ необработанные сообщения, т.к. с актором теряем все содержимое его очереди Плохо не то, что теряем, плохо то, что теряем ТИХО. Т.к. сообщить об ошибке, нам никто не может. Актор-верхнего уровня, сообщение корректно послал. Актор-нижнего уровня, просто упал. Данные потерялись в между-акторном-пространстве В результате, в каком-то звене системы получаем или resource leak или performance проблему (в случае retry по timeout'у) IMHO & AFAIK Declaimer : НЕ ИМЕЮ НИЧЕГО ПРОТИВ акторов как идеи. Т.к. оригинального Erlang'а не видел/не знаю. Идея, сама по себе, вроде хорошая. Сужу о Корузо (акторы, erlang) по перепевам Рабиновича (AKKA). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 14:18 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
ох какой длинный пост. Начнем с того, что When a message is sent to an Actor that is terminated before receiving the message, it will be sent as a DeadLetter to the ActorSystem's EventStream Далее почитаем про персистентные акторы, которые фиксируют свой стейт, и после перезапуска нету никаких проблем перечитать все недоставленное Ну и 300-500 тысяч это на одной ноде? Ну как бы неудивительно, акторы еще и скалить можно. Вообще есть подозрение что вы их просто так и научились готовить ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 14:33 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Хотя конечно нельзя не согласится что дебажить трудно, и рефакторить. Не согласен с выводом что это невозможно, тесты + типизированные акторы + правильно приготовить. Но опятьже, на мой взгляд сырая Akka это на любителя, akka streams или lagom гораздо более приятные, и даже полезные ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 14:39 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 14:44 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
забыл никВообще есть подозрение что вы их просто так и научились готовить честно говоря, я и не пытался. Я там вообще месяца 3-4 проработал, из них больше месяца разбирался с peformance проблемой с NIO на продакшин сервере. Т.ч. больше занимался или системным (NIO) или performance (NIO, PostgreSQL и прочее) Меня больше удивляло, что люди которе на проекте > 3 лет + контора до этого работала с ErLang'ом как-то не сильно умели их готовить. Акторы работы с базой, у меня вообще вызывали жуткое ощущение ((( забыл никНу и 300-500 тысяч это на одной ноде? Ну как бы неудивительно, акторы еще и скалить можно. Честно говоря, у меня вообще полное непонимание желания заменить СУБД на что-то в памяти. (будь это или акторы или экземпляры классов). Да занафига скалить, если они все одновременно не нужны. Просто впилил LRU Cache (из Apache Commons) и гасил неиспользуемые акторы. Но вот про "When a message is sent to an Actor that is terminated before receiving the message, it will be sent as a DeadLetter to the ActorSystem's EventStream" не знал ((( Чувство, что делаем велосипеды возникало. Но опять таки, сам до этого с AKKA не сталкивался, а народ который до этого вроде работал аж с ErLang'ом тоже ничего предложить/сказать не мог. забыл никХотя конечно нельзя не согласится что дебажить трудно, причина по которой контора ушла от ErLang'а. Но там вообще был полный зоопарк. Когда я там был, у них был новый любимец - Go Erlgang - сложно дебажить Java - тормозная Go это наше будущее ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 15:08 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Ну ваша позиция ясна, хотя точно такую же историю можно было бы услышать про Jav+Spring от людей перешедших с php. Технологию надо знать, и соглашусь akka не самая прозрачная вещь на свете) Leonid KudryavtsevЧестно говоря, у меня вообще полное непонимание желания заменить СУБД на что-то в памяти. (будь это или акторы или экземпляры классов). Ну тут интересно на самом деле.. а что и как они пытались заменить? Если правильно приготовить EventSourcing то это может иметь бенефиты, если это просто эмуляция реляционной БД но на акторах то хммм... мда.. В классических приложениях, когда мы юзаем БД, у нас есть лишь snapshot данных, состояние системы на ДАННЫЙ момент(не говоря о сложности понятие ДАНЫЫЙ момент в распределенных системах в принципе), без истории изменений(можно конечно вести аудит, но.. ) И если вдруг в софте обнаружена ошибка или юзер намеренно или случайно испортил данные - то тут свистопляска с бэкапами, откатами и т.п сложные вещи. При event sourcing вы имеете неизменяемый, упорядоченный по времени поток событий, благодаря которому все ивенты для данного энтити можно проиграть заново, что очень удобно. Конечно в этом случае все равно надо хранить где-то данные на ТЕКУЩИЙ момент для перфоманса, но вот тут и можно юзать ДБ. Та что одно второму не мешает в принципе. Но опять же, такой подход не для каждой задачи, на то мы и инженеры чтобы выбрать нужный инструмент для задачи ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 15:19 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
забыл никНу тут интересно на самом деле.. а что и как они пытались заменить? Блокировки в БД (select for update) это плохо (для производительности) А мы распилили БД по символам, символы в акторы - блокировок нет (явные блокировки в БД не нужны) ))) забыл никevent sourcing Там сама система целиком (я работал в команде над только одним микросервисом, "всю" задачу целиком не видел), скорее была как event sourcing. Например перенос данных с одного кластера на другой, вполнялся примерно похожим образом. Подняли пустой кластер, натравили на него обходчик который пройдет по всем символам, за пару дней данные перетащились. === Еще одна проблема, которую пытались решить "велосипедом". Performance и необходимость сооружения "бутылочного горлышка" Поток данных в отдельные моменты может быть настолько велик, что их нельзя принимать в обработку и нужно тупо отрубать клиента. В том числе, например, чисто из-за партнеров (сервер биржи не выдерживает). Т.ч. нужно знать кол-во необработанных месседжей очереди актора(ов) и если их большей некоего числа, не ставить новые в очередь, а просто возврашать ошибку клиенту Если в AKKA какое нибудь средство ограничить длину очереди для актора? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 16:44 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Если в AKKA какое нибудь средство ограничить длину очереди для актора? Да, даже из коробки - https://doc.akka.io/docs/akka/2.5.4/scala/mailboxes.html#builtin-mailbox-implementations Хотя можно достаточно легко написать свой мейлбокс. BoundedMailbox Backed by a java.util.concurrent.LinkedBlockingQueue Blocking: Yes if used with non-zero mailbox-push-timeout-time, otherwise No Bounded: Yes Configuration name: “bounded” or “akka.dispatch.BoundedMailbox” ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 17:02 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
чот мне кажется, что когда акку пытаются заюзать как кафку то получается жпоа. не? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 20:22 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
andreykaTчот мне кажется, что когда акку пытаются заюзать как кафку то получается жпоа. не? What are the similarities and differences between Akka and Kafka? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 21:06 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevПоток данных в отдельные моменты может быть настолько велик, что их нельзя принимать в обработку и нужно тупо отрубать клиента. В том числе, например, чисто из-за партнеров (сервер биржи не выдерживает). Т.ч. нужно знать кол-во необработанных месседжей очереди актора(ов) и если их большей некоего числа, не ставить новые в очередь, а просто возврашать ошибку клиенту Если в AKKA какое нибудь средство ограничить длину очереди для актора? Там кажется было решения для маршрутизации сообщений на множество акторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 22:39 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНо там вообще был полный зоопарк. Когда я там был, у них был новый любимец - Go Erlgang - сложно дебажить Java - тормозная Go это наше будущее ))) Вот один забавный синтетический тест показывает что в рендеринге трехмерной графики GO в пару раз тормознее чем Java. Есть замеры на разном железе. Есть сорцы. Это я не ради флейма сказал а просто так. К сведению. Чтоб окружающие не были введены в заблуждение эмоциональной фразой. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 22:43 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
По сабжу. В продолжение шахматных 20858804 чтений. Собственно ферзевая задача меня не особо интересовала. Я участвовал в ней постольку-поскольку. На тот момент (2017 год) я изучал фреймворк Apache Camel (JMS) и (сегодня) Akka. Но мне нужна была какая-то вычислительная задача которой можно было-бы загрузить 1 физический хост полностью. Потом разбить flow на 2 актора и сделать из задачи распределенную чтобы просто посмотреть как эти фреймворки ведут себя под нагрузкой. Понаблюдать. Я очень не люблю придумывать синтетические постановки а тут под руку подвернулась задача (достаточно долгоиграющая) чтобы заполнить ей долгие часы дни и даже недели. Сейчас думаю о том что существует некий актор генератор пермутаций (QueenPermutationGenerator) и актор-классификатор который принимает решение о том что расстановка удовлетворяет условию. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2018, 17:22 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, С вашими вопросами всё понятно. Вы просто не разобрались как работают акторы. Потому вам и непонятно ничего и вы делаете неверные выводы из ложных предположений. 1. Корректная обработка актора это обычное сообщение. Т.е. оно ничему не делает KILL. Актор продолжает обрабатывать очередь сообщений и когда доходит очередь сообщения остановки, завершает свой жизненный цикл обработав все сообщения которые были в очереди. А если вы пытаетесь "корректно" остановить актор который активно обрабатывает сообщения, то по степени глупости это примерно как разбирать работающий двигатель в машине, проблемы гарантированы)). Решение тут лежит не области двигателестроения, а в подходах к работе. В обычном спринг приложении вы тоже будете убивать активно используемый бин и кричать что спринг говно потому что не корректно бин гасится? ) В общем стройте корректно логику работы приложения и такой проблемы не будет. 2. Все эти странные кейсы с "потрей сообщений". Общий подход такой, что акторы выполняющие потенциально проблемный код не должны получать данные через сообщения. Данные для обработки актором должны приходить в констукторе этого актора. А сообщением актор только запускается в работу. Тогда начинает правильно работать супервизор и в случае падения актор перезапускается без потери своего состояния с полным контролем происходящего. Это правильный подход в построении систем на акторах в целом. Если почитаете теорию про акторы и примеры для акки, то всё это наёдете. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2018, 22:27 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНо были отдельные случае бирж (специфику я уже не помню), где коль-во символов было за сотни тысячь.... УПС.... а память то не резиновая... до 300-500 000 акторов система ЖУТКО тормозила, но стоически пыталась работать, но после 500 000 акторов - просто падала Это случайно не из тех бирж которые "Молодой, динамично развивающийся стартап возьмет в аренду степлер" ? )) Раз на нормальный сервер денег нет. Потому, что один актор занимает 300байт памяти, следовательно 500к займет очень грубо меньше 200мб памяти. Т.е. дело точно не в количестве акторов. А в том, что эти неучи напихали в память всякого говна помимо акторов. С таким подходом на любой платформе будут проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2018, 22:35 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
Ищущий ЗнанияВ общем стройте корректно логику работы приложения и такой проблемы не будет. Прекрасный совет! Но он никак не относится к сабжу. Никак. Вы бы лучше отошли от подхода "прекрасно лишь то, на чём работаю Я". Ищущий ЗнанияПотому, что один актор занимает 300байт памяти, следовательно 500к займет очень грубо меньше 200мб памяти. А куда же девается состояние приложения? Видимо ваша тулза обеспечивает бесконечную виртуальную память? Выше уже были вменяемые мнения про распараллеливание и "один из множества подходов", но вот "Нашедший знания" уверен, что это всё фигня, главное - стройте корректно логику работы! И в этом он прав. Только корректная логика работы подразумевает выделение сабжу очень узенькой ниши, а возможно и вообще отправку сабжа на свалку истории. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:37 |
|
Akka - что можно на ней написать?
|
|||
---|---|---|---|
#18+
alex55555, Вы явный наркоман, при чём с тяжйлой формой дислексии. alex55555Прекрасный совет! Но он никак не относится к сабжу. Никак. Он абсолютно точно относится к проблеме. Потому что проблему тут не в акторах, а в неверной логике приложения. alex55555Вы бы лучше отошли от подхода "прекрасно лишь то, на чём работаю Я". Вы под веществами? При чём тут вообще то на чём я работаю? Я где-то агатировал писать на том на чём сам работаю??? Кстати, я сейчас работаю с жутким легаси на очень старом спринге)) alex55555А куда же девается состояние приложения? Видимо ваша тулза обеспечивает бесконечную виртуальную память? Да у вас еще и тяжелая форма дислексии к тому же. Я явно и прямо написал, что это память только на акторы. А проблема связана не с количеством акторов, а с тем что содержится помиомо них. И это проблема не акторов. alex55555Выше уже были вменяемые мнения про распараллеливание и "один из множества подходов", но вот "Нашедший знания" уверен, что это всё фигня, главное - стройте корректно логику работы! И в этом он прав. Только корректная логика работы подразумевает выделение сабжу очень узенькой ниши, а возможно и вообще отправку сабжа на свалку истории. Ну тут уже явное детсадовское позёрство. Потому что я отвечал на конкретные проблемы автора сообщений. Конкретно в них проблема не в акторах вовсе. Ну и да, я нигде не говорил, что акторы решают все проблемы человечества. Только то, что они подходят для большинства типичных задача, которые мы делаем. Т.к. судя по всему вы еще не учились в институте, поясню. Есть такая наука, называется ЛОГИКА. Она подчиняется определенным законам. Погуглите, это очень интересная наука. Так вот, согласно ей, фраза "Технология Х хорошо подходит для решения задач" не означает автоматически, что все остальные технологии не подходят для решения этих же задач. Всего хорошего. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 18:38 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121710]: |
0ms |
get settings: |
14ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 336ms |
total: | 514ms |
0 / 0 |