| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Работа с сетью > Архитектура многопоточного сервера |
| Автор: Leviafan 19.2.2009, 12:37 |
| Нужно написать сервер, порождающий множество сервисов. У каждого сервиса есть свой ServerSocket, рабочая очередь для ожидающих обработки accepted сокетов и пул потоков-обработчиков. Как это реализовать более корректно, т.е. не в лоб, а используя подходящие паттерны? Например, как связать поток-обработчик и очередь, чтобы не передавать ссылку на соответствующую очередь каждому потоку соответствующего пула? |
| Автор: COVD 20.2.2009, 22:43 |
| Надо уточнить характер взаимодействия. Если это запрос-ответ, то ваше описание соответствует архитектуре http сервера - Томкат, например. В этом случае очередь ожидающих обслуживания соединений может быть много больше, чем размер пула обслуживающих потоков. Если же соединение предполагается постоянным, то смысла в очереди соединений нет - каждому подсоединенному сокету выделяется свой поток (возможно, из пула). Если одновременно соединенных предполагается много (тысячи), то возможно надо использовать NIO. И непонятно, какая польза от accept на разных портах в одном приложении. |
| Автор: Alexandr87 21.2.2009, 08:39 |
| Leviafan, взгляните на MINA - фреймвок от Apache |