Rumah >pembangunan bahagian belakang >tutorial php >Prinsip dan pelaksanaan algoritma adil dalam pengimbangan beban Nginx
Prinsip dan pelaksanaan algoritma adil dalam pengimbangan beban Nginx memerlukan contoh kod khusus
Dalam sistem teragih, pengimbangan beban adalah bahagian yang sangat penting. Sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, Nginx mempunyai fungsi pengimbangan beban. Nginx menyediakan pelbagai algoritma pengimbangan beban, antaranya algoritma adil ialah algoritma yang biasa digunakan. .
4) Simpan senarai pelayan yang dikemas kini untuk permintaan seterusnya.
Dengan cara ini, algoritma adil boleh memperuntukkan permintaan mengikut berat pelayan untuk mencapai pengagihan beban yang lebih seimbang.
http { upstream backend { fair; server backend1.example.com weight=3; server backend2.example.com weight=2; server backend3.example.com weight=1; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } } }
Dalam senarai pelayan, kami menetapkan berat pelayan yang berbeza melalui parameter berat. Tetapan berat ditentukan berdasarkan prestasi pelayan dan beban Pelayan dengan pemberat yang lebih tinggi akan mengendalikan lebih banyak permintaan.
Pelaksanaan kod algoritma adilimport math servers = [ {'name': 'backend1.example.com', 'weight': 3}, {'name': 'backend2.example.com', 'weight': 2}, {'name': 'backend3.example.com', 'weight': 1}, ] total_weight = sum(server['weight'] for server in servers) gcd = math.gcd(*[server['weight'] for server in servers]) for server in servers: server['current_weight'] = server['weight'] while True: best_server = None best_weight = 0 for server in servers: server['current_weight'] += server['weight'] if server['current_weight'] > best_weight: best_server = server best_weight = server['current_weight'] best_server['current_weight'] -= total_weight print('Request sent to: %s' % best_server['name'])
Kemudian, setiap kali permintaan tiba, pelayan yang paling sesuai dipilih untuk diproses berdasarkan berat semasa, dan berat semasa dalam senarai pelayan dikemas kini.
Akhir sekali, dengan mencetak pelayan yang permintaannya dihantar, kita dapat melihat kesan pengimbangan beban algoritma adil.
Ringkasan:
Algoritma adil dalam Nginx melaksanakan pengimbangan beban berasaskan berat, dan mencapai pengagihan beban yang lebih seimbang dengan memperuntukkan permintaan secara munasabah kepada setiap pelayan. Melalui arahan tersuai dan contoh kod, kami boleh memahami dan menggunakan algoritma adil dengan lebih baik. Dalam aplikasi praktikal, menetapkan pemberat berdasarkan prestasi pelayan dan keadaan beban boleh meningkatkan prestasi dan kestabilan sistem.Atas ialah kandungan terperinci Prinsip dan pelaksanaan algoritma adil dalam pengimbangan beban Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!