|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2015, 14:22 | #1 | |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Высоконагруженный сервер на бусте
Добрый день светлые умы всех постсоветских стран.
Проектирую приложение клиент/сервер (messenger) на бусте, делаю это впервые, раньше до этого писал подобные вещи только на .NET но добивался производительности не больше 150-200 сообщений в секунду и то очень с большим напряжением, так как удержать память в стабильном состояние очень трудно, с учетом того что нужно обращаться к базе (MS SQL), получать некоторую информацию и отправлять дальше туда куда оно шло, а это капля в море в сравнение с популярными messenger приложениями которые держат несколько миллионов одновременных подключений и сотен миллионов передач сообщений. Естественно, там маштабируемые системы, распределенная нагрузка, много серверов и т.д. но я более чем уверен что один их сервер выдерживает большее количество запросов нежели то, что я получил на .NET с максимальным использованием асинхронности (возможно у людей с более прямыми руками удастся добиться результаты куда лучше). Впервые использую не реляционную базу данных и мой выбор пал на Couchbase. (для общей информации) В общем, такие чисто философские вопросы, возможно из Вас кто-то сталкивался с проектированием высоконагруженных приложений, буду рад любому совету и полезной информации. Базовую архитектуру я планирую сделать следующим образом: Чтобы логической частью быть платформенно независимым я решил выбрать c++ и библиотеку boost для реализации передачи текстовых и аудио сообщений чтобы в дальнейшем ее можно было использовать для GUI приложений. Немного пошустрив по гуглу я увидел что есть возможность вызывать методы с# из под c++ коробки тем самым обеспечив клиентскому приложению различные события получения сообщений и другого. То есть, буду писать прослойку между c++ и c#, objective c и java, но тут сразу возникает вопрос, как сильно такая реализация повлияет на производительность? GUI для каждой платформы хочу писать на том языке который ближе всего приближен к платформе. Цитата:
За ранее благодарю за ответы на поставленные вопросы. Последний раз редактировалось coNsept; 28.10.2015 в 15:05. |
|
28.10.2015, 15:18 | #2 |
Старожил
Регистрация: 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
ЛС отключены Аларом. |
28.10.2015, 15:38 | #3 |
Форумчанин
Регистрация: 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. |
28.10.2015, 16:10 | #4 |
Старожил
Регистрация: 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
ЛС отключены Аларом. |
28.10.2015, 16:17 | #5 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
А как же енто?
https://www.qt.io/buy-product/ |
28.10.2015, 16:21 | #6 |
Старожил
Регистрация: 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
ЛС отключены Аларом. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сервер | Баграт | Общие вопросы 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 |