powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring async servlets support
25 сообщений из 98, страница 1 из 4
Spring async servlets support
    #39434172
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача cледующая:

Есть сервлет(он же контроллер в спринге)

внутри него пишется
Код: java
1.
externalSystenm.send(requestId, message);



То есть отправили сообщение в некую систему. id нужен для идентификации ответа.

система внешняя отвечает асинхронно.

то есть в другом потоке есть infinite lool внутри которого выполняется

Код: java
1.
2.
Message m = externalSystem.get();
m.getRequestId();// thus I should respond with this message to request



тут мы можем сматчить запрос и ответ.

Как это сделать в спринге?

в сервлетах насколько я понял можно просто asyncContext закидывать в мапу и когда ответ пришёл - вытаскивать из мапы и обрабатывать.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39434451
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять не понимаю - зачем отдельный поток и асинхронность, если до получения ответа от внешней системы вам всё равно нечего делать?
Что мешает ждать ответа в основном потоке запроса???
...
Рейтинг: 0 / 0
Spring async servlets support
    #39434509
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovОпять не понимаю - зачем отдельный поток и асинхронность, если до получения ответа от внешней системы вам всё равно нечего делать?
Что мешает ждать ответа в основном потоке запроса???

Таких запросов может быть много.

Асинхронность это данность. Так устроена внешняя система.

Хотите сказать, что асинхронные сервлеты не нужны?
...
Рейтинг: 0 / 0
Spring async servlets support
    #39434532
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerтут мы можем сматчить запрос и ответ.

Как это сделать в спринге?

в сервлетах насколько я понял можно просто asyncContext закидывать в мапу и когда ответ пришёл - вытаскивать из мапы и обрабатывать.

Почитайте про Spring-integration... может поможет.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435040
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerТаких запросов может быть много.Ясен перец, что их будет много. Сколько клиенты навялят - столько и будь.
Вас это каким боком касается, если не вы пишите контейнер, в котором работает ваше приложение.Асинхронность это данность. Так устроена внешняя система.И?
В каком месте возникла необходимость отдельного потока, если вам всё равно ждать ответ внешней системы?Хотите сказать, что асинхронные сервлеты не нужны?Не все нужные вещи надо пихать затычками в разные неподходящие места.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435144
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovВ каком месте возникла необходимость отдельного потока, если вам всё равно ждать ответ внешней системы?

Синхронные сервлеты:
Пускай конетйнер даёт 200 потоков
а нам пришло сразу 500.

итого 200 потоков успешно отослали запрос во внешнюю систему висят.
300 потоков висят, ждут места в тредпуле.

асинхронные сервлеты:

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

с другой стороны имеем 1 поток, который разгребают асинхронные ответы и отвечают клиентам(пишут в респонс через асинк контекст)
Таким образом все 500 потоков сразу отослали запрос во внешнюю систему.

Мне кажется разница очевидна.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435148
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Сын церкви прекращает спор" (ц) Э.Л.Войнич, "Овод".
Про предположение, которое мать всех провалов - уже оскомину набило.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435154
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А конечно все понимаю, но вроде если тему данного топика забить в гугле, ответ находится за 2-3 мин.

Например http://spring.io/blog/2012/05/07/spring-mvc-3-2-preview-introducing-servlet-3-async-support Вроде совершенно нормальным английским языком по белому (прошу извинение у тех, у кого другая цветовая палитра в ОС) написано.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435159
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov"Сын церкви прекращает спор" (ц) Э.Л.Войнич, "Овод".
Про предположение, которое мать всех провалов - уже оскомину набило.

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

С чем Вы конкретно не согласны?
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435160
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

спасибо, я кучу раз был на этой линке, но не видел её.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@RequestMapping("/quotes")
@ResponseBody
public DeferredResult<String> quotes() {
  DeferredResult<String> deferredResult = new DeferredResult<String>();
  // Add deferredResult to a Queue or a Map...
  return deferredResult;
}


// In some other thread...
deferredResult.setResult(data);
// Remove deferredResult from the Queue or Map
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435163
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerспасибо, я кучу раз был на этой линке, но не видел её.

Спасибо за ответ. Не поверишь, я тоже при чтение это не заметил ))) Но я между строк читал, т.к. Spring'а не знаю / не использовал. Зато в разделе Motivation в статье все по полочкам разложено, зачем и почему асинх. сервлеты нужны.

