Russian Qt Forum

Qt => Работа с сетью => Тема начата: olimpset от Ноябрь 13, 2018, 02:37



Название: Правильная архитектура сервера/клиента
Отправлено: olimpset от Ноябрь 13, 2018, 02:37
Написал сервер. Теперь нужно создать новый проект "клиент", и я не знаю использовать ли для клиентского приложения QT или прибегнуть к boost::asio?
В идеале должна быть такая архитектура, как и в большинства профессиональных серверов:
Сервер на QT и множество независимых клиентов (клиент на c#, клиент на c++ и так далее). И не знаю теперь, писать ли клиентов с использованием QT. Хочу сделать изначально с жизнеспособной артитектурой, что бы потом можно было также интегрировать скриптовый язык (lua, к примеру).


Название: Re: Правильная архитектура сервера/клиента
Отправлено: Old от Ноябрь 13, 2018, 07:43
Написал сервер. Теперь нужно создать новый проект "клиент", и я не знаю использовать ли для клиентского приложения QT или прибегнуть к boost::asio?
Qt и asio это инструменты, использовать можно любой. Я бы наоборот сервер писал на asio, а клиенты в зависимости от их назначения или на asio или на Qt.

В идеале должна быть такая архитектура, как и в большинства профессиональных серверов:
Сервер на QT и множество независимых клиентов (клиент на c#, клиент на c++ и так далее). И не знаю теперь, писать ли клиентов с использованием QT. Хочу сделать изначально с жизнеспособной артитектурой, что бы потом можно было также интегрировать скриптовый язык (lua, к примеру).
Опять же инструмент никак не связан с архитектурой приложений. Интегрировать lua можно в любой проект, хоть с Qt, хоть без, главное продумать качественный API для ядра, чтобы из скриптов удобно было с ним работать.


Название: Re: Правильная архитектура сервера/клиента
Отправлено: RedDog от Ноябрь 13, 2018, 11:38
Какие требования к серверу, сетевому протоколу?
Qt-шный тсп  сервер у меня в проекте может обрабатывать около 30-50к сообщений в секунду, при 50-100 подключениях. Сообщение около 3-5кб.
БОльшей производительности я не знаю как от него добиться, но для моих задач текущей за глаза, и посадка идёт не в сети (пока).


Название: Re: Правильная архитектура сервера/клиента
Отправлено: ViTech от Ноябрь 13, 2018, 12:21
Я бы Qt использовал только в GUI части, а сервер и ядро клиентов старался бы писать средствами стандартной библиотеки C++ и тех библиотек, которые планируется туда добавить в новых стандартах С++. Например, Networking TS базируется на части Boost.Asio.


Название: Re: Правильная архитектура сервера/клиента
Отправлено: Old от Ноябрь 13, 2018, 18:34
Какие требования к серверу, сетевому протоколу?
Qt-шный тсп  сервер у меня в проекте может обрабатывать около 30-50к сообщений в секунду, при 50-100 подключениях. Сообщение около 3-5кб.
БОльшей производительности я не знаю как от него добиться, но для моих задач текущей за глаза, и посадка идёт не в сети (пока).
В локальной сети сервер работает?


Название: Re: Правильная архитектура сервера/клиента
Отправлено: RedDog от Ноябрь 13, 2018, 22:25
В локальной сети сервер работает?
Да. Гигабитной, если это важно.


Название: Re: Правильная архитектура сервера/клиента
Отправлено: Old от Ноябрь 13, 2018, 23:40
Да. Гигабитной, если это важно.
Вы пишите что в сеть не упираетесь, хотя судя по вашим цифрам как раз упираетесь в гигабит (это при минимальных значениях, которые вы указали - 30К сообщений по 3К каждое). 


Название: Re: Правильная архитектура сервера/клиента
Отправлено: RedDog от Ноябрь 14, 2018, 07:37
Вы пишите что в сеть не упираетесь, хотя судя по вашим цифрам как раз упираетесь в гигабит (это при минимальных значениях, которые вы указали - 30К сообщений по 3К каждое). 
Я имел ввиду, что быстродействие сервера не является узким местом в моем случае.
В тестах производительности еще и локалхост участвовал несколькими подключениями.
А цифры привел для понимания производительности Qt механизмов.


Название: Re: Правильная архитектура сервера/клиента
Отправлено: vbv от Ноябрь 14, 2018, 13:38
Поглядываю на этот тред и удивляюсь, сколько "экспертов" обсуждают "сферический клиент-сервер в вакууме".
О задаче ничего не известно, но обсуждений ......