2015-06-12 3 views
1

Я уже некоторое время изучаю Google, чтобы понять, как сервер принимает HTTP-запрос и обрабатывает их. Если я правильно понял, на порту 8080 должен присутствовать слушатель, который всегда будет слушать входящие http-запросы, и как только он получит запрос, он должен иметь возможность создавать поток и делегировать работу этому потоку.JBoss EAP 6.3 Настройки соединителя Http

Сознание выше, то, что я пытаюсь понять, это то, что является максимальным подключением и максимальными потоками при настройке http-коннектора. Также, если мы явно не укажем их, то каково максимальное значение?

<subsystem xmlns="urn:jboss:domain:web:2.1" default-virtual-server="default-host" native="false"> 
     <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> 
     <virtual-server name="default-host" enable-welcome-root="true"> 
      <alias name="localhost"/> 
      <alias name="example.com"/> 
     </virtual-server> 
    </subsystem> 

Чтобы быть очень конкретным здесь мои вопросы в форме пули:

  • Макс-соединение = максимум слушателей HTTP, которые могут обрабатывать HTTP-запросы одновременно?
  • Максимальные потоки = максимальные потоки, созданные во внутреннем пуле потоков, который используется http-прослушивателем для делегирования работы?
  • С настройками по умолчанию http-коннектора, как указано выше, каково значение по умолчанию максимальных подключений и максимальных потоков
  • Каков фактор принятия решений для установления максимальных соединений и максимальных потоков, зависит ли это от числа процессоров и доступной памяти?

Спасибо!

ответ

1

max-connections: Максимальное количество подключений, которые сервер будет принимать и обрабатывать в любой момент времени.

Если макс-соединения атрибутов не установлен на веб-подсистемы соединителей в автономном - (*) XML/domain.xml, по умолчанию вычисляется как:

512 * Runtime.getRuntime().availableProcessors() //for default Java connector 
32 * Runtime.getRuntime().availableProcessors() //for native APR connector addon 

макс-темы: максимум. количество потоков обработки запросов, которые будут созданы этим коннектором, что определяет максимальное количество одновременных запросов, которые могут быть обработаны.

EAP 6.x:

/** 
* Maximum amount of worker threads. 
*/ 
protected int maxThreads = (org.apache.tomcat.util.Constants.LOW_MEMORY) ? 64 : ((Constants.MAX_THREADS == -1) ? 512 * Runtime.getRuntime().availableProcessors() : Constants.MAX_THREADS); 
public void setMaxThreads(int maxThreads) { this.maxThreads = maxThreads; } 
public int getMaxThreads() { return maxThreads; } 

EAP 6.x с Native компонента:

/** 
* Maximum amount of worker threads. 
*/ 
protected int maxThreads = (org.apache.tomcat.util.Constants.LOW_MEMORY) ? 32 : ((Constants.MAX_THREADS == -1) ? 32 * Runtime.getRuntime().availableProcessors() : Constants.MAX_THREADS); 
public void setMaxThreads(int maxThreads) { this.maxThreads = maxThreads; } 
public int getMaxThreads() { return maxThreads; } 

Я полагаю, что оба одинаковы. Я никогда не использовал атрибут max-connections. Всякий раз, когда требовалось указать максимальное количество потоков, я использовал для создания отдельного потока и пула потоков. для получения дополнительной информации см.: redhat doc, SO Question Ans

Смежные вопросы