IMHO
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435190
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

Кстати из той же ссылки
http://spring.io/blog/2012/05/07/spring-mvc-3-2-preview-introducing-servlet-3-async-support In other cases, where the result is required, we need to decouple processing from the Servlet container thread or else we'll exhaust its thread pool. Servlet 3 provides just such support where a Servlet (or a Spring MVC controller) can indicate the response should be left open after the Servlet container thread is exited.

То, что я написал, только на буржуйском
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435198
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
в прошлой теме вроде разобрали, что в веб проектах транзакции короткие 0,1 сек.
И тормозить сервлет каким то кодом странно.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435208
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
если вы в прошлой теме не написали ни строки кода:
Зачем нужны фичи servlet 3.0/3.1 ?
то зачем начинать новую со спрингом?
Ведь всё что может спринг, можно решить и без него. Это просто "клей", как тут говорят профи.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435231
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123questioner,
в прошлой теме вроде разобрали, что в веб проектах транзакции короткие 0,1 сек.
И тормозить сервлет каким то кодом странно.
Авторитетно мнение, конечно, у всех прям 0.1

А у меня вот 1 минута и это даже не транзакция.

а тема новая потому, что вопрос более конкретный.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435237
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerАвторитетно мнение, конечно, у всех прям 0.1
выделяю для тебя ключевое слово. Чтобы не отвлекался.
автор в веб проектах транзакции короткие 0,1 сек.
автора тема новая потому, что вопрос более конкретный.
questionerА у меня вот 1 минута и это даже не транзакция.
Предложение решить эту тему в Вашей прошлой теме. А потом уже в спринге.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435462
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123выделяю для тебя ключевое слово. Чтобы не отвлекался.
автор в веб проектах транзакции короткие 0,1 сек.


А меня веб проект.

