Java Servlets: производительность

Я работаю над веб-приложением на Java, которое получает данные из сервлетов через вызовы AJAX.

Это приложение содержит несколько элементов страницы, которые получают быстрые запросы от новых данных с сервера.

С большим количеством пользователей спрос на сервере может стать довольно высоким, поэтому мне интересно:

Какой подход обеспечивает лучшую производительность:

Многие сервлеты (по одному для каждого типа запроса данных)?

Или:

один сервлет, который может обрабатывать все запросы?

java,ajax,servlets,

4

Ответов: 6


11 принят

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


2

Рамки распорки использует один сервлет для всего в вашем приложении. Ваш материал подключается к одному сервлету. Если это сработает для них, это, вероятно, сработает для вас.


1

Одна из возможных причин иметь несколько сервисов заключается в том, что если вам нужно будет расширяться до нескольких серверов для обработки нагрузки в будущем, проще переместить отдельную службу на свой собственный сервер, чем делать это «за кулисами», если все происходит из одной службы.

При этом есть дополнительные накладные расходы, если у вас есть несколько сервлетов, поэтому это вопрос балансирования будущей гибкости с меньшей ремонтопригодностью.


1

В этом случае нет улучшений производительности, если вы используете несколько сервлетов, поскольку каждый запрос сервлета обрабатывается в отдельном потоке при условии, что он не является однопоточным.

Но, сохраняя модульность и разделение кода, вы можете иметь несколько сервлетов.


0

Как сказал Тони, действительно нет причин использовать более одного сервлета, если вам не нужно разбить сложный класс Java Servlet или, возможно, реализовать фильтр перехвата.

Java, Ajax, сервлеты,
Похожие вопросы