Mengonfigurasi waktu tunggu I/O di Prosesor Pesan

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

Dokumen ini menjelaskan cara mengonfigurasi waktu tunggu I/O untuk Apigee Edge Message Processors.

Waktu tunggu I/O pada Pemroses Pesan mewakili waktu saat Pemroses Pesan menunggu untuk menerima respons dari server backend atau hingga soket siap untuk menulis permintaan ke server backend, sebelum waktu habis.

Nilai default waktu tunggu I/O Pemroses Pesan adalah 55 seconds. Periode waktu tunggu ini berlaku untuk server backend yang dikonfigurasi di konfigurasi endpoint target dan di kebijakan ServiceCallout proxy API Anda.

Waktu tunggu I/O untuk Pemroses Pesan dapat ditingkatkan atau diturunkan dari nilai default 55 seconds berdasarkan kebutuhan Anda. ID ini dapat dikonfigurasi di tempat berikut:

  • Di proxy API
    • Endpoint target
    • Kebijakan ServiceCallout
  • Pada Pemroses Pesan

Properti berikut mengontrol waktu tunggu I/O pada Prosesor Pesan:

Nama Properti Lokasi Deskripsi
io.timeout.millis

Proxy API:

  • Endpoint target
  • Kebijakan Info Layanan

Ini adalah waktu maksimum yang diperlukan pemroses Pesan untuk melakukan hal-hal berikut:

  • Menunggu untuk menerima respons dari server backend, setelah membuat koneksi dan mengirim permintaan ke server backend ATAU
  • Menunggu hingga soket siap digunakan oleh Message Processor untuk mengirim permintaan ke server backend.

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

Secara default, properti ini menggunakan nilai yang ditetapkan untuk properti HTTPTransport.io.timeout.millis di Pemroses Pesan. Nilai defaultnya adalah 55 seconds.

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

HTTPTransport.io.timeout.millis Message Processor

Ini adalah waktu maksimum yang diperlukan pemroses Pesan untuk melakukan hal-hal berikut:

  • Menunggu untuk menerima respons dari server backend, setelah membuat koneksi dan mengirim permintaan ke server backend ATAU
  • Menunggu hingga soket siap digunakan oleh Message Processor untuk mengirim permintaan ke server backend.

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

Properti ini digunakan untuk semua Proxy API yang berjalan di Pemroses Pesan ini.

Nilai default properti ini adalah 55 seconds.

Anda dapat mengubah properti ini seperti yang dijelaskan dalam Mengonfigurasi waktu tunggu I/O di Prosesor Pesan, atau Anda dapat menimpa nilai ini dengan menyetel properti io.timeout.millis di tingkat proxy API.

Sebelum memulai

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

Mengonfigurasi waktu tunggu I/O di proxy API

Waktu tunggu I/O dapat dikonfigurasi di tempat proxy API berikut:

  • Endpoint target
  • Kebijakan ServiceCallout

Mengonfigurasi waktu tunggu I/O di endpoint target proxy API

Bagian ini menjelaskan cara mengonfigurasi waktu tunggu I/O di endpoint target proxy API Anda. Waktu tunggu I/O dapat dikonfigurasi melalui properti io.timeout.millis yang mewakili nilai waktu tunggu I/O dalam milidetik.

  1. Di UI Edge, pilih proxy API tertentu tempat Anda ingin mengonfigurasi nilai waktu tunggu I/O yang baru.
  2. Pilih endpoint target tertentu yang ingin Anda ubah.
  3. Tambahkan properti io.timeout.millis dengan nilai yang sesuai di bagian elemen <HTTPTargetConnection> dalam konfigurasi TargetEndpoint.
  4. Misalnya, untuk mengubah Waktu Tunggu I/O menjadi 120 detik, tambahkan blok kode berikut:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Karena properti io.timeout.millis dalam milidetik, nilai untuk 120 detik adalah 120000.

    Contoh berikut menunjukkan cara mengonfigurasi waktu tunggu I/O di konfigurasi endpoint target proxy API Anda:

    Contoh konfigurasi endpoint target menggunakan URL untuk server backend

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>
    

    Contoh konfigurasi endpoint target yang menggunakan server target

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
  5. Simpan perubahan yang dibuat pada proxy API Anda.

Mengonfigurasi waktu tunggu I/O dalam kebijakan ServiceCallout proxy API

Bagian ini menjelaskan cara mengonfigurasi waktu tunggu I/O pada kebijakan ServiceCallout di proxy API Anda. Waktu tunggu I/O dapat dikonfigurasi melalui elemen <Timeout> atau properti io.timeout.millis. Elemen <Timeout> dan properti io.timeout.millis mewakili nilai waktu tunggu I/O dalam milidetik.

Anda dapat mengonfigurasi waktu tunggu I/O pada kebijakan ServiceCallout menggunakan salah satu metode berikut:

  • Elemen <Timeout>.
  • io.timeout.millis.

Elemen waktu tunggu

Untuk mengonfigurasi waktu tunggu I/O pada kebijakan ServiceCallout menggunakan elemen <Timeout>, lakukan hal berikut:

  1. Di UI Edge, pilih proxy API tertentu tempat Anda ingin mengonfigurasi nilai waktu tunggu I/O yang baru untuk kebijakan ServiceCallout.
  2. Pilih kebijakan ServiceCallout tertentu yang ingin Anda ubah.
  3. Tambahkan elemen <Timeout> dengan nilai yang sesuai di bagian konfigurasi <ServiceCallout>.

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

        <Timeout>120000</Timeout>
    

    Karena elemen <Timeout> dalam milidetik, nilai untuk 120 detik adalah 120000.

    Contoh berikut menunjukkan cara mengonfigurasi waktu tunggu I/O dalam kebijakan ServiceCallout menggunakan elemen <Timeout>:

    Contoh konfigurasi kebijakan ServiceCallout menggunakan URL untuk server backend

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Simpan perubahan yang dibuat pada proxy API Anda.

