Какой Java-сервер здесь наиболее подходит? - PullRequest
1 голос
/ 22 сентября 2009

Я занимаюсь разработкой простого веб-приложения, которое содержит эти 3 компонента:

  1. клиент, который использует Ajax, javascript, html для отображения данных в браузере.
  2. Веб-сервер Java, который взаимодействует между клиентом и объектом обработки данных.
  3. объект обработки данных, реализованный на C ++.

Мне нужно решить, какой веб-сервер Java использовать. Некоторые варианты:

a) использовать класс httpserver в java (com.sun.net.httpserver) и создать многопоточный процесс.

b) использовать сервер Glassfish и развернуть на нем приложение, которое создает веб-страницу и т. Д.

в) использовать причал.

г)?

Критерии выбора для веб-сервера:

  1. Стабильность (процесс (веб-сервер) должен работать в течение нескольких дней без перезапуска)

  2. Максимально возможное количество одновременных запросов - около 200. В среднем - около 30.

  3. Кэширование выполняется на веб-сервере, и запросы обслуживаются от самого веб-сервера, если данные доступны или не помечены как грязные объектом обработки данных.

Ваши предложения очень ценятся.

Спасибо. Рон.

Ответы [ 4 ]

5 голосов
/ 22 сентября 2009

Не используйте класс HTTP-сервера Java.

Glassfish - это хорошо, но, вероятно, больше, чем нужно.

Причал будет работать нормально.

Имейте в виду, что если вы используете C ++ и используете JNI для взаимодействия с Java, любые ошибки seg уничтожат весь сервер (в отличие от исключения в чистой Java, которое просто уничтожит запрос и контейнер сможет восстановить).

1 голос
/ 22 сентября 2009

Я использовал Смолу в течение нескольких лет, и она очень хорошая и стабильная 100% рекомендуется.

1 голос
/ 22 сентября 2009

Tomcat сможет сделать это, но вы должны указать требования на стороне Java. Например, используете ли вы какие-либо функции J2EE?

Для кеширования вам нужно что-то вроде кеша JBoss?

Используете ли вы JNI для взаимодействия Java с бэкэндом C ++, или ESB, или какой-то другой подход?

Какой тип данных кэшируется?

Обновление: Исходя из вашей информации, я бы предложил не использовать Java, а использовать для этой связи сервер на основе C ++ TCP. Таким образом, у вас не будет проблем с интерфейсом JNI / C ++. Вы можете написать сервер C ++ довольно легко, и если вы используете библиотеки Boost, вы будете близки к новой спецификации C ++. Для темы вы можете посмотреть: http://www.boost.org/doc/libs/1_40_0/doc/html/thread.html

0 голосов
/ 22 сентября 2009

Я бы пошел с Tomcat .

...