Конфигурация потоков для микросервисов, написанных на java/jersey/grizzly

Я разрабатываю систему на основе микроуслуг. Большинство сервисов развернуто как автономные процессы Джерси со встроенным веб-сервером Grizzly.

Предполагая, что многие из этих сервисов будут выполняться на одном компьютере, я должен изменить какую-либо конфигурацию потоков в Grizzly, чтобы предотвратить ситуацию, связанную с слишком большим количеством потоков на всей машине?

Какая модель потоков по умолчанию для Grizzly? Существует ли ограничение на количество потоков, которые может создать один веб-сервер?

1 ответ

Это зависит от того, что вы делаете с поступающими данными.

Если вам нужно обработать данные (время процессора> время io), то вам нужно сопоставить количество физических ядер с количеством потоков обработки данных.

Если большая часть времени тратится на ввод-вывод (извлечение / хранение данных), тогда вы можете начать с ядер * 2 и установить максимальное значение, которое вы должны определить при тестировании использования процессора и пропускной способности. Мне лично нравятся полномочия 4 на ядро ​​(4, 16, 64, 256). Это быстро сузит вас до порядка.

https://javaee.github.io/grizzly/coreconfig.html

Другие вопросы по тегам