Russian Qt Forum
Ноябрь 14, 2024, 10:03
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Архитектура сервера. Попытка номер раз.
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Архитектура сервера. Попытка номер раз. (Прочитано 3309 раз)
Bepec
Гость
Архитектура сервера. Попытка номер раз.
«
:
Июнь 12, 2014, 14:34 »
Приветствую заглянувших.
Суть проблемы - нужно переписать сервер.
Имеется - один сервер, который принимает данные у многих клиентов. При определённых условиях запускаются процессы, общающиеся с клиентами через сервер.
Как сделано сейчас:
В БД имеется таблица приходящих данных и отправляемых.
Сервер пишет в таблицу приходящих и отправляет данные из таблицы отправляемых.
Процессы соответственно из БД берут приходящие данные, обрабатывают и записывают в другую таблицу данные на отправку.
Так и живут. Данные передаются в HEX'ах.
Собственно вопрос - как лучше сделать, или мб лучше ничего не менять? Опыт в серверонаписании минимальный.
Я пока вижу варианты:
1) оставить как есть, разве что вместо HEX'а блобы использовать.
2) оставить как есть, только убрать БД и использовать другие способы передачи данных - сервер знает все процессы и необходимые им данные может посылать напрямую. (сокеты, пайпы)
4) убрать процессы, переложить обработку на сервер. Но в таком случае теряется надёжность сервера :/
PS и если кто знает, накидайте литературу по этому направлению (не общую теорию, а именно сервер и разделённые процессы обработчики).
Заранее спасибо.
Записан
Bepec
Гость
Re: Архитектура сервера. Попытка номер раз.
«
Ответ #1 :
Июнь 15, 2014, 14:22 »
uuup
Записан
Figaro
Гость
Re: Архитектура сервера. Попытка номер раз.
«
Ответ #2 :
Июнь 15, 2014, 17:30 »
"Работает - не трожь"... Суть проблемы непонятна... Скорость не устраивает? Криво работает?
Записан
Bepec
Гость
Re: Архитектура сервера. Попытка номер раз.
«
Ответ #3 :
Июнь 15, 2014, 17:42 »
Криво работает + сделано в виде гуи приложения + отдельные процессы тоже гуи + отдельные процессы страдают недержанием topOn mode + изредка эксцессы с умиранием всей системы
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Архитектура сервера. Попытка номер раз.
«
Ответ #4 :
Июнь 15, 2014, 22:38 »
Настолько криво, что проще переписать заново? Что падает-то сервер или процессы?
Не имея конкретики, я бы убрал БД как средство обмена информации и "законсолил" те самые "отдельные" процессы.
Записан
Bepec
Гость
Re: Архитектура сервера. Попытка номер раз.
«
Ответ #5 :
Июнь 15, 2014, 23:20 »
Вот этого я и прошу, только поконкретнее как заменить БД и как "законсолить". 20-30 консольных окон не нравятся тоже
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Архитектура сервера. Попытка номер раз.
«
Ответ #6 :
Июнь 16, 2014, 10:15 »
Так и я пока не пойму - насколько имеется готовность (и необходимость) в переделывании всего и вся.
Обмен информацией через БД заменить на стандартный для консолей ввод/вывод через stdin/stdout, если данных много, то можно через файл передавать, можно через QSharedMemory, можно через QLocalSocket - вариантов 100500, каждый со своими плюсами/минусами.
Если раздражают "консольные окна" (это же сервер, кто на них смотреть-то будет?) запускай их в "спрятанном состоянии".
Если же надо переписать все с нуля (а надо ли?), то вместо внешних приложений сейчас принято держать пул потоков, которые будут исполнять то, что раньше делалось снаружи. На Qt это реализуется через, например, QtConcurrent. Такое решение будет более монолитным и, теоретически, более быстрым (если таких задач много), но более сложным с точки зрения архитектуры и, как ты справедливо и сам отмечал, менее надежным.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...