В любом случае в ответ на вопрос говорить, что забей, тебе это не надо как-то глупо.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435523
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerС чем Вы конкретно не согласны?Это не укладывается в вашу картинку мира и поэтому недоступно вашему разумению.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435541
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerВ любом случае в ответ на вопрос говорить, что забей, тебе это не надо как-то глупо.
я не сказал глупо.
Я сказал что тебе дали ссылку на демку чата на асинхронных сервлетах.
Ты ноль реакции и завёл новую тему опять про бла бла бла.
Т.е. тебе не нужно решение задачи. Только удовлетворение своих мыслей про потоки.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435543
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Ведь на самом деле всё просто.
Если проект высоконагружен, то делают максимальный параметр количества потоков maxThreads=300
Потом увеличивать бесполезно. Просто добавляют ещё томкат)).
Это проекты _Веб_ у которых по 3000 запросов в сек.
Ты полез в какой то спринг. Зачем?
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435549
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Ещё один пример.
Есть высоконагруженный проект.
Самое медленное звено - запросы к базе.
Что будет делать questioner? Будет перетирать 2 ветки про потоки и добавлять потоки.
Что делают 99,9 остальных процентов? Добавляют кеш один, два или три.
И ответ БД будет моментальным.
...
Это закон веб проектов - минимальные транзакции для горизонтального масштабирования.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435552
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конкретика
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
java -Xmx512m -Xms512m -cp bin/* org.apache.catalina.startup.Bootstrap start
log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Level value for root is  [info].
log4j: root level set to INFO
log4j: Class name: [org.apache.log4j.AsyncAppender]
log4j: Attaching appender named [console] to appender named [ASYNC].
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Setting property [threshold] to [INFO].
log4j: Parsing layout of class: "org.apache.log4j.EnhancedPatternLayout"
log4j: Setting property [conversionPattern] to [|%d{yyyy-MM-dd HH:mm:ss.SSS Z}|%-5p|%m%n%throwable{short}].
log4j: Adding appender named [ASYNC] to category [root].
|2017-04-10 03:00:58.736 +0800|INFO |Server version:        Apache Tomcat/8.0.43
|2017-04-10 03:00:58.736 +0800|INFO |Server built:          Mar 28 2017 14:42:59 UTC
|2017-04-10 03:00:58.736 +0800|INFO |Server number:         8.0.43.0
|2017-04-10 03:00:58.736 +0800|INFO |OS Name:               Windows 7
|2017-04-10 03:00:58.736 +0800|INFO |OS Version:            6.1
|2017-04-10 03:00:58.736 +0800|INFO |Architecture:          amd64
|2017-04-10 03:00:58.736 +0800|INFO |Java Home:             C:\Program Files\Java\jre8
|2017-04-10 03:00:58.736 +0800|INFO |JVM Version:           1.8.0_121-b13
|2017-04-10 03:00:58.736 +0800|INFO |JVM Vendor:            Oracle Corporation
|2017-04-10 03:00:58.736 +0800|INFO |CATALINA_BASE:         C:\ProgramData\Apache\tomcat80
|2017-04-10 03:00:58.736 +0800|INFO |CATALINA_HOME:         C:\ProgramData\Apache\tomcat80
|2017-04-10 03:00:58.736 +0800|INFO |Command line argument:  -Xmx512m 
|2017-04-10 03:00:58.736 +0800|INFO |Command line argument: -Xms512m
|2017-04-10 03:00:58.923 +0800|INFO |Initializing ProtocolHandler [" http-nio-127.0.0.1-80 "]
|2017-04-10 03:00:59.048 +0800|INFO |Using a shared selector for servlet write/read
|2017-04-10 03:00:59.048 +0800|INFO |Initialization processed in 1022 ms
|2017-04-10 03:00:59.094 +0800|INFO |Starting service Catalina
|2017-04-10 03:00:59.094 +0800|INFO |Starting Servlet Engine: Apache Tomcat/8.0.43
|2017-04-10 03:00:59.110 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\docs
|2017-04-10 03:00:59.500 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\docs has finished in 390 ms
|2017-04-10 03:00:59.500 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\examples
|2017-04-10 03:00:59.999 +0800|INFO |ContextListener: contextInitialized()
|2017-04-10 03:00:59.999 +0800|INFO |SessionListener: contextInitialized()
|2017-04-10 03:01:00.311 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\examples has finished in 811 ms
|2017-04-10 03:01:00.311 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\host-manager
|2017-04-10 03:01:00.498 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\host-manager has finished in 187 ms
|2017-04-10 03:01:00.498 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\manager
|2017-04-10 03:01:00.545 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\manager has finished in 47 ms
|2017-04-10 03:01:00.545 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\ROOT
|2017-04-10 03:01:00.576 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\ROOT has finished in 31 ms
|2017-04-10 03:01:00.592 +0800|INFO |Starting ProtocolHandler ["http-nio-127.0.0.1-80"]
|2017-04-10 03:01:00.748 +0800|INFO |Server startup in 1688 ms
результаты
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
for %A in (100 500 1000) do @"C:\Program Files\httpd24\bin\ab.exe" -c %A -n 10000  http://127.0.0.1/examples/jsp/xml/xml.jsp 
This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,  http://www.zeustech.net/ 
Licensed to The Apache Software Foundation,  http://www.apache.org/ 

Benchmarking 127.0.0.1 (be patient)
...
Finished 10000 requests

Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:       100 
Time taken for tests:   8.689 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    1150.85 [#/sec] (mean)
Time per request:       86.892 [ms] (mean)
Time per request:       0.869 [ms] (mean, across all concurrent requests)
Transfer rate:          779.97 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.3      0      47
Processing:     0   87 245.0      0    1716
Waiting:        0   80 235.4      0    1716
Total:          0   87 245.0     16    1716

Percentage of the requests served within a certain time (ms)
  50%     16
  66%     16
  75%     16
  80%     16
  90%    281
  95%    655
  98%   1045
  99%   1248
 100%   1716 (longest request)

--
Benchmarking 127.0.0.1 (be patient)
...
Finished 10000 requests

Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:       500 
Time taken for tests:   5.803 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    1723.18 [#/sec] (mean)
Time per request:       290.161 [ms] (mean)
Time per request:       0.580 [ms] (mean, across all concurrent requests)
Transfer rate:          1167.86 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.1      0      16
Processing:     0  286 579.5     16    2777
Waiting:        0  282 576.9     16    2777
Total:          0  286 579.5     16    2777

Percentage of the requests served within a certain time (ms)
  50%     16
  66%     62
  75%    172
  80%    390
  90%   1154
  95%   1685
  98%   2387
  99%   2543
 100%   2777 (longest request)

--
Benchmarking 127.0.0.1 (be patient)
...
Finished 10000 requests

Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:       1000 
Time taken for tests:   4.399 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    2273.14 [#/sec] (mean)
Time per request:       439.921 [ms] (mean)
Time per request:       0.440 [ms] (mean, across all concurrent requests)
Transfer rate:          1540.58 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.3      0      16
Processing:     0  423 685.1     16    2886
Waiting:        0  417 685.5     16    2886
Total:          0  423 685.1     16    2886

Percentage of the requests served within a certain time (ms)
  50%     16
  66%    234
  75%    593
  80%    874
  90%   1622
  95%   2028
  98%   2340
  99%   2465
 100%   2886 (longest request)
Результаты теста - при свёрнутом окне Apache Tomcat. Если развернуть - будет и сильно медленнее и статистика хуже.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39435563
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
java -Xmx512m -Xms512m -classpath bin/* org.apache.catalina.startup.Bootstrap start
log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Level value for root is  [info].
log4j: root level set to INFO
log4j: Class name: [org.apache.log4j.AsyncAppender]
log4j: Attaching appender named [console] to appender named [ASYNC].
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Setting property [threshold] to [INFO].
log4j: Parsing layout of class: "org.apache.log4j.EnhancedPatternLayout"
log4j: Setting property [conversionPattern] to [|%d{yyyy-MM-dd HH:mm:ss.SSS Z}|%-5p|%m%n%throwable{short}].
log4j: Adding appender named [ASYNC] to category [root].
|2017-04-10 03:30:21.711 +0800|INFO |Server version:        Apache Tomcat/8.0.43
|2017-04-10 03:30:21.727 +0800|INFO |Server built:          Mar 28 2017 14:42:59 UTC
|2017-04-10 03:30:21.727 +0800|INFO |Server number:         8.0.43.0
|2017-04-10 03:30:21.727 +0800|INFO |OS Name:               Windows 7
|2017-04-10 03:30:21.727 +0800|INFO |OS Version:            6.1
|2017-04-10 03:30:21.727 +0800|INFO |Architecture:          amd64
|2017-04-10 03:30:21.727 +0800|INFO |Java Home:             C:\Program Files\IBM\sdk80\jre
|2017-04-10 03:30:21.727 +0800|INFO |JVM Version:           pwa6480sr4fp1-20170215_01 (SR4 FP1)
|2017-04-10 03:30:21.727 +0800|INFO |JVM Vendor:            IBM Corporation
|2017-04-10 03:30:21.727 +0800|INFO |CATALINA_BASE:         C:\ProgramData\Apache\tomcat80
|2017-04-10 03:30:21.727 +0800|INFO |CATALINA_HOME:         C:\ProgramData\Apache\tomcat80
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Xoptionsfile=C:\Program Files\IBM\sdk80\jre\bin\compressedrefs\options.default
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument:
  -Xlockword:mode=default
 ,noLockword=java/lang/String
 ,noLockword=java/util/MapEntry
 ,noLockword=java/util/HashMap$Entry
 ,noLockword=org/apache/harmony/luni/util/ModifiedMap$Entry
 ,noLockword=java/util/Hashtable$Entry
 ,noLockword=java/lang/invoke/MethodType
 ,noLockword=java/lang/invoke/MethodHandle
 ,noLockword=java/lang/invoke/CollectHandle
 ,noLockword=java/lang/invoke/ConstructorHandle
 ,noLockword=java/lang/invoke/ConvertHandle
 ,noLockword=java/lang/invoke/ArgumentConversionHandle
 ,noLockword=java/lang/invoke/AsTypeHandle
 ,noLockword=java/lang/invoke/ExplicitCastHandle
 ,noLockword=java/lang/invoke/FilterReturnHandle
 ,noLockword=java/lang/invoke/DirectHandle
 ,noLockword=java/lang/invoke/ReceiverBoundHandle
 ,noLockword=java/lang/invoke/DynamicInvokerHandle
 ,noLockword=java/lang/invoke/FieldHandle
 ,noLockword=java/lang/invoke/FieldGetterHandle
 ,noLockword=java/lang/invoke/FieldSetterHandle
 ,noLockword=java/lang/invoke/StaticFieldGetterHandle
 ,noLockword=java/lang/invoke/StaticFieldSetterHandle
 ,noLockword=java/lang/invoke/IndirectHandle
 ,noLockword=java/lang/invoke/InterfaceHandle
 ,noLockword=java/lang/invoke/VirtualHandle
 ,noLockword=java/lang/invoke/InvokeExactHandle
 ,noLockword=java/lang/invoke/InvokeGenericHandle
 ,noLockword=java/lang/invoke/VarargsCollectorHandle
 ,noLockword=java/lang/invoke/ThunkTuple
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Xjcl:jclse7b_28
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument:
  -Dcom.ibm.oti.vm.bootstrap.library.path=C:\Program Files\IBM\sdk80\jre\bin\compressedrefs
 ;C:\Program Files\IBM\sdk80\jre\bin
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument:
  -Dsun.boot.library.path=C:\Program Files\IBM\sdk80\jre\bin\compressedrefs
 ;C:\Program Files\IBM\sdk80\jre\bin
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument:
  -Djava.library.path=C:\Program Files\IBM\sdk80\jre\bin\compressedrefs
 ;C:\Program Files\IBM\sdk80\jre\bin;C:\Windows\system32
 ;C:\Windows;C:\Program Files\IBM\sdk80\bin
 ;C:\Windows\system32
 ;C:\Windows;C:\Windows\System32\Wbem
 ;C:\Windows\System32\WindowsPowerShell\v1.0\;.
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Djava.home=C:\Program Files\IBM\sdk80\jre
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Djava.ext.dirs=C:\Program Files\IBM\sdk80\jre\lib\ext
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Duser.dir=C:\ProgramData\Apache\tomcat80
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Djava.runtime.version=pwa6480sr4fp1-20170215_01 (SR4 FP1)
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Dconsole.encoding=Cp1251
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Djava.class.path=.
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Xmx512m
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Xms512m
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument:
  -Djava.class.path=bin/bootstrap.jar
 ;bin/commons-daemon.jar;bin/tomcat-juli.jar
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Dsun.java.command=org.apache.catalina.startup.Bootstrap start
|2017-04-10 03:30:21.727 +0800|INFO |Command line argument: -Dsun.java.launcher=SUN_STANDARD
|2017-04-10 03:30:22.288 +0800|INFO |Initializing ProtocolHandler ["http-nio-127.0.0.1-80"]
|2017-04-10 03:30:22.397 +0800|INFO |Using a shared selector for servlet write/read
|2017-04-10 03:30:22.397 +0800|INFO |Initialization processed in 1265 ms
|2017-04-10 03:30:22.444 +0800|INFO |Starting service Catalina
|2017-04-10 03:30:22.444 +0800|INFO |Starting Servlet Engine: Apache Tomcat/8.0.43
|2017-04-10 03:30:22.491 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\docs
|2017-04-10 03:30:23.068 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\docs has finished in 577 ms
|2017-04-10 03:30:23.068 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\examples
|2017-04-10 03:30:23.599 +0800|INFO |ContextListener: contextInitialized()
|2017-04-10 03:30:23.599 +0800|INFO |SessionListener: contextInitialized()
|2017-04-10 03:30:25.143 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\examples has finished in 2,075 ms
|2017-04-10 03:30:25.143 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\host-manager
|2017-04-10 03:30:25.205 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\host-manager has finished in 62 ms
|2017-04-10 03:30:25.205 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\manager
|2017-04-10 03:30:25.268 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\manager has finished in 63 ms
|2017-04-10 03:30:25.268 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\ROOT
|2017-04-10 03:30:25.315 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\ROOT has finished in 47 ms
|2017-04-10 03:30:25.330 +0800|INFO |Starting ProtocolHandler ["http-nio-127.0.0.1-80"]
|2017-04-10 03:30:25.486 +0800|INFO |Server startup in 3082 ms

--

This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,  http://www.zeustech.net/ 
Licensed to The Apache Software Foundation,  http://www.apache.org/ 

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:      100
Time taken for tests:   2.636 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    3793.04 [#/sec] (mean)
Time per request:       26.364 [ms] (mean)
Time per request:       0.264 [ms] (mean, across all concurrent requests)
Transfer rate:          2570.68 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.3      0      16
Processing:     0   26  42.6     16     577
Waiting:        0   18  15.8     16     296
Total:          0   26  42.6     16     577

Percentage of the requests served within a certain time (ms)
  50%     16
  66%     16
  75%     31
  80%     31
  90%     47
  95%     78
  98%    125
  99%    203
 100%    577 (longest request)
This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,  http://www.zeustech.net/ 
Licensed to The Apache Software Foundation,  http://www.apache.org/ 

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:      500
Time taken for tests:   5.320 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    1879.84 [#/sec] (mean)
Time per request:       265.980 [ms] (mean)
Time per request:       0.532 [ms] (mean, across all concurrent requests)
Transfer rate:          1274.03 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.4      0      16
Processing:     0  261 542.8     94    4820
Waiting:        0  226 523.7     78    4742
Total:          0  261 542.8     94    4820

Percentage of the requests served within a certain time (ms)
  50%     94
  66%    156
  75%    234
  80%    281
  90%    546
  95%   1123
  98%   2168
  99%   3385
 100%   4820 (longest request)
This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,  http://www.zeustech.net/ 
Licensed to The Apache Software Foundation,  http://www.apache.org/ 

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:      1000
Time taken for tests:   4.742 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    2108.63 [#/sec] (mean)
Time per request:       474.241 [ms] (mean)
Time per request:       0.474 [ms] (mean, across all concurrent requests)
Transfer rate:          1429.09 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0  10.5      0     530
Processing:    47  461 281.4    265     967
Waiting:       16  363 249.7    234     952
Total:         47  461 281.5    265     967

Percentage of the requests served within a certain time (ms)
  50%    265
  66%    749
  75%    764
  80%    764
  90%    842
  95%    874
  98%    905
  99%    936
 100%    967 (longest request)
...
Рейтинг: 0 / 0
Spring async servlets support
    #39436196
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123questioner,
Ещё один пример.
Есть высоконагруженный проект.
Самое медленное звено - запросы к базе.
Что будет делать questioner? Будет перетирать 2 ветки про потоки и добавлять потоки.
Что делают 99,9 остальных процентов? Добавляют кеш один, два или три.
И ответ БД будет моментальным.
...
Это закон веб проектов - минимальные транзакции для горизонтального масштабирования.
У меня нет БД. Зачем Вы мне всё это пишете? я спросил про одно, Вы отвечаете мне на другой вопрос?

У меня асинхронный сервис, который является кластером.

При асинхронных сервлетах поток работает меньше.

Один человек только в тему ответил.
...
Рейтинг: 0 / 0
Spring async servlets support
    #39436197
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
конкретика
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
java -Xmx512m -Xms512m -cp bin/* org.apache.catalina.startup.Bootstrap start
log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Level value for root is  [info].
log4j: root level set to INFO
log4j: Class name: [org.apache.log4j.AsyncAppender]
log4j: Attaching appender named [console] to appender named [ASYNC].
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Setting property [threshold] to [INFO].
log4j: Parsing layout of class: "org.apache.log4j.EnhancedPatternLayout"
log4j: Setting property [conversionPattern] to [|%d{yyyy-MM-dd HH:mm:ss.SSS Z}|%-5p|%m%n%throwable{short}].
log4j: Adding appender named [ASYNC] to category [root].
|2017-04-10 03:00:58.736 +0800|INFO |Server version:        Apache Tomcat/8.0.43
|2017-04-10 03:00:58.736 +0800|INFO |Server built:          Mar 28 2017 14:42:59 UTC
|2017-04-10 03:00:58.736 +0800|INFO |Server number:         8.0.43.0
|2017-04-10 03:00:58.736 +0800|INFO |OS Name:               Windows 7
|2017-04-10 03:00:58.736 +0800|INFO |OS Version:            6.1
|2017-04-10 03:00:58.736 +0800|INFO |Architecture:          amd64
|2017-04-10 03:00:58.736 +0800|INFO |Java Home:             C:\Program Files\Java\jre8
|2017-04-10 03:00:58.736 +0800|INFO |JVM Version:           1.8.0_121-b13
|2017-04-10 03:00:58.736 +0800|INFO |JVM Vendor:            Oracle Corporation
|2017-04-10 03:00:58.736 +0800|INFO |CATALINA_BASE:         C:\ProgramData\Apache\tomcat80
|2017-04-10 03:00:58.736 +0800|INFO |CATALINA_HOME:         C:\ProgramData\Apache\tomcat80
|2017-04-10 03:00:58.736 +0800|INFO |Command line argument:  -Xmx512m 
|2017-04-10 03:00:58.736 +0800|INFO |Command line argument: -Xms512m
|2017-04-10 03:00:58.923 +0800|INFO |Initializing ProtocolHandler [" http-nio-127.0.0.1-80 "]
|2017-04-10 03:00:59.048 +0800|INFO |Using a shared selector for servlet write/read
|2017-04-10 03:00:59.048 +0800|INFO |Initialization processed in 1022 ms
|2017-04-10 03:00:59.094 +0800|INFO |Starting service Catalina
|2017-04-10 03:00:59.094 +0800|INFO |Starting Servlet Engine: Apache Tomcat/8.0.43
|2017-04-10 03:00:59.110 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\docs
|2017-04-10 03:00:59.500 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\docs has finished in 390 ms
|2017-04-10 03:00:59.500 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\examples
|2017-04-10 03:00:59.999 +0800|INFO |ContextListener: contextInitialized()
|2017-04-10 03:00:59.999 +0800|INFO |SessionListener: contextInitialized()
|2017-04-10 03:01:00.311 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\examples has finished in 811 ms
|2017-04-10 03:01:00.311 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\host-manager
|2017-04-10 03:01:00.498 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\host-manager has finished in 187 ms
|2017-04-10 03:01:00.498 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\manager
|2017-04-10 03:01:00.545 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\manager has finished in 47 ms
|2017-04-10 03:01:00.545 +0800|INFO |Deploying web application directory C:\ProgramData\Apache\tomcat80\webapps\ROOT
|2017-04-10 03:01:00.576 +0800|INFO |Deployment of web application directory C:\ProgramData\Apache\tomcat80\webapps\ROOT has finished in 31 ms
|2017-04-10 03:01:00.592 +0800|INFO |Starting ProtocolHandler ["http-nio-127.0.0.1-80"]
|2017-04-10 03:01:00.748 +0800|INFO |Server startup in 1688 ms
результаты
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
for %A in (100 500 1000) do @"C:\Program Files\httpd24\bin\ab.exe" -c %A -n 10000  http://127.0.0.1/examples/jsp/xml/xml.jsp 
This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,  http://www.zeustech.net/ 
Licensed to The Apache Software Foundation,  http://www.apache.org/ 

Benchmarking 127.0.0.1 (be patient)
...
Finished 10000 requests

Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:       100 
Time taken for tests:   8.689 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    1150.85 [#/sec] (mean)
Time per request:       86.892 [ms] (mean)
Time per request:       0.869 [ms] (mean, across all concurrent requests)
Transfer rate:          779.97 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.3      0      47
Processing:     0   87 245.0      0    1716
Waiting:        0   80 235.4      0    1716
Total:          0   87 245.0     16    1716

Percentage of the requests served within a certain time (ms)
  50%     16
  66%     16
  75%     16
  80%     16
  90%    281
  95%    655
  98%   1045
  99%   1248
 100%   1716 (longest request)

--
Benchmarking 127.0.0.1 (be patient)
...
Finished 10000 requests

Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:       500 
Time taken for tests:   5.803 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    1723.18 [#/sec] (mean)
Time per request:       290.161 [ms] (mean)
Time per request:       0.580 [ms] (mean, across all concurrent requests)
Transfer rate:          1167.86 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.1      0      16
Processing:     0  286 579.5     16    2777
Waiting:        0  282 576.9     16    2777
Total:          0  286 579.5     16    2777

Percentage of the requests served within a certain time (ms)
  50%     16
  66%     62
  75%    172
  80%    390
  90%   1154
  95%   1685
  98%   2387
  99%   2543
 100%   2777 (longest request)

--
Benchmarking 127.0.0.1 (be patient)
...
Finished 10000 requests

Server Software:        Apache-Coyote/1.1
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /examples/jsp/xml/xml.jsp
Document Length:        449 bytes

Concurrency Level:       1000 
Time taken for tests:   4.399 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      6940000 bytes
HTML transferred:       4490000 bytes
Requests per second:    2273.14 [#/sec] (mean)
Time per request:       439.921 [ms] (mean)
Time per request:       0.440 [ms] (mean, across all concurrent requests)
Transfer rate:          1540.58 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.3      0      16
Processing:     0  423 685.1     16    2886
Waiting:        0  417 685.5     16    2886
Total:          0  423 685.1     16    2886

Percentage of the requests served within a certain time (ms)
  50%     16
  66%    234
  75%    593
  80%    874
  90%   1622
  95%   2028
  98%   2340
  99%   2465
 100%   2886 (longest request)
Результаты теста - при свёрнутом окне Apache Tomcat. Если развернуть - будет и сильно медленнее и статистика хуже.

Что это за бенчмарк?
...
Рейтинг: 0 / 0
25 сообщений из 98, страница 1 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring async servlets support
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]