Perbedaan antara sesi afinitas dan sesi lengket?

126

Apa perbedaan antara sesi afinitas dan sesi sticky dalam konteks server load balancing?

pengguna32262
sumber

Jawaban:

82

Saya telah melihat istilah-istilah itu digunakan secara bergantian, tetapi ada berbagai cara penerapannya:

  1. Kirim cookie pada respons pertama dan kemudian cari pada respons selanjutnya. Cookie mengatakan ke server mana untuk dikirim.
    Buruk jika Anda harus mendukung browser tanpa cookie
  2. Partisi berdasarkan alamat IP pemohon.
    Buruk jika tidak statis atau jika banyak yang masuk melalui proxy yang sama.
  3. Jika Anda mengautentikasi pengguna, partisi berdasarkan nama pengguna (haruslah mode autentikasi yang didukung HTTP untuk melakukan ini).
  4. Tidak memerlukan status.
    Biarkan klien menekan server mana pun (kirim negara ke klien dan minta mereka mengirimnya kembali)
    Ini bukan sesi yang sulit, ini adalah cara untuk menghindari keharusan melakukannya.

Saya menduga bahwa sticky mungkin merujuk ke cara cookie, dan afinitas itu mungkin merujuk ke # 2 dan # 3 dalam beberapa konteks, tapi itu bukan bagaimana saya melihatnya menggunakan (atau menggunakannya sendiri)

Lou Franco
sumber
6
Jika permintaan terikat ke server fisik, apa yang terjadi jika server itu gagal? Apakah ada strategi untuk menggunakan cookie untuk memuat server fail-over?
raffian
2
Jika server gagal, aplikasi gagal - mungkin Anda harus masuk lagi. Mungkin Anda kehilangan data. Biasanya, load-balancer mengambil server lain dan Anda terus berjalan, tetapi beberapa negara hilang. Jika ini tidak dapat diterima, maka Anda harus mendapatkan status ke DB atau server lain secepat mungkin atau memiliki strategi stateless.
Lou Franco
FWIW Heroku menyebut mereka sebagai kebalikannya. Session Afifinity berbasis cookie, dan tidak mendukung lengket. devcenter.heroku.com/articles/session-affinity
RandallB
39

Karena saya selalu mendengar istilah yang digunakan dalam skenario load-balancing, mereka dapat dipertukarkan. Keduanya berarti bahwa sekali sesi dimulai, server yang sama melayani semua permintaan untuk sesi itu.

Jonathan Rupp
sumber
21

Sesi lengket berarti bahwa ketika permintaan masuk ke situs dari klien, semua permintaan lebih lanjut pergi ke server yang sama dengan permintaan klien awal yang diakses. Saya percaya bahwa afinitas sesi adalah sinonim untuk sesi lengket.

kemiller2002
sumber
13

Mereka sama.

Keduanya berarti bahwa ketika masuk ke load balancer, permintaan akan diarahkan ke server yang melayani permintaan pertama (dan memiliki sesi).

Justin Niessner
sumber
11

Sesi lengket berarti untuk merutekan permintaan sesi tertentu ke mesin fisik yang sama yang melayani permintaan pertama untuk sesi itu.

Manoj
sumber
3

Artikel ini mengklarifikasi pertanyaan untuk saya dan membahas jenis kegigihan penyeimbang beban lainnya.

Dave's Thoughts: Load balancer persistence (sesi lengket)

John S.
sumber
6
Tampaknya tidak lagi tersedia, tetapi ada salinan di mesin Wayback
Martin McNulty
12
Inilah mengapa Anda tidak hanya memposting tautan tanpa penjelasan
Juan Mendes
Ditemukan bahwa konten tautan di atas (tidak lagi tersedia sekarang) telah dipindahkan ke archive.li/SG4fA Pada dasarnya daftar berbagai jenis persistensi yang didukung oleh penyeimbang beban F5.
aveek
0

Mereka adalah Sinonim. Tidak Ada Perbedaan Sama sekali

Sticky Session / Session Affinity:

Afinitas / Kelekatan / Kontak antara sesi pengguna dan, server tempat permintaan pengguna dikirim tetap dipertahankan.

Sateesh
sumber