Properti io.timeout.millis

Untuk mengonfigurasi waktu tunggu I/O pada kebijakan ServiceCallout menggunakan properti io.timeout.millis, lakukan hal berikut:

  1. Di UI Edge, pilih proxy API tertentu tempat Anda ingin mengonfigurasi nilai waktu tunggu I/O yang baru untuk kebijakan ServiceCallout.
  2. Pilih kebijakan ServiceCallout tertentu yang ingin Anda ubah.
  3. Tambahkan properti io.timeout.millis dengan nilai yang sesuai di bagian elemen <HTTPTargetConnection> dalam konfigurasi TargetEndpoint.

    Misalnya, untuk mengubah waktu tunggu I/O menjadi 120 detik, tambahkan blok kode berikut:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Karena properti io.timeout.millis dalam milidetik, nilai untuk 120 detik adalah 120000.

    Contoh berikut menunjukkan cara mengonfigurasi waktu tunggu I/O di konfigurasi endpoint target proxy API Anda:

    Contoh konfigurasi kebijakan ServiceCallout menggunakan URL untuk server backend

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <HTTPTargetConnection>
          <Properties>
            <Property name="io.timeout.millis">120000</Property>
          </Properties>
          <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    

    Contoh konfigurasi kebijakan ServiceCallout yang menggunakan server target

    <ServiceCallout enabled="true" name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Response>calloutResponse</Response>
        <HTTPTargetConnection>
            <LoadBalancer>
                <Server name="target1" />
                <Server name="target2" />
            </LoadBalancer>
            <Properties>
                <Property name="io.timeout.millis">120000</Property>
            </Properties>
            <Path>/test</Path>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Simpan perubahan yang dibuat pada proxy API Anda.

Mengonfigurasi waktu tunggu I/O pada Prosesor Pesan

Bagian ini menjelaskan cara mengonfigurasi waktu tunggu I/O pada Prosesor Pesan. Waktu tunggu I/O dapat dikonfigurasi melalui properti HTTPTransport.io.timeout.millis, yang mewakili nilai waktu tunggu I/O dalam milidetik pada komponen Pemroses Pesan, menggunakan token sesuai sintaksis yang dijelaskan dalam Cara mengonfigurasi Edge.

Untuk mengonfigurasi waktu tunggu I/O pada Prosesor Pesan, lakukan hal berikut:

  1. Di mesin Message Processor, buka file berikut di editor. Jika belum ada, maka buat.
    /opt/apigee/customer/application/message-processor.properties
    

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

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Tambahkan baris dalam format berikut ke file properti, dengan mengganti nilai dengan TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    Misalnya, untuk mengubah waktu tunggu I/O pada Message Processor menjadi 120 detik, tambahkan baris berikut:

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. Simpan perubahan.
  4. Pastikan file properti dimiliki oleh pengguna apigee seperti yang ditunjukkan di bawah ini:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Mulai ulang Prosesor Pesan seperti yang ditunjukkan di bawah ini:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Jika Anda memiliki lebih dari satu Pemroses Pesan, ulangi langkah-langkah di atas pada semua Pemroses Pesan.

Memverifikasi waktu tunggu I/O pada Pemroses Pesan

Bagian ini menjelaskan cara memverifikasi bahwa waktu tunggu I/O telah berhasil diubah pada Pemroses Pesan.

Meskipun Anda menggunakan token conf_http_HTTPTransport.io.timeout.millis untuk menetapkan waktu tunggu I/O pada Pemroses Pesan, Anda harus memverifikasi apakah properti sebenarnya HTTPTransport.io.timeout.millis telah ditetapkan dengan nilai baru.

  1. Pada mesin Message Processor, telusuri properti HTTPTransport.io.timeout.millis dalam direktori /opt/apigee/edge-message-processor/conf dan periksa apakah properti tersebut telah ditetapkan dengan nilai baru seperti yang ditunjukkan di bawah ini:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Jika nilai waktu tunggu I/O baru berhasil ditetapkan di Pemroses Pesan, perintah di atas akan menampilkan nilai baru dalam file http.properties.
  3. Contoh hasil dari perintah di atas setelah Anda mengonfigurasi waktu tunggu I/O menjadi 120 detik adalah sebagai berikut:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
    

    Pada contoh output di atas, perhatikan bahwa properti HTTPTransport.io.timeout.millis telah ditetapkan dengan nilai baru 120000 di http.properties. Hal ini menunjukkan bahwa waktu tunggu I/O berhasil dikonfigurasi hingga 120 detik pada Pemroses Pesan.

  4. Jika Anda masih melihat nilai lama untuk properti HTTPTransport.io.timeout.millis, pastikan Anda telah mengikuti semua langkah yang diuraikan dalam Mengonfigurasi waktu tunggu I/O di Pemroses Pesan dengan benar. Jika Anda melewatkan langkah apa pun, ulangi lagi semua langkah tersebut dengan benar.
  5. Jika Anda masih tidak dapat mengubah waktu tunggu I/O, hubungi Dukungan Apigee Edge.

Langkah berikutnya?

Pelajari tentang Mengonfigurasi waktu tunggu I/O di Router