Jetty или Tomcat с неблокиращ IO (сървлет 3.0)

Имам нужда от точка, от която да започна. Четох от Яков Фейн за пробив на изпълнението с пристан и пламъци.

Разбрах, че вече имаме проблеми с около 1200 едновременни потребители, някои потребители не получават съобщения и процесорът е подложен на силен обстрел.

Някой пробвал ли е вече този Nio с BlazeDS? Това работи ли и с Tomcat? Откъде да започна и какво ми е необходимо, за да подобря ефективността на съобщенията?

Много благодаря!!!


person Frank Szilinski    schedule 02.10.2010    source източник
comment
Актуализация: Мина много време, но откакто започнахме да използваме Jetty7 (сега Jetty8) с org.mortbay.jetty.asyncblazeds.AsyncAMFEndpoint's и 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 се позовава на Yakov Fain (от Farata Systems), който написа страхотна книга за Enterprise Flex приложенията и в нея той предоставя персонализирани NIO, true-push, крайни точки за съобщения с BlazeDS, а не LCDS. Той ефективно отрича необходимостта ИЗОБЩО да купувате LCDS, стига да имаме истински сървлети 3.0 API сървъри за приложения като Jetty 7 и Tomcat 7. - person HDave; 17.12.2010