Mengonfigurasi waktu tunggu I/O di router

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Dokumen ini menjelaskan cara mengonfigurasi waktu tunggu I/O di Router Apigee Edge.

Waktu tunggu I/O pada Router menunjukkan waktu saat Router menunggu untuk menerima respons dari Pemroses Pesan, setelah membuat koneksi dan mengirim permintaan ke Pemroses Pesan. Nilai default waktu tunggu I/O di Router adalah 57 detik.

Waktu tunggu I/O untuk Router dapat ditingkatkan atau diturunkan dari nilai default 57 detik berdasarkan kebutuhan Anda. Ini dapat dikonfigurasi dengan cara berikut:

  • Di host virtual
  • Di Router

Properti berikut mengontrol waktu tunggu I/O di Router:

Nama Properti Lokasi Deskripsi
proxy_read_timeout Host virtual

Menentukan waktu tunggu maksimum Router untuk menerima respons dari Pemroses Pesan, setelah membuat koneksi dan mengirim permintaan ke Pemroses Pesan.

Jika tidak ada respons dari Pemroses Pesan dalam periode waktu tunggu ini, waktu tunggu Router akan habis.

Secara default, properti ini menggunakan nilai yang ditetapkan untuk properti conf_load_balancing_load.balancing.driver.proxy.read.timeout di Router. Nilai default-nya adalah 57 detik.

Jika properti ini diubah dengan nilai waktu tunggu baru untuk host virtual tertentu, hanya proxy API yang menggunakan host virtual tertentu tersebut yang akan terpengaruh.

conf_load_balancing_load.balancing.driver.proxy.read.timeout Router

Menentukan waktu tunggu maksimum Router untuk menerima respons dari Pemroses Pesan, setelah membuat koneksi dan mengirim permintaan ke Pemroses Pesan.

Jika tidak ada respons dari Pemroses Pesan dalam periode waktu tunggu ini, waktu tunggu Router akan habis.

Properti ini digunakan untuk semua host virtual di Router ini.

Nilai default properti ini adalah 57 detik.

Anda dapat mengubah properti ini seperti yang dijelaskan dalam Mengonfigurasi waktu tunggu I/O di Router di bawah, atau Anda dapat menimpa nilai ini dengan menyetel properti proxy_read_timeout di level host virtual.

Anda dapat menyetel interval waktu untuk properti ini sebagai sesuatu selain detik menggunakan notasi berikut:

ms: milliseconds
s:  seconds (default)
m:  minutes
h:  hours
d:  days
w:  weeks
M:  months (length of 30 days)
y:  years (length of 365 days)
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout Router

Menentukan total waktu tunggu Router untuk menerima respons dari semua Pemroses Pesan, setelah membuat koneksi dan mengirim permintaan ke setiap Pemroses Pesan.

Hal ini berlaku jika penginstalan Edge memiliki beberapa Message Processors dan percobaan ulang diaktifkan setelah terjadi error. Class ini memiliki nilai salah satu dari hal berikut:

  • Nilai conf_load_balancing_load.balancing.driver.proxy.read.timeout saat ini
  • Nilai default 57 detik

Seperti pada properti conf_load_balancing_load.balancing.driver.proxy.read.timeout, Anda dapat menentukan interval waktu selain default (detik).

Sebelum memulai

Sebelum menggunakan langkah-langkah dalam dokumen ini, pastikan Anda memahami topik berikut:

Mengonfigurasi waktu tunggu I/O di host virtual

Bagian ini menjelaskan cara mengonfigurasi waktu tunggu I/O di host virtual yang terkait dengan organisasi dan lingkungan. Waktu tunggu I/O dapat dikonfigurasi di host virtual melalui properti proxy_read_timeout, yang mewakili nilai waktu tunggu I/O dalam detik.

Anda dapat mengonfigurasi host virtual menggunakan salah satu metode berikut:

  • UI Edge
  • API Edge

UI Edge

Untuk mengonfigurasi host virtual menggunakan Edge UI, lakukan hal berikut:

  1. Login ke Edge UI.
  2. Buka Admin > Virtual Hosts.
  3. Pilih Lingkungan tertentu tempat Anda ingin melakukan perubahan ini.
  4. Pilih host virtual tertentu yang ingin Anda konfigurasi nilai waktu tunggu I/O barunya.
  5. Di bagian Properties, perbarui nilai Proxy Read Timeout dalam hitungan detik.

    Misalnya, jika Anda ingin mengubah waktu tunggu menjadi 120 detik, ketik 120 seperti yang ditunjukkan dalam gambar berikut:

    Nilai waktu tunggu baca proxy 120

  6. Simpan perubahan.

API Edge

Untuk mengonfigurasi host virtual menggunakan Edge API, lakukan hal berikut:

  1. Dapatkan konfigurasi host virtual saat ini menggunakan Get virtual host API seperti yang ditunjukkan di bawah ini:

    Pengguna Cloud Publik

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Pengguna Private Cloud

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Dengan keterangan:

    {organization-name} adalah nama organisasi

    {environment-name} adalah nama lingkungannya

    {virtualhost-name} adalah nama host virtual

    Contoh konfigurasi virtualhost

        {
          "hostAliases": [
            "api.myCompany,com"
          ],
          "interfaces": [],
          "listenOptions": [],
          "name": "secure",
          "port": "443",
          "retryOptions": [],
          "sSLInfo": {
            "ciphers": [],
            "clientAuthEnabled": "false",
            "enabled": "true",
            "ignoreValidationErrors": false,
            "keyAlias": "myCompanyKeyAlias",
            "keyStore": "ref://myCompanyKeystoreref",
            "protocols": []
          },
          "useBuiltInFreeTrialCert": false
        }
    
  2. Tambahkan properti proxy_read_timeout ke payload JSON konfigurasi host virtual yang ada di bagian properties dengan nilai dalam hitungan detik.

    Misalnya, untuk mengubah waktu tunggu I/O menjadi 120 detik, tambahkan blok kode properties seperti ditunjukkan di bawah ini:

    Contoh konfigurasi host virtual yang diperbarui

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  3. Simpan konfigurasi host virtual yang diupdate dalam file. Contoh: virtualhost-payload.json
  4. Update konfigurasi virtualhost dengan perubahan tersebut menggunakan Update a virtual host API sebagai berikut:

    Pengguna Cloud Publik

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Pengguna Private Cloud

    curl -v -X POST Content-Type: application/json
    http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Dengan keterangan:

    {organization-name} adalah nama organisasi

    {environment-name} adalah nama lingkungannya

    {virtualhost-name} adalah nama host virtual

