Найти - Пользователи
Полная версия: Данные в памяти.
Начало » Python для новичков » Данные в памяти.
1
pochechyev
Привет.
Есть задача над которой думаю уже несколько дней и человеческого решения найти так и не могу.
Есть сервер балансировки нагрузки, он запущен на всех серверах в кластере, его задача - отдавать нагрузку сервера в момент времени.
Есть клиент который каждый n секунд обращается к серверу балансировки на каждом железном серваке, и формирует данные (список) нагрузки каждого сервера.
Есть веб сервер который относительно данных сформированных предыдущим клиентов распределяет юзверей по серверам.

Итак вопрос: данные по нагрузке хочется держать в памяти (вопрос к вам нужно ли это). Как это сделать?

Думал над тем чтобы запускать все 3 сервиса потоками из одной программы и данные держать в какой-то переменной, но опять таки не нашел как потоки могут обмениваться данными.
o7412369815963
эти данные можно держать в отдельном процессе или на другом хосте, а юзать их через сеть (мемкеш). при этом не обязательно что-б запрос одного пользователя обрабатывался на конкретной машине.
pochechyev
o7412369815963
эти данные можно держать в отдельном процессе или на другом хосте, а юзать их через сеть (мемкеш).
насколько значительно вырастет время обращения по сравнению с вариантом когда эти данные будут держатся в памяти?
o7412369815963
pochechyev
o7412369815963
эти данные можно держать в отдельном процессе или на другом хосте, а юзать их через сеть (мемкеш).
насколько значительно вырастет время обращения по сравнению с вариантом когда эти данные будут держатся в памяти?
хз., но для конечного пользователя будет не ощутимо.

если данными нужно обмениваться между потоками одного процесса, то можно использовать глобальную переменную.

судя по идее - это система для большой нагрузки, если так то сервер балансировки нужно описать на с++, а лучше взять готовое решение.
pochechyev
o7412369815963
судя по идее - это система для большой нагрузки, если так то сервер балансировки нужно описать на с++, а лучше взять готовое решение.
взять готовое насколько я понимаю дорого, очень дорого.
по поводу плюсов - будем смотреть по нагрузке, возможно буду переписывать тонкие места на Сях
pochechyev
o7412369815963
если данными нужно обмениваться между потоками одного процесса, то можно использовать глобальную переменную.
я парился и не смог понять, как использовать глобальную переменную если разнести классы которые будут выполнятся в разных потоках по разным файлам (модулям) ?
o7412369815963
pochechyev
o7412369815963
судя по идее - это система для большой нагрузки, если так то сервер балансировки нужно описать на с++, а лучше взять готовое решение.
взять готовое насколько я понимаю дорого, очень дорого.
по поводу плюсов - будем смотреть по нагрузке, возможно буду переписывать тонкие места на Сях
а что на счет бесплатного и открытого, вон тот же апачь может и проксировать и балансировать
o7412369815963
pochechyev
o7412369815963
если данными нужно обмениваться между потоками одного процесса, то можно использовать глобальную переменную.
я парился и не смог понять, как использовать глобальную переменную если разнести классы которые будут выполнятся в разных потоках по разным файлам (модулям) ?
создаешь переменную в отдельном модуле и импортируешь это модуль/переменную куда надо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB