powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Обработка данных в приложении постоянно находящегося в памяти сервера
10 сообщений из 10, страница 1 из 1
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37805062
Tolstokot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Занимаюсь обработкой данных gps-навигации. Сообщения с навигаторов по сути есть асинхронные события, которые надо обрабатывать по мере их поступления (они еще называются отметками и иногда считаются просто данными с навигаторов). Причем реакция и возможное изменение состояния наблюдаемого объекта (связь навигатора с сервером: offline/online; движение: stand, run; ...) зависят от его текущих состояний (и возможно предыдущих). Например если наблюдаемый объект находится в состоянии СТОЯНКА, то для того, чтобы он перешел в состояние ДВИЖЕНИЕ необходимо возникновение не одного, а нескольких последовательных событий (это упрощенный принцип).
Вопрос: нормально ли если на сервере будет запущено приложение по обработке данных, будут на протяжении всего его выполнения в памяти находиться объекты (по одному на каждый наблюдаемый объект), которые обеспечивают необходимое поведение (реакцию на события). Периодически состояния всех этих объектов в приложении будут скидываться в БД. И помимо этого все сгенерированные события (в результате обработки событий с навигаторов) тоже периодически пишутся в базу.

ps объекты наблюдения это например автобусы, троллейбусы, трамваи, ...
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37805076
Tolstokot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Херовость такого подхода описана вот здесь:
https://github.com/nathanmarz/storm/wiki/Rationale
решение там же ;)
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37806066
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверняка в Storm будут трудности с вот этим: "необходимо возникновение не одного, а нескольких последовательных событий". По крайней мере с ходу неясно, как это обеспечить при распределенной параллельной обработке в Storm.

А обработка в памяти с асинхронной записью в БД - нормальный (с некоторыми оговорками) вариант.
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37809749
neoddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что вам нужно, называется event sourcing. Погуглите.

Еще полезно почитать http://highscalability.com/
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37811635
Tolstokot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
neoddd,

а без паттерна event sourcing здесь и не обойтись :) уже использую его
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37811644
neoddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tolstokotneoddd,

а без паттерна event sourcing здесь и не обойтись :) уже использую его

Тогда вопрос в первом посте непонятен. Но раз уж цохдали тему, расскажите, что было трудно, что было легко
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37811790
Tolstokot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
neoddd,

вопрос был в том нормально ли постоянно на сервере в оперативе держать кучу объектов реализующих хранение состояний и реакцию на события. Если увеличится количество событий и время обработки событий, то возникнут проблемы с масштабированием, которые пока не знаю как решать.
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37811897
neoddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tolstokotвопрос был в том нормально ли постоянно на сервере в оперативе держать кучу объектов реализующих хранение состояний и реакцию на события.

Нормально, event sourcing облегчает реализацию БД в памяти.

TolstokotЕсли увеличится количество событий и время обработки событий, то возникнут проблемы с масштабированием, которые пока не знаю как решать.

sharding применяется для разнесения частей БД по разным серверам с потенциально бесконечной масштабируемостью.
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37812290
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TolstokotПериодически состояния всех этих объектов в приложении будут скидываться в БД. И помимо этого все сгенерированные события (в результате обработки событий с навигаторов) тоже периодически пишутся в базу.
Вот это ненормально.
Паттерн который предложили, правильный.
Нужно правильно организовать очередь записи. Можно да, от разных объектов писать в разные десты (таблицы, базы, сервера) для распараллеливания.
Идея с объектами может противоречить идее event sourcing. А может и нет. Смотря как подойти к реализации.
...
Рейтинг: 0 / 0
Обработка данных в приложении постоянно находящегося в памяти сервера
    #37813920
Tolstokot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
neoddd, Siemargl

спасибо за ответы :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Обработка данных в приложении постоянно находящегося в памяти сервера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]