Jetty или Tomcat с неблокирующим вводом-выводом (сервлет 3.0)

Мне нужна точка, с которой нужно начать. Я читал у Якова Файна о прорыве спектакля с пристанью и пламенем.

Я понял, что у нас уже есть некоторые проблемы с примерно 1200 одновременных пользователей, некоторые потребители не получают сообщения, а процессор находится под сильным огнем.

Кто-нибудь уже пробовал этот Nio с BlazeDS? Это тоже работало с Tomcat? С чего начать и что мне нужно для повышения производительности обмена сообщениями?

Большое спасибо!!!


person Frank Szilinski    schedule 02.10.2010    source источник
comment
Обновление: это было давно, но с тех пор, как мы начали использовать Jetty7 (теперь Jetty8) с org.mortbay.jetty.asyncblazeds.AsyncAMFEndpoint и Long Polling, кажется, что очень быстрая потоковая передача почти в реальном времени. Если кого-то интересует, как мы настроили наше приложение (это слишком много, чтобы опубликовать ее), не стесняйтесь спрашивать.   -  person Frank Szilinski    schedule 04.02.2012


Ответы (1)


Я бы посоветовал, прежде чем вы начнете настраивать BlazeDS для поддержки NIO, профилируйте свое приложение и проверьте, есть ли точки доступа. Вы убедились, что именно сетевой стек BlazeDS вызывает потерю сообщений? Вы профилировали свой код, чтобы увидеть, можно ли оптимизировать обработку сообщений?

Некоторые на самом деле утверждают, что Java NIO на самом деле не улучшает пропускную способность — http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-servers.html

Я говорю это потому, что BlazeDS не поддерживает NIO, только коммерческая версия сервера — LCDS. То, что делает LCDS, на самом деле настраивает свои собственные сокеты NIO и управляет запросами через эти соединения, минуя стандартный стек сервлетов. Чтобы получить поддержку NIO, Яков сказал: «Для поддержки тысяч одновременных пользователей вам также необходимо настроить сетевой уровень BlazeDS». Я готов предположить, что этот настраиваемый сетевой уровень не готов к производству и является скорее прототипом, потому что его чрезвычайно сложно надежно настроить. сетевой уровень любого сервера.

person Ryan K    schedule 03.10.2010
comment
Дело не в пропускной способности, а в количестве одновременных подключений. - person user359996; 14.10.2010
comment
Первоначальный вопрос OP ссылался на Якова Фейна (из Farata Systems), который написал отличную книгу о приложениях Enterprise Flex, и в ней он предоставляет настраиваемые конечные точки NIO, true-push и обмена сообщениями с BlazeDS, а не с LCDS. Это эффективно устраняет необходимость КОГДА-ЛИБО покупать LCDS, если у нас есть настоящие серверы приложений API сервлета 3.0, такие как Jetty 7 и Tomcat 7. - person HDave; 17.12.2010