Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2015, 14:22   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию Высоконагруженный сервер на бусте

Добрый день светлые умы всех постсоветских стран.

Проектирую приложение клиент/сервер (messenger) на бусте, делаю это впервые, раньше до этого писал подобные вещи только на .NET но добивался производительности не больше 150-200 сообщений в секунду и то очень с большим напряжением, так как удержать память в стабильном состояние очень трудно, с учетом того что нужно обращаться к базе (MS SQL), получать некоторую информацию и отправлять дальше туда куда оно шло, а это капля в море в сравнение с популярными messenger приложениями которые держат несколько миллионов одновременных подключений и сотен миллионов передач сообщений.
Естественно, там маштабируемые системы, распределенная нагрузка, много серверов и т.д. но я более чем уверен что один их сервер выдерживает большее количество запросов нежели то, что я получил на .NET с максимальным использованием асинхронности (возможно у людей с более прямыми руками удастся добиться результаты куда лучше).

Впервые использую не реляционную базу данных и мой выбор пал на Couchbase. (для общей информации)

В общем, такие чисто философские вопросы, возможно из Вас кто-то сталкивался с проектированием высоконагруженных приложений, буду рад любому совету и полезной информации.

Базовую архитектуру я планирую сделать следующим образом:

Чтобы логической частью быть платформенно независимым я решил выбрать c++ и библиотеку boost для реализации передачи текстовых и аудио сообщений чтобы в дальнейшем ее можно было использовать для GUI приложений.
Немного пошустрив по гуглу я увидел что есть возможность вызывать методы с# из под c++ коробки тем самым обеспечив клиентскому приложению различные события получения сообщений и другого.
То есть, буду писать прослойку между c++ и c#, objective c и java, но тут сразу возникает вопрос, как сильно такая реализация повлияет на производительность?

GUI для каждой платформы хочу писать на том языке который ближе всего приближен к платформе.

Цитата:
WINDOWS = значит WPF
iOS = значит ObjectiveC
ANDROID = значит JAVA
В общем, на сколько хороша такая архитектура, в правильном ли направление я мыслю?

За ранее благодарю за ответы на поставленные вопросы.

Последний раз редактировалось coNsept; 28.10.2015 в 15:05.
coNsept вне форума Ответить с цитированием
Старый 28.10.2015, 15:18   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что такое "ближе всего приближен к платформе"?
WPF явно не приближен. Чистый WinApi больше всего приближен, потом какие-нибудь не сильно высокоуровневые обертки над ним типа MFC, VLC. Но критерий странный какой-то.

Раз С++, то я б Qt взял вместо WPF, особенно если не нужно сильно сложного UI (а если и нужно, то можно Qt QML попробовать), проще прослойку писать. Заодно проще с кроссплатформеностью на MacOS и Linux.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.10.2015, 15:38   #3
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Кроссплатформенные решения аля xamarin, qt, phonegap и прочее, это все удовольствие платное а я как нищеброд не могу себе позволить оплачивать каждый месяц тот же QT, Xamarin и т.д.
UI будет достаточно сложен в некоторых местах, а на сколько качественно работают эти кросплатформенные решения я не знаю, поэтому принял для себя выбор в сторону того что работает корректно, стабильно и бесплатно.

По поводу "ближе всего приближен к платформе"? в моем понимание.

Даже не знаю, как вам так по проще ответить..

WPF - огромные возможности построения UI, это c#, это .NET, это удобно, быстро, это использует большинство людей на планете, вселенной и других цивилизаций, в общем мне он очень нравится.
JAVA - ненавижу это хамно и весь этот андроид
Objective C - никогда не писал под iOS но всех кого я знаю, буржуев, его боготворят, здесь такая же сложившиеся ситуация, его используют все.

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

Последний раз редактировалось coNsept; 28.10.2015 в 16:14.
coNsept вне форума Ответить с цитированием
Старый 28.10.2015, 16:10   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Qt с чего бы платный?
http://stackoverflow.com/questions/2...-closed-source
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.10.2015, 16:17   #5
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

А как же енто?
https://www.qt.io/buy-product/
coNsept вне форума Ответить с цитированием
Старый 28.10.2015, 16:21   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну если вы не хотите линковать динамически, или хотите изменять Qt и не давать к нему доступ, или нужны какие-то фичи, которых нет в бесплатном, то тогда да.

https://www.qt.io/download-open-source/
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сервер Баграт Общие вопросы Delphi 2 02.10.2012 13:40
Высоконагруженный MySQL. Оптимизация. Избранный SQL, базы данных 7 03.07.2012 23:24
Com - сервер и C# m9yt C# (си шарп) 3 22.06.2012 02:26