Yabela i-proxy esetshenziswa kancane kakhulu ku-Redis ngendlela ye-athomu
Sebenzisa i-sorted set kanye ne-Lua script emfushane ukukhetha nokwandisa inani lokwabiwa kwe-proxy phakathi kwabasebenzi.
Lapho abasebenzi abaningi babelana nge-pool nge-Redis, i-sorted set ingasebenzisa inqubomgomo elula: khetha i-proxy efanelekile enenani elincane kakhulu lokwabiwa okubhaliwe. Gcina isihlonzi se-proxy njenge-member kanye nenani layo lokwabiwa njenge-score.
Kwi-pool ekhonza izicelo zomphakathi ezivunyelwe, uhlu lwama-proxy amahhala lungahlinzeka ngabazongenela i-endpoint okufanele bahlolwe ngemithetho yokufaneleka yaleyo pool. Qala amalungu afanelekile ngenani lokuqala okuvunyelwene ngalo. Bese wenza ukukhetha nokwengeza kube umsebenzi owodwa ohlangothini lweseva:
local chosen = redis.call('ZRANGE', KEYS[1], 0, 0)[1]
if not chosen then
return nil
end
redis.call('ZINCRBY', KEYS[1], 1, chosen)
return chosenDlulisela ukhiye we-sorted set njengengxabano yokhiye eyodwa ye-script ngesixhumanisi se-EVAL sekhayenti lakho le-Redis. I-pool engenalutho ikhiqiza umphumela we-null okufanele uhlelo lusebenzise ngaphandle kokwenza isicelo.
Kungani kuhlanganiswa imiyalo emibili?
Ukufunda nokwengeza okuhlukene kwenza abasebenzi ababili babone ubuncane obufanayo ngaphambi kokuba noma ubani abuyekeze. I-Redis yenza i-Lua script ngendlela ye-athomu, ngakho omunye umsebenzi akakwazi ukufaka ukukhetha phakathi kokufunda nokwengeza kwale script. Gcina i-script imfushane ngoba ukusebenza kwayo kuvimbela omunye umsebenzi we-Redis.
I-ZRANGE ibuyisela i-score ephansi kuqala; ama-score alinganayo axazululwa ngezinga lamalungu, hhayi ngokungahleliwe. I-ZINCRBY yenyusa i-score yelungu elikhethiwe ngeyodwa ukwenzela ukwabiwa okulandelayo.
Chaza ukuthi i-score isho ukuthini
Lokhu kubala ukwabiwa, kufaka phakathi ukwabiwa okwesicelo sakho senethiwekhi esihluleka kamuva. Akukali ukubambezeleka, izicelo eziphumelelayo noma umsebenzi oqhubekayo. Kusenzeka ukukhetha ngokuphindaphindiwe ilungu elilodwa elifanelekile; i-script ayigcini ngokukhethekile.
Gcina ukufaneleka ngemithetho yezempilo nenqubomgomo ye-pool. Uma ususa ilungu bese ulibuyisela kamuva, thatha isinqumo sokuthi ingabe inani lalo lomlando kufanele ligcinwe. Ukuqala i-proxy ebuyisiwe kusukela ku-zero kungagxilisa ukwabiwa kuyo ngesikhathi ithuthuka.
Inqubomgomo yokuhlanganyela okuphansi kakhulu idinga umjikelezo wempilo ohlukile, kufaka phakathi ukuqedwa nokuphathwa kwemisebenzi elahliwe. Ungayichazi le khawunta eqoqiwe njengalowo mjikelezo wempilo.