Я разрабатываю простое веб-приложение, которое содержит эти 3 компонента:
- клиент, который использует Ajax, javascript, html для отображения данных в браузере.
- Веб-сервер Java, который взаимодействует между клиентом и объектом обработки данных.
- объект обработки данных, реализованный на C++.
Мне нужно решить, какой веб-сервер Java использовать. Вот некоторые варианты:
а) используйте класс httpsserver в java (com.sun.net.httpserver) и создайте многопоточный процесс.
б) использовать сервер Glassfish и развернуть на нем приложение, создающее веб-страницу и т. д.
в) использовать причал.
d) ?
Критерии выбора веб-сервера:
Стабильность (процесс (веб-сервер) должен работать несколько дней без перезагрузки)
Максимально возможные одновременные запросы составляют около 200, а в среднем около 30.
Кэширование выполняется на веб-сервере, и запросы обслуживаются с самого веб-сервера, если данные доступны или не помечены объектом обработки данных как грязные.
Ваши предложения очень ценятся.
Благодарю вас. Рон.
Ответ 1 · рейтинг 5 · Will Hartung
Не используйте класс HTTP-сервера Java.
Glassfish хорош, но, вероятно, больше, чем вам нужно.
Пристань будет работать нормально.
Имейте в виду, что если вы используете C++ и используете JNI для взаимодействия с Java, любые сбои сегмента убьют весь сервер (по сравнению с исключением в чистой Java, которое просто убьет запрос, и контейнер сможет восстановиться).
Ответ 3 · рейтинг 1 · James Black
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