Memverifikasi waktu tunggu I/O pada host virtual

Bagian ini menjelaskan cara memverifikasi bahwa waktu tunggu I/O telah berhasil diubah di host virtual menggunakan Edge API.

  1. Jalankan Get virtual host API untuk mendapatkan konfigurasi virtualhost seperti yang ditunjukkan di bawah ini:

    Pengguna Cloud Publik

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Pengguna Private Cloud

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Dengan keterangan:

    {organization-name} adalah nama organisasi

    {environment-name} adalah nama lingkungannya

    {virtualhost-name} adalah nama host virtual

  2. Pastikan properti proxy_read_timeout telah ditetapkan ke nilai baru.

    Contoh konfigurasi host virtual yang diperbarui

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    

    Pada contoh di atas, perhatikan bahwa proxy_read_timeout telah ditetapkan dengan nilai baru 120 detik.

  3. Jika Anda masih melihat nilai lama untuk proxy_read_timeout,, pastikan bahwa Anda telah mengikuti semua langkah yang diuraikan dalam Mengonfigurasi waktu tunggu I/O di host virtual dengan benar. Jika Anda melewatkan langkah apa pun, ulangi semua langkah lagi dengan benar.
  4. Jika Anda masih tidak dapat mengubah waktu tunggu I/O, hubungi Dukungan Apigee Edge.

Mengonfigurasi waktu tunggu I/O pada Router

Bagian ini menjelaskan cara mengonfigurasi waktu tunggu I/O di Router. Waktu tunggu I/O dapat dikonfigurasi melalui properti Router conf_load_balancing_load.balancing.driver.proxy.read.timeout, yang mewakili nilai waktu tunggu I/O dalam detik.

Untuk mengonfigurasi waktu tunggu I/O di Router, lakukan langkah berikut:

  1. Di mesin Router, buka file berikut di editor. Jika belum ada, maka buatlah.
    /opt/apigee/customer/application/router.properties
    

    Misalnya, untuk membuka file dengan vi, masukkan perintah berikut:

    vi /opt/apigee/customer/application/router.properties
    
  2. Tambahkan baris dalam format berikut ke file properties, dengan mengganti nilai dengan time_in_seconds:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
    

    Misalnya, untuk mengubah waktu tunggu I/O di Router menjadi 120 detik, tambahkan baris berikut:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    

    Anda juga dapat memodifikasi waktu tunggu I/O dalam hitungan menit. Misalnya, untuk mengubah waktu tunggu menjadi dua menit, tambahkan baris berikut:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
    
  4. Simpan perubahan.
  5. Pastikan file properti ini dimiliki oleh pengguna apigee seperti yang ditunjukkan di bawah ini:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. Mulai ulang Router seperti yang ditunjukkan di bawah ini:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. Jika Anda memiliki lebih dari satu Router, ulangi langkah-langkah di atas pada semua Router.

Memverifikasi waktu tunggu I/O pada Router

Bagian ini menjelaskan cara memverifikasi bahwa waktu tunggu I/O telah berhasil diubah di Router.

Meskipun Anda menggunakan token conf_load_balancing_load.balancing.driver.proxy.read.timeout untuk menyetel waktu tunggu I/O di Router, Anda harus memverifikasi apakah properti proxy_read_timeout sebenarnya telah ditetapkan dengan nilai baru.

  1. Telusuri properti proxy_read_timeout dalam direktori /opt/nginx/conf.d dan periksa apakah properti tersebut telah ditetapkan dengan nilai baru, seperti berikut:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. Jika nilai waktu tunggu I/O baru berhasil disetel di router, perintah di atas akan menampilkan nilai baru dalam semua file konfigurasi host virtual.

    Berikut ini adalah hasil contoh dari perintah grep di atas ketika waktu tunggu I/O adalah 120 detik:

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
    

    Pada contoh output di atas, perhatikan bahwa properti proxy_read_timeout telah ditetapkan dengan nilai baru 120 di 0-default.conf yang merupakan file konfigurasi untuk host virtual default. Hal ini menunjukkan bahwa waktu tunggu I/O berhasil dikonfigurasi ke 120 detik di Router.

  3. Jika Anda masih melihat nilai lama untuk properti proxy_read_timeout, pastikan bahwa Anda telah mengikuti semua langkah yang diuraikan dalam Mengonfigurasi waktu tunggu I/O di Router dengan benar. Jika Anda melewatkan langkah apa pun, ulangi lagi semua langkah tersebut dengan benar.
  4. Jika Anda masih tidak dapat mengubah waktu tunggu I/O, hubungi Dukungan Apigee Edge.

Langkah berikutnya?

Pelajari tentang Mengonfigurasi Waktu Tunggu I/O di Prosesor Pesan