Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
ВнизIndy или не Indy Найти похожие ветки
← →
Andy BitOff (PPC) (2008-07-02 19:02) [0]Есть возможность замутить один проект. Проект небольшой, пара-тройка табличек, десяток клиентов и сервак, даже сервачок :) Все это добро будет работать внутри одной лок.сети.
Так вот, возник вопрос. Indy это зло или нет?
← →
Поросенок Винни-Пух © (2008-07-02 19:04) [1]это библиотека
← →
Поросенок Винни-Пух © (2008-07-02 19:07) [2]и добро
← →
Andy BitOff (PPC) (2008-07-02 19:14) [3]Что это такое я знаю. ;) Уже использовал. Правда давно, поэтому и спросил. А вдруг реалии поменялись.
← →
Anatoly Podgoretsky © (2008-07-02 19:18) [4]> Andy BitOff (PPC) (02.07.2008 19:02:00) [0]
При таких размерах инструмент не играет роли.
← →
тимохов (2008-07-02 19:18) [5]лучше ICS
← →
Anatoly Podgoretsky © (2008-07-02 19:21) [6]> тимохов (02.07.2008 19:18:05) [5]
Когда в вопросе общие слова, то лучше не говорить.
← →
clickmaker © (2008-07-02 19:35) [7]а зачем инди для локальной сети?
стандартных клиент-серверных компонентов не хватает?
← →
Andy BitOff (PPC) (2008-07-02 20:41) [8]clickmaker © (02.07.08 19:35) [7]
Как это не покажется странным, но со стандартными компонентами я не работал. Надо бы посмотреть, наверно.
А что, Indy плох для лок.сети?
← →
DVM © (2008-07-02 21:14) [9]Indy не плох, но довольно своеобразен и к этому его своеобразию надо привыкать. Также следует иметь в виду, что мало справочной информации и достойных примеров. Те, что есть, либо устарели, либо содержат явные ошибки и примеры того, как делать не надо.
← →
Правильный-Вася (2008-07-02 21:37) [10]молоток для забивания шурупов хоть и годится, но уж лучше отверткой
← →
Rouse_ © (2008-07-02 23:15) [11]Indy - это то еще чудо, для "сервачка" как раз сгодится...
← →
Тимохов (2008-07-03 00:47) [12]
> Anatoly Podgoretsky © (02.07.08 19:21) [6]
> > тимохов (02.07.2008 19:18:05) [5]Когда в вопросе общие
> слова, то лучше не говорить.
ну ты же говоришь.
а ты -- мой кумир.
← →
Anatoly Podgoretsky © (2008-07-03 00:53) [13]> Тимохов (03.07.2008 0:47:12) [12]
Мы с тобой о кумирах говорили?
← →
Хохол (2008-07-03 01:02) [14]
> Andy BitOff (PPC) (02.07.08 19:02)
>
> Есть возможность замутить один проект. Проект небольшой,
> пара-тройка табличек, десяток клиентов и сервак, даже сервачок
> :) Все это добро будет работать внутри одной лок.сети.
> Так вот, возник вопрос. Indy это зло или нет?
Уникода там нет и пула коннектов. Так что Java + Tomcat + JSP/JSTL. Так что если сервер, то Java (если нагрузка в сотни тысяч клиентов то C++).
Можно на PHP, но это как писать на древнем turbopascal 5.0 с его убогой объектной моделью.
← →
clickmaker © (2008-07-03 09:06) [15]> [8] Andy BitOff (PPC) (02.07.08 20:41)
из пушки по воробьям получится.
Если намечается субд + клиент-сервер, то я бы глянул в сторону ADO и MIDAS
← →
Sha © (2008-07-03 10:25) [16]> Хохол
> если нагрузка в сотни тысяч клиентов то C++
Даже у великого С++ портов не хватит.
← →
Плохиш © (2008-07-03 10:38) [17]
> Хохол (03.07.08 01:02) [14]
> древнем turbopascal 5.0 с его убогой объектной моделью
и где ты там объекты нашёл?
← →
Anatoly Podgoretsky © (2008-07-03 10:41) [18]> Sha (03.07.2008 10:25:16) [16]
> если нагрузка в сотни тысяч клиентов то C++
то только ICS или прямая работа с WinSocks в ассинхронном режиме.
← →
umbra © (2008-07-03 10:47) [19]
> > если нагрузка в сотни тысяч клиентов то C++
>
> то только ICS или прямая работа с WinSocks в ассинхронном
> режиме.
>
даже у ICS портов не хватит :)
← →
umbra © (2008-07-03 10:51) [20]
> Уникода там нет и пула коннектов.
А зачем там уникод? А пул коннектов там есть :)TIdSchedulerOfThreadPool
← →
Дуб © (2008-07-03 11:04) [21]
> Плохиш © (03.07.08 10:38) [17]
Не мешай эксперту раскрыться.
← →
Anatoly Podgoretsky © (2008-07-03 12:21) [22]> umbra (03.07.2008 10:47:19) [19]
В курсе, правда не в ICS а в Виндоус - только 32000 портов на один ИП
Правда количество ИП не ограничено одним.
← →
Anatoly Podgoretsky © (2008-07-03 12:22) [23]> Дуб (03.07.2008 11:04:21) [21]
А разве это еще не произошло, может ты пропустил некоторые сообщения в других ветках.
← →
Дуб © (2008-07-03 12:26) [24]> может ты пропустил некоторые сообщения в других ветках.
Видимо, да. Я не все читал.
← →
Sha © (2008-07-03 13:04) [25]> Anatoly Podgoretsky © (03.07.08 12:21) [22]
> В курсе, правда не в ICS а в Виндоус - только 32000 портов на один ИП
1. почему не 64k ?
2. ICS сделан на сообщениях, поэтому если вести речь не коннектах, а об активной работе, то 1000-5000 соединений для него предел.
← →
Anatoly Podgoretsky © (2008-07-03 14:07) [26]> Sha (03.07.2008 13:04:25) [25]
1. Я не знаю почему не 64К, я основываюсь на информации из форума ICS, те кто делал высоконагруженые сайты и споткнулся на данном ограничение, некоторые вещи в АПИ не совсем последовательны и необъяснимы, те кто накладывал эти ограничения, уже не доступен.
2. Не согласен, нормально держит 32000 сообщений, этому есть подтверждение в виде готовых рабочих продуктов, по крайней мере известно два, один с 4 потоками, и еще один исключительно на сообщениях, то есть один поток. Характер ФТП и ФТП подобные решения федерального уровня. Но конечно писать такие приложения не каждому дано, я бы не взялся.
← →
DVM © (2008-07-03 14:40) [27]
> Anatoly Podgoretsky © (03.07.08 14:07) [26]
по моему глупо писать столь высокопроизводительный сервер в 1 потоке и не задейсвовать все возможности многопроцессорных систем.
← →
Sha © (2008-07-03 14:41) [28]> Anatoly Podgoretsky © (03.07.08 14:07) [26]
1. На АПИ (после известных правок в реестре) нет ограничения 32000.
2. Держать 32000 соединений в чате или даже на ФТП сервере и активно работать по 32000 соединениям это немного разные вещи. Тот же ФТП сервер обычно строится так, чтобы быстро прокачать данные одновременно примерно через 200-500 соединений.
← →
Anatoly Podgoretsky © (2008-07-03 15:39) [29]> DVM (03.07.2008 14:40:27) [27]
Интернет это очень медленное даже сейчас. ICS потоки не нужны, но он не препятсвует производить долгоиграющую обработку в потоках, например обращение к базе. Обработку сокетов вести в потоках - это себе вредить, это изначально событийная среда. Количество потоков в Виндоус ты врядли сможешь сделать больше 1500, реально где то 1000, поскольку только под стек каждому потоку нужен 1 мб. Дальше бери калькулятор в руки и посчитай сколько у тебя получится. Это и есть основное ограничение Инди, что не позволяет создать хоть как то похожую на большую систему систему.
← →
Anatoly Podgoretsky © (2008-07-03 15:44) [30]
> 2. Держать 32000 соединений в чате или даже на ФТП сервере
> и активно работать по 32000 соединениям это немного разные
> вещи. Тот же ФТП сервер обычно строится так, чтобы быстро
> прокачать данные одновременно примерно через 200-500 соединений.
>
Для TCP - на каждого подключившего клиента заводится один сокет, а это означает ИП+Порт, поле порт всего 16 бит, далее можешь посчитать есть ограничение или нет.
Для приведеных мне примеров, нагрузка там была дикая, на канале 100 гигабит канал полностью забит. Я же написал не ФТП, а ФТП подобные решения. Какая то серьезная федеральная служба. Это который однопоточный. Автор правда сильно не распространялся, видимо ограничение на информацию.
← →
Eraser © (2008-07-03 15:54) [31]> [29] Anatoly Podgoretsky © (03.07.08 15:39)
> Обработку сокетов вести в потоках - это себе вредить, это
> изначально событийная среда.
не согласен, классические беркли-сокеты блокирующие (синхронные).
по сабжу: если соединений не очень много, то инди сгодится, если нужен серьезный сервер, тогда рекомендуют использовать порты завершения и писать прийдется на winAPI, что тоже в общем не смертельно.
← →
umbra © (2008-07-03 15:54) [32]
> на канале 100 гигабит канал полностью забит
это ничего не говорит о количестве активных пользователей. При 32000 активных пользователей система загнется от слишком активного чтения/записи винта :)
← →
Eraser © (2008-07-03 15:55) [33]кстати в инди есть возможнсть использовать т.н. волокна (fibers), говорят они намного менее ресурсоемкие, чем потоки.
← →
Sha © (2008-07-03 16:04) [34]> Anatoly Podgoretsky © (03.07.08 15:44) [30]
> можешь посчитать есть ограничение или нет
Посчитал: нету.
> на канале 100 гигабит канал полностью забит
Это не значит, что все соединения активно работали.
Количество сообщений, которые будет генерировать WinSock,
может отличаться на порядки для одного активно работающего соединения и 32000. И соответственно время CPU.
← →
Anatoly Podgoretsky © (2008-07-03 16:19) [35]> Eraser (03.07.2008 15:54:31) [31]
С классическими Беркли сокетами иди на на Беркли
← →
Anatoly Podgoretsky © (2008-07-03 16:23) [36]> umbra (03.07.2008 15:54:32) [32]
Использованы все соединения, и насчет загнется, ты что думаешь, там стоят бытовые компьютере и ИДЕ диски, а SAN стойки не хочешь?
Это реальные системы, 30000 это реальное количество подключений, а не выдуманое, остальные ждут очереди. Кроме того, 30000 активных пользователей совсем не означает 30000 активно пишущих пользователей, а сокеты все равно заняты и их количество на один ИП ограничено операционной системой и физической организацией TCP/IP - 16 бит.
← →
Anatoly Podgoretsky © (2008-07-03 16:25) [37]> Eraser (03.07.2008 15:55:33) [33]
Можно, только это не имеет отношения к сокетам, это позволяет в рамках одного потока организовать еще подпотоки, через фиберы. Вот им стек не нужен, они используют стек потока.
← →
Anatoly Podgoretsky © (2008-07-03 16:26) [38]> Sha (03.07.2008 16:04:34) [34]
А у меня есть, теоритически на одном ИП никак не получить свыше 65535 портов и соотвественно количество клиентов на TCP/IP
На UDP такого ограничения нет.
← →
umbra © (2008-07-03 16:33) [39]
> Можно, только это не имеет отношения к сокетам, это позволяет
> в рамках одного потока организовать еще подпотоки, через
> фиберы. Вот им стек не нужен, они используют стек потока
ну так инди ж плох тем, что потоков много создает, а не тем, что мало сокетов может использовать :)
← →
Anatoly Podgoretsky © (2008-07-03 16:41) [40]> umbra (03.07.2008 16:33:39) [39]
Он себе (через программиста конечно) жизнь портит, но как минимум один поток + один порт на соединение. 32000 потоков не реально.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.049 c