JBoss EAP 6.3 Pengaturan Konektor Http

Saya telah meneliti di Google selama beberapa waktu sekarang untuk memahami bagaimana server menerima permintaan http dan memprosesnya. Jika saya mengerti, seharusnya ada pendengar di port 8080 yang selalu mendengarkan permintaan http yang masuk dan segera setelah menerima permintaan, ia harus dapat membuat utas dan mendelegasikan pekerjaan ke utas itu.

Dengan pengetahuan di atas, yang ingin saya pahami adalah apa itu max-connections dan max-threads saat mengatur http-connector. Juga jika kita tidak menentukannya secara eksplisit, lalu berapa nilai maksimumnya?

    <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>

Untuk lebih spesifik, inilah pertanyaan saya dalam bentuk poin:

  • Apakah max-connection=maximum http pendengar yang dapat memproses permintaan http secara bersamaan?
  • Apakah max-threads=maximum thread yang dibuat di kumpulan thread internal yang digunakan oleh pendengar http untuk mendelegasikan pekerjaan?
  • Dengan pengaturan konektor http default seperti yang disebutkan di atas, berapa nilai default max-connections dan max-threads
  • Apa faktor keputusan untuk mengatur max-connections dan max-threads, apakah tergantung pada jumlah prosesor dan memori yang tersedia?

Terima kasih!


person Samir Shaik    schedule 12.06.2015    source sumber


Jawaban (1)


koneksi maksimal: Jumlah maksimum koneksi yang akan diterima dan diproses oleh server pada waktu tertentu.

Jika atribut max-connections tidak disetel pada konektor subsistem web di standalone-(*).xml / domain.xml, default dihitung sebagai:

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

max-threads: Jumlah maksimum thread pemrosesan permintaan yang akan dibuat oleh Konektor ini, yang karenanya menentukan jumlah maksimum permintaan simultan yang dapat ditangani.

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 dengan komponen Asli:

/**
 * 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; }

Saya yakin keduanya sama. Saya belum pernah menggunakan atribut max-connections. Kapan pun jumlah thread maksimal khusus diperlukan, saya biasa membuat pabrik thread dan kumpulan thread terpisah. untuk informasi lebih lanjut lihat: dokumen redhat, JADI Pertanyaan Jawab

person user613114    schedule 11.02.2016