Мне нужно создать HTTP-сервер, который получает запросы от многих из них. как немногие 10 000-30 000 в 1-5 сек. его короткий/маленький запрос.
Мне нужно выбрать или пойти и основать его на libevent/libev (или, может быть, ACE?) или сделать это в java, используя java.nio.
Я не нашел тестов, которые составляют 2 типа libevent vs java.nio или ACE vs java.nio.
Что вы думаете эксперты?
с моей точки зрения java более прост в обслуживании (java проще, чем c) , но я подозреваю, что буду платить в исполнении.
Мне нужен совет.
Thanksjava.nio vs libevent, что выбрать при работе с массой http-запросов?
ответ
Посмотрите на Netty. Это сервер Java NIO, который построен для обработки того, что вы просите.
Что касается тестов, то первый хит от Google уже четыре года:
http://gleamynode.net/articles/2232/
Держу пари, что Нетти улучшилась с тех пор.
с моей точки зрения Java более прост в обслуживании (Java проще затем с), но я подозреваю, что я буду платить в предпочтении.
Я предполагаю, что вы имеете в виду «производительность», а не «предпочтение». Я бы сказал, что ваше подозрение может быть неправильным. Лучше всего получить некоторые реальные данные и посмотреть.
спасибо, я исправил его пакетная марка имеет дело с java nio frameworks, то, что im ask - , чтобы сделать пакетную метку с помощью приложения на основе libevent (c/C++) и java nio – user63898
Java будет вероятно, будет медленнее примерно на 20%, чем чистый код c. Но то, что вы получаете с точки зрения ремонтопригодности, будет огромным. Основная причина медленности - копирование данных с ядра на обработку памяти в java-память при чтении и наоборот при записи. –
Какие «http-запросы» вам нужно обрабатывать? Возможно, вам даже не нужен полноценный Java-сервер, и что что-то меньшее или более целевое будет работать лучше. – cdeszaq
Вы проверили, подходит ли вам гризли? http://grizzly.java.net/ – Puce
«Подозреваю, что я буду платить». Вы имеете в виду «производительность»? – EJP