Redis oo VPN dhex mara ayaa gaabis noqda: yaree wareegyada codsi kasta
VPN kama dhigto wicitaanka Redis ee fog mid maxalli ah. Qorsheeyso wareegyada codsi kasta, dib u isticmaal xidhiidhada, oo pipeline ka fogee transaksiyada.
Bog ku jawaaba 200 ms Redis maxalli ah, afar ilbiriqsi ayuu qaataa marka macmiilku VPN ka dambeeyo, halka tirsiyayaasha server-ku ay sii fadhiyaan. Slow Log wax ka sarreeya millisekan ma muujiyo, garaafka CPU-ga waa siman yahay, instance-kuna macaamiil kale si cabasho la'aan ah ayuu u adeegaa. Waxa is beddelay waa masaafada, waxa masaafada badanaana waa tirada jeer ee koodkaagu istaago oo sugayo. Soco wadada codsiga laga bilaabo macmiilka oo u bax, hagaajintuna had iyo jeer waa sugitaanno isku xigxiga oo yar, ma aha server degdeg ah.
Ka bilow macmiilka, ma aha cabbirrada server-ka
Fiiri habka macmiilka inta u dhaxaysa amarka ugu horreeya iyo kan ugu dambeeya. Haddii raadku muujiyo jawaab, hakad, ka dibna amarka xiga, waxaad bixinaysaa safar wareeg buuxa amar kasta, oo wax hagaajin server ah ma beddeli doono taas. Slow Log waa qalabka qaldan halkan, sababtoo ah waxa uu diiwaangeliyaa waqtiga fulinta oo si ula kac ah uga reebaa I/O-ga isgaarsiinta. Slow Log nadiif ah oo ku xiga endpoint gaabis ah waa calaamadda dhibaatada wareegga.
Marka hore cabbir wadada lafteeda ka hor inta aadan taaban koodka. redis-cli -h redis.example.internal --latency waxa ay diraa PING soo noqnoqda oo daabacaa celceliska waqtiga codsiga iyo jawaabta, taas oo ah kharashkaaga is-dhaafsiga kasta. Ku dhufo tan tirada amarro isku xigxiga ee hal fal isticmaale, waxaadna helaysaa heerka hoose ee endpoint-ka.
Tiri safarada wareega ee hal fal isticmaale uu dhab ahaan u baahan yahay
Qaado hal endpoint oo qor wicitaan kasta oo Redis si taxane ah, oo ay ku jiraan kuwa ku qarsoon ORM, session middleware ama raadinta feature flag. Endpoint-yada gaabis ah badidoodu waxa ay sameeyaan labaatan ama soddon wicitaan halka saddex ku filnaan lahaayeen, kuwa qarsoonna badanaa waa inta ugu badan.
Silsiladda ku tiirsanaanta lama ururin karo: haddii amarka labaad u baahan yahay furaha amarka koowaad soo celiyay, sugitaanku waa dhab, xulashooyinka kaliyaanna waa qaab xogta kale ama hawlgallada server-ka oo tallaabada oo dhan hal mar muujiya. Akhriska madaxa banaan waa kiis kale, sababtoo ah waxba kuma qasbo inaad sugto jawaabta koowaad ka hor inta aadan dirin tan labaad. Calaamadee wicitaan kasta mid ku tiirsan ama madax banaan ka hor inta aadan wax beddelin, qaabka hagaajintuna wuu caddaan doonaa.
Tirada muhiimka ah waa sugitaannada isku xigxiga, ma aha wadarta amarraha. Soddon amar oo hal dufan ku jira waxa ay weli ku kacaan hal sugitaan.
U dufan kaliya amarraha aan midba midka kale ku tiirsanayn
Pipeline waxa uu safka dhigaa amarro madax banaan oo jawaabaha si taxane ah u soo aruuriyaa, taas oo N sugitaan u rogta hal. Macaamiisha badidoodu waxa ay u soo bandhigaan sidii block, callback ama maareeye macne, ma aha qaab xidhiidh gaar ah, sidaas darteed hubi API-ga nooca aad rakibtay soo saaro. Faa'iidada waxa ay la koraan waqtiga wareegga, taas oo si sax ah muhiim ugu tahay VPN-ka oo localhost-ka si dhib leh uga muuqato.
import redis
r = redis.Redis(host="redis.example.internal", port=6379, socket_timeout=2)
pipe = r.pipeline(transaction=False)
for key in ("user:1001", "user:1002", "user:1003"):
pipe.get(key)
print(pipe.execute())
Gudbi transaction=False marka aad rabto oo kaliya dufan. Dhaqanka caadiga ah macmiilku wuxuu dufanka ku duubaa MULTI iyo EXEC, taas oo ka dhigta atomic oo beddesha waxa macaamiisha kale arkaan inta uu socdo. Atomicity waa go'aan saxnaan, ma aha badhanka waxqabadka, pipeline-na ma aha transaksiye sababtoo ah labaduba waxa ay yareeyaan safarada wareega.
Akhri jawaab kasta halkii aad akhri lahayd gudbinta dufanka oo kaliya. Amar safka yaalla waxa uu soo celin karaa khalad inta dufanku guud ahaan dhammaystirmayo, macmiilka tuuraya liiska jawaabahana waxa uu qorin guuldarraystay u rogaa mid aamusan. Isbarba dhig dhererka liiska jawaabaha iyo tirada amarraha aad safka dhigatay.
Xidhiidhka ku hay nool inta u dhaxaysa falalka
Xidhiidh kasta oo cusub waxa uu bixiyaa xallinta magaca, gacan-gelinta TCP, gacan-gelinta TLS iyo AUTH, VPN-ka korkiisana mid kasta oo ka mid ah waa safar wareeg aan la dufan karin. Hal mar u abuur macmiilka habka kasta oo dib u isticmaal, ama isticmaal pool-ka maktabaddaadu bixiso oo leh cabbir xaddidan. Dib u xidhiidhka codsi kasta waa sababta labaad ee ugu caansan calaamaddan ka dib sugitaanka amarkasta.
Magaca martigeliyaha gaarka ah ku hay habaynta halkii aad ku qori lahayd cinwaan toos ah. Xaqiijinta shahaadada iyo aqoonsiga adeeggu weli way khusaysaa shabakad gaar ah, IP-da ku dhejintuna way jabtaa isla marka bixiuhu dib u nambareeyo subnet. Haddii xallintu tahay qaybta gaabis ah, hagaaji wadada resolver-ka halkii aad hagaajin lahayd xarigga xidhiidhka.
Deji socket timeout cad si tunnel istaagay si degdeg ah u guuldarraysto halkii uu shaqaale ku laalaadin lahaa. Kadibna xaqiiji in pool-ka dhab ahaan dib loo isticmaalay iyadoo aad diiwaangeliso abuurka xidhiidhka macmiilka dhexdiisa.
Cabbir dufanka ka hor inta uu noqon dhibaato xusuusta
Redis waxa uu hayaa jawaabaha safka yaalla inta dufanku socdo, macmiilka na kadib waxa uu hayaa natiijada la falanqeeyay. Pipeline toban kun oo qiyam waaweyn ah waxa uu sugitaanka shabakadda ku beddelaa kor u kaca xusuusta iyo hakad dheer labada daraf.
Dooro cabbirka dufanka iyadoo lagu salaynayo mugga jawaabaha, ma aha tirada amarraha. Dhowr boqol oo amar yar oo hal dufan ku jira badanaa waa raaxo, boqol payload oo kilobyte badan-na ma aha. U kala qaybi bytes iyo tiro labadaba, dufan kastana ku hay gudaha miisaaniyadda latency ee endpoint-ku dhab ahaan leeyahay.
Ka dib isbeddelka cabbir laga bilaabo bilow ilaa dhammaad: redis-cli -h redis.example.internal --latency-history waxa uu muujiyaa in wadadu lafteedu deggan tahay, waqtigaaga codsiga ee gaarka ahuna waxa uu muujiyaa in endpoint-ku soo hagaagay. Haddii endpoint-ku weli gaabis yahay halka taariikhda latency ay siman tahay, kharashka hadhay waa shaqo server-ka ah ama serialization-kaaga, tallaabada xigtana waa profile-ka handler-ka ma aha isbeddel dufan oo kale.