F5 Load Balancer Mengirim Ulang Permintaan Tepat Waktu

8

Saya perkenalkan ini dengan mengatakan saya bukan administrator sistem, saya seorang programmer.

Baru-baru ini, administrator sistem kami memasang penyeimbang beban F5. Sejak itu, saya perhatikan bahwa setiap kali permintaan habis dan berakhir dengan melempar 500, penyeimbang beban mengirimkan permintaan yang sama ke server kami yang lain. IIS mengirimkan respons timeout meskipun skrip sebenarnya masih berjalan. Bahkan permintaan POST digandakan jika skrip berjalan lebih dari 5 menit. Ini sepertinya masalah potensial bagi saya, terutama dengan situs e-commerce di mana penagihan pelanggan terlibat.

Ini hanya masalah dengan beberapa skrip yang sudah berjalan lama (tapi ini masalah serius). Saya telah diberitahu bahwa ini adalah perilaku yang diharapkan, dan kami harus mengubah kode kami agar sesuai. Jadi pertanyaan saya adalah:

  • Apakah ini perilaku yang diharapkan?
  • Apa keuntungan penyeimbang beban mereplikasi permintaan setelah batas waktu selain dari pengguna yang tidak harus menyegarkan?
  • Dengan arsitektur ini, jika skrip yang menjalankan server atau sumber daya dijalankan, skrip tersebut akan berjalan di kedua server. Apakah itu benar-benar optimal?
Jim D
sumber
Ketika Anda mengatakan 'mengirim permintaan yang sama' ke server lain, apakah Anda merujuk ke pemeriksaan kesehatan yang dikonfigurasi atau permintaan pengguna? Perasaan saya tidak, tetapi perlu diperjelas. Jawaban untuk ini akan mengubah jawaban dan / atau saran.
mcauth
@ mcauth mengirim ulang permintaan pengguna. Pada dasarnya jika pengguna melakukan tindakan apa pun yang menyebabkan kesalahan 500, load balancer mengirimkan permintaan yang persis sama ke server lain, sehingga menciptakan dua respons dari satu permintaan HTTP.
Jim D
1
Saya sudah berada di orbit Big-IP untuk waktu yang cukup lama, dan saya tidak pernah mengetahuinya untuk memutar ulang permintaan kecuali secara khusus diperintahkan untuk melakukannya, katakanlah, melalui iRule yang melakukan HTTP :: collect ke buffer payload request . Sangat aneh. Tanpa melihat konfigurasi berjalan, sangat sulit untuk mengatakannya.
mcauth
Hanya menabrak utas ini sedikit agar Anda tahu bahwa saya memukul masalah yang sama persis ini. Apakah Anda bisa menyelesaikannya lebih lanjut?
BitMask777
@ BitMask777 - Sayangnya kami tidak pernah benar-benar melanjutkan ini. Ini masih merupakan perilaku penyeimbang beban dan kami telah "menanganinya".
Jim D

Jawaban:

3

Lihatlah entri ini pada pemantauan aplikasi pasif di Big-IP

Jawaban saya atas pertanyaan Anda, sama mengecewakannya, adalah

  • Mungkin (tergantung pada konfigurasi pemantauan pasif)

  • Pengguna tidak melihat kesalahan

  • Mungkin (Apakah saya ingin melayani kesalahan pengguna saya atau mencoba permintaan di tempat lain?)

"Action on Service Down" adalah pengaturan yang dapat dikonfigurasi.

quadruplebucky
sumber
Terima kasih atas jawaban anda. Anda benar karena sedikit mengecewakan, saya berharap untuk sesuatu yang lebih konkret. Saya kira itu nyata dalam menjelaskan bahwa tidak ada jawaban pasti.
Jim D
0

Jika kesalahan 500 terjadi, ini menunjukkan masalah pada server web. F5 kemudian hanya akan meneruskan kesalahan ini ke klien yang menghubungkan. Itu tidak akan "mengirim ulang" permintaan atas permintaan sendiri. Satu-satunya cara ini bisa terjadi adalah jika klien mencoba kembali permintaan. Pada saat itu, permintaan ini mungkin dapat memuat seimbang ke anggota kumpulan lainnya, meskipun tidak ada jaminan dan itu akan didasarkan pada metode kegigihan atau penyeimbangan beban yang digunakan (round robin, paling sedikit koneksi, dll).

Singkatnya, kecuali jika Anda memiliki beberapa iRule benar-benar gila pada F5 Anda, ini adalah perilaku yang disebabkan oleh skrip itu sendiri.

(Catatan: Saya adalah Insinyur Dukungan Nework untuk F5 selama satu setengah tahun bekerja dengan LTM)

James Shewey
sumber