Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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 потоков не реально.


 
Хохол   (2008-07-03 17:22) [41]


> Anatoly Podgoretsky ©   (03.07.08 16:23) [36]
>
> > umbra  (03.07.2008 15:54:32)  [32]
>
> Использованы все соединения, и насчет загнется, ты что думаешь,
>  там стоят бытовые компьютере и ИДЕ диски, а SAN стойки
> не хочешь?
> Это реальные системы, 30000 это реальное количество подключений,
>  а не выдуманое, остальные ждут очереди. Кроме того, 30000
> активных пользователей совсем не означает 30000 активно
> пишущих пользователей, а сокеты все равно заняты и их количество
> на один ИП ограничено операционной системой и физической
> организацией TCP/IP - 16 бит.


Извините, но 1 TCP подключение к порту это запись в таблице
IP Клиента ПортКлиента(максимум 2^16-1 - системные порты) IP сервера ПортСервера

А ftp на передачу файла открывает новый порт по которому и передаёт данные.

Так что если использовать свой app протокол на основе tcp то только есть ограничение на то что между ОДНИМ КЛИЕНТОМ и сервером не может быть более 2^16 соединений.

Ну и конечно ограничение памяти на сервере, каждый коннект, обычно, это минимум 1 мб памяти.


 
Хохол   (2008-07-03 17:25) [42]


> Anatoly Podgoretsky ©   (03.07.08 16:41) [40]
>
> > umbra  (03.07.2008 16:33:39)  [39]
>
> Он себе (через программиста конечно) жизнь портит, но как
> минимум один поток + один порт на соединение. 32000 потоков
> не реально.


Поэтому Java, там можно сохранять контекст сессии клиента штатными данными и восстанавливать при новом подключении.


 
Sha ©   (2008-07-03 17:57) [43]

> Anatoly Podgoretsky ©   (03.07.08 16:26) [38]
> А у меня есть, теоритически на одном ИП никак не получить свыше 65535 портов и соотвественно количество клиентов на TCP/IP

речь о том что нет ограничения 32000 :)
так я и говорил тебе про ограничение 64k

> На UDP такого ограничения нет.

а это здесь причем?


 
Anatoly Podgoretsky ©   (2008-07-03 19:30) [44]

> Sha  (03.07.2008 17:57:43)  [43]

Я не знаю откуда они взяли 32К может оно объявлено как Int16 где то внутри, при том не обязательно портов!. Я же не буду писать программу, которая будет только тем и заниматься как открывать порты. Нафиг это мне надо, у меня же и близко таких задач не предвидется.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.034 c
2-1216556223
MixPix
2008-07-20 16:17
2008.08.24
вставить TTreeNode в дерево


2-1216301860
Mops
2008-07-17 17:37
2008.08.24
свой пункт меню


2-1216505792
Stan
2008-07-20 02:16
2008.08.24
Перевести unsigned в signed


2-1216046956
Vikindos
2008-07-14 18:49
2008.08.24
Замена слов в массиве


2-1216215791
savyhinst
2008-07-16 17:43
2008.08.24
TComponentName = type string;





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский