Как стать автором
Обновить
79
Ярослав @yarread⁠-⁠only

Программист

Отправить сообщение
Если 2 минуты, напишите пожалуйста.
Мне было бы интересно посмотреть на подход, может и на java можно существенно упростить по подобию.
А это и не обучение — это замануха.
Типа «смотрите ка, на джаве можно очень легко сделать http сервер» ;)
Обучать я не собирался, это скорее очень поверхностное знакомство.
«не асинхронный» имелось ввиду про IO, называется «блокирующий IO»
То есть чтение и запись блокируют Thread
Клёво, но много букв, реально.
Даже мне, разбираещемуся человеку влом читать.
Такое будут читать если приперло, а не в рамках общего развития.
Anyway — я написал, а выбирать читателю, уверен и мой труд тоже окажется кому то полезен.
Да, конечно можно.
Я как раз лет 6 назад делал супер скоростной асинхронный сервер :)
Он оформлен в виде библиотеки, его можно использовать как embeded и не только для http.
Доступен любому желающему по лицензии LGPL, скачать здесь sourceforge.net/projects/ixstrim/

Если Вам надо не HTTP, поищите там в исходниках по ключевому слову Echo, там можно TcpEcho сервер запустить, может даже в примерах есть.
Минусы — это значит больше не надо писать такое? Странно…
Я же код сам писал, только что, тут ни байта копипаста. :)
Президента тоже выбирает толпа, которая ни чего не понимает в управлении, хотя правильней было бы доверить выборы знающим людям (хотя так и есть на самом деле, просто об этом открыто не говорят).
Один из хороших примеров использование сериализации — это когда sevlet-container шарит сессии между ему подобными контейнерами в кластере.
В это случае от разработчика лишь требуется чтобы сессия была сериализуемой, то есть все объекты которые в нее складываются были сериализуемыми, и ваше приложение сразу готово к кластеризации.
Вторая полезная штука — это сохранение сессий на диск между рестартами сервера (сервлет-контейнера), чтобы у всех пользователей не потерялся контекст и не пришлось заново логиниться, например.
В данном случае XML совершенно не нужен. Я ни разу не заглядывал в бинарные файлы (или потоки) во что там превратилась моя сессия, ибо это совсем не нужно и неинтересно. И чем бинарней данные в этих случаях тем только лучше, потому что «производительность».
По-моему, говоря об xml Вы имели ввиду не сериализацию в полном понимании этого слова, а лишь некоторый messaging.
Для тех кому неохота искать, вот здесь wicket.apache.org/introduction.html упоминаются такие слова как Struts, Cocoon, Tapestry, WebWork, Turbine, Scope, MyFaces, GWT и многие другие, а так же не упоминаются jsp, velocity, freemarker, и все это сравнивается с wicket.
Для тех кто выберет пункт «Первый раз слышу, а что это такое?»
Вот ссылка wicket.apache.org/
Согласен с Вами. Проектирование — это для взрослых мужей. :)
Еще хотелось бы добавить, что показывать такой прототип людям нельзя, ибо позитив от увиденного может быть только у самого разработчика.
Вы говорите прям как пророк какой нибудь :)
А статья действительно отличная, интересно было читать.
Отличный сервис, я хоть и не часто но пользуюсь им, и дома и на работе.
Есть маленькое предложение — добавьте возможность сменить цвет карандаша (хотя бы 3 цвета предопределенных), а тот как то делал скриншот чего то красного и понял что толку от обводки красным карандашом не будет :)
Про APP-сервера возможно Вы правы :)
Про сравнимую производительность при схожей архитектуры тоже правы :)

Перед тем как начать использовать java (это было в 1999 году), первое что я сделал — это проверил как отличается производительность Java vs Си на трех задачах:
1) qsort (разница была 5% в пользу Си)
2) передача данных по сети просто пинг сервер и клиент, разницы не было
3) операции с жестким диском (тестировались потоковое чтение и seek'и) разницы не было

На Си тесты писали матерые перцы, так что все было по честному :)
Веб приложение же вроде генерит HTML, а не парсит?
А если парсить надо, то я делал самописный HTML парсер по подобию SAX, дак он на одном ядре 3000Мгц 70Мб/сек парсил, и оптимизировать еще было куда.
Это я про java говорю.
В принципе, производительность была постоянной.
Если скачки и были то в интервалах сильно меньше 1 секунды, потому что в любую из секунд сервер обрабатывал необходимые 1000 реквестов :)
А вообще самое медленное с чем я столкнулся — это выделение памяти под массивы (в частности массивы байтов), это прям съедало основное время, поэтому я сам распарсивал реквесты, все данные перегонял по запуленным массивам байтов, ну и конечно же nio, так как 1000 thread'ов тоже просто убивают jvm :)
Если интересно посмотреть мои поделки детства то оно вот тут sourceforge.net/projects/ixstrim/
1000 хитов в секунду на java — вполне реальность, сам лично делал на 1 ядре (на целероне).
А если это будет HelloWorld и keep-alive соединения то и 10000 в секунду выдержит.
Просто сервис нужный, я обрадовался, пошел пробовать.
Пробовал, пробовал, некоторое время чувствовал себя неполноценным пользователем (что я чего то недогоняю), потом начал думать плохое на Chrome, и только после того как попробовал в ФФ3, понял что дело не в браузере.
И только потом я пошел читать комменты, после прочтения убедился что я прав, и написал свой коммент.
Пусть он и бесполезный, но негатив я отправил тому кто его спровоцировал, а не своим детям/жене/коллегам.
Над своими эмоциями мне еще работать и работать, но пока они есть :)
Поставил вам минус.
Я потратил свое личное время на то чтобы сделать хоть что нибудь на вашем сайте, но ни чего сделать не смог, потому что «No preloaders available».
И почему то дефолту мне не включился русский язык, не умеете или поленились?..
Сервис может и будет хорошим когда он будет работать, но сейчас это оценить нельзя.
Так что лучше скройте эту статью, чтобы другие люди не тратили свое драгоценное время (хотя еще несколько минусов и она сама спрячется).

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность