Halo sobat sekolahlinux kali ini saya akan coba membagi sedikit apa yang saya alami di pekerjaan saya, jadi ada client ditempat kerja saya mengeluhkankan kenapa beban yang harus terbagi secara merata malah tidak berfungsi, dan kadang malah memberatkan di 1 server, setelah ditelusuri oleh saya dan team ditemukanlah penyebabnya adalah sticky session, jadi ketika kita mengaktifkan cookies maka algoritma loadbalancer (roundrobin, leastcon) akan di skip, kurang lebih menjadi seperti dibawah gambarannya
client request | V HAProxy Frontend | V backend choice | V HAproxy Backend | V Does the request contain persistence information --------- | | | NO | V | Server choice by | YES load-balancing algorithm | | | V | Forwarding request <---------- to the server
session pada ha-proxy sendiri ada 2 yaitu affinity dan persistance (sticky session)
contoh affinity contohnya seperti dibawah ini
frontend ft_web bind 0.0.0.0:80 default_backend bk_web backend bk_web balance source hash-type consistent # optional server s1 192.168.10.11:80 check server s2 192.168.10.21:80 check
sedangkan untuk persistence contohnya seperti dibawah ini
frontend ft_web bind 0.0.0.0:80 default_backend bk_web backend bk_web balance roundrobin cookie SERVERID insert indirect nocache server s1 192.168.10.11:80 check cookie s1 server s2 192.168.10.21:80 check cookie s2
adapun untuk cara kerjanya seperti yang jabarkan dibawah
- affinity: menggunakan ip level information sebelum aplication layer untuk mengarahkan user ke single server
- persistance: menggunakan aplication layer information untuk mengarahkan user ke salah satu single server
- membuat cookie untuk the session.
- menggunakan cookie, seperti ASP.NET_SessionId, JSESSIONID, PHPSESSIONID, dan lainnya.
- sticky session: session yang nantinya akan di maintenance oleh persistance
sekiranya itu yang bisa saya jabarkan berdasarkan dari apa yang saya pahami
sumber: http://blog.haproxy.com/2012/03/29/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/