10 vinsælustu skyndiminnitólin fyrir opinn uppspretta fyrir Linux árið 2020


Áreiðanleg dreifð tölvukerfi og forrit eru orðin hornsteinn áberandi fyrirtækja, sérstaklega við að gera sjálfvirkan og stjórna mikilvægum viðskiptaferlum og veita viðskiptavinum þjónustu. Sem verktaki og kerfisstjórar þessara kerfa og forrita er ætlast til að þú bjóði til alls kyns upplýsingatæknilausnir (IT) sem tryggja að þú hafir skilvirkustu kerfin sem völ er á.

Þetta felur í sér verkefni eins og að hanna, prófa og innleiða aðferðir fyrir frammistöðu kerfis/forrita, áreiðanleika, framboð og sveigjanleika, til að veita endanotendum fullnægjandi þjónustustig. Skyndiminni er ein af mörgum, mjög einföldum en áhrifaríkum afhendingaraðferðum forrita sem þú getur reitt þig á. Áður en lengra er haldið skulum við skoða stuttlega hvað skyndiminni er, hvar og/eða hvernig er hægt að beita því og kosti þess?

Caching (eða Content Caching) er mikið notuð tækni til að geyma afrit af gögnum á tímabundnum geymslustað (einnig þekkt sem skyndiminni) þannig að hægt sé að nálgast gögnin auðveldlega og fljótt en þegar þau eru sótt úr upprunalegu geymslunni. Gögnin sem eru geymd í skyndiminni geta innihaldið skrár eða brot af skrám (svo sem HTML skrár, forskriftir, myndir, skjöl osfrv.), gagnagrunnsaðgerðir eða færslur, API símtöl, DNS færslur osfrv., allt eftir tegund og tilgangi skyndiminni.

Skyndiminni getur verið í formi vélbúnaðar eða hugbúnaðar. Hugbúnaðarbundið skyndiminni (sem er í brennidepli þessarar greinar) gæti verið útfært á mismunandi lögum af forritastafla.

Hægt er að nota skyndiminni á biðlarahlið (eða á kynningarlagi forrita), til dæmis, skyndiminni vafra eða skyndiminni (eða ótengdur ham). Flestir ef ekki allir nútíma vafrar eru með útfærslu á HTTP skyndiminni. Þú gætir hafa heyrt um hina vinsælu setningu hreinsa skyndiminni þegar þú opnar vefforrit til að gera þér kleift að sjá nýjustu gögnin eða efni á vefsíðu eða forriti, í stað þess að vafrinn notar gamalt afrit af efninu sem er geymt á staðnum.

Annað dæmi um skyndiminni viðskiptavinar er DNS skyndiminni sem gerist á stýrikerfisstigi (OS). Það er tímabundin geymsla upplýsinga um fyrri DNS uppflettingar af stýrikerfinu eða vafranum.

Einnig er hægt að útfæra skyndiminni á netkerfi, annað hvort á staðarneti eða WAN í gegnum umboð. Algengt dæmi um þessa tegund af skyndiminni er í CDN (Content Delivery Networks), sem eru dreift net umboðsþjóna á heimsvísu.

Í þriðja lagi geturðu líka innleitt skyndiminni á uppruna- eða bakendaþjónum. Það eru mismunandi gerðir af skyndiminni á miðlarastigi, þær innihalda:

  • skyndiminni vefþjóns (til að vista myndir, skjöl, forskriftir og svo framvegis).
  • skyndiminni eða minnissetning forrita (notað við að lesa skrár af diski, gögn úr annarri þjónustu eða ferlum eða biðja um gögn frá API o.s.frv.).
  • skyndiminni gagnagrunns (til að veita aðgang í minni að oft notuðum gögnum eins og umbeðnum gagnagrunnslínum, niðurstöðum fyrirspurna og aðrar aðgerðir).

Athugaðu að skyndiminnisgögn er hægt að geyma í hvaða geymslukerfi sem er, þar með talið gagnagrunn, skrá, kerfisminni og svo framvegis en ætti að vera hraðari miðill en aðaluppspretta. Í þessu sambandi er skyndiminni í minni skilvirkasta og algengasta form skyndiminni.

Skyndiminni býður upp á marga kosti, þar á meðal eftirfarandi:

  • Á gagnagrunnsstigi bætir það lesafköst í míkrósekúndur fyrir skyndiminni gögn. Þú getur líka notað afturritunarskyndiminni til að bæta skrifafköst, þar sem gögn eru skrifuð í minni og síðar skrifuð á disk eða aðalgeymslu með tilteknu millibili. En gagnaheilleikaþáttur þess gæti haft mögulega hörmulegar afleiðingar. Til dæmis þegar kerfið hrynur rétt áður en gögn eru sett í aðalgeymsluna.
  • Á forritastigi getur skyndiminni geymt oft lesin gögn í umsóknarferlinu sjálfu og þannig stytt uppflettingartíma gagna úr sekúndum niður í míkrósekúndur, sérstaklega yfir netið.
  • Miðað við heildarframmistöðu forrita og netþjóns hjálpar skyndiminni við að draga úr álagi netþjóns, leynd og netbandbreidd þar sem skyndiminni gögn eru afhent viðskiptavinum og eykur þannig viðbragðstíma og afhendingarhraða til viðskiptavina.
  • Skyndiminni gerir einnig kleift að fá efni, sérstaklega í gegnum CDN, og marga aðra kosti.

Í þessari grein munum við fara yfir nokkur af helstu opnum uppspretta (forrita/gagnagrunns skyndiminni og skyndiminni proxy netþjóna) tólum til að útfæra skyndiminni miðlara í Linux.

1. Redis

Redis (Remote DIctionary Server að fullu) er ókeypis og opinn uppspretta, hratt, afkastamikið og sveigjanlegt dreifð tölvukerfi í minni sem hægt er að nota frá flestum ef ekki öllum forritunarmálum.

Það er gagnagrunnsgeymsla í minni sem virkar sem skyndiminnisvél, viðvarandi gagnagrunnur á diski í minni og skilaboðamiðlari. Þrátt fyrir að það sé þróað og prófað á Linux (ráðlagður vettvangur fyrir uppsetningu) og OS X, virkar Redis einnig í öðrum POSIX kerfum eins og *BSD, án ytri ósjálfstæðis.

Redis styður fjölmargar gagnauppbyggingar eins og strengi, kjötkássa, lista, sett, flokkuð sett, punktamyndir, strauma og fleira. Þetta gerir forriturum kleift að nota ákveðna gagnauppbyggingu til að leysa tiltekið vandamál. Það styður sjálfvirkar aðgerðir á gagnaskipulagi sínu, svo sem að bæta við streng, ýta þáttum á lista, hækka gildi kjötkássa, reikna gatnamót og fleira.

Helstu eiginleikar þess eru meðal annars Lua forskriftir, úrval af þrautseigjuvalkostum og dulkóðun á samskiptum viðskiptavinar og netþjóns.

Þar sem Redis er gagnagrunnur í minni en viðvarandi á diski, býður Redis upp á bestu frammistöðu þegar það virkar best með gagnasafni í minni. Hins vegar geturðu notað það með gagnagrunni á diski eins og MySQL, PostgreSQL og margt fleira. Til dæmis er hægt að taka mjög skrifþung lítil gögn í Redis og skilja aðra bita af gögnunum eftir í gagnagrunni á disknum.

Redis styður öryggi á margan hátt: einn með því að nota „verndaðan hátt“ eiginleika til að tryggja aðgang að Redis tilvikum frá utanaðkomandi netum. Það styður einnig auðkenningu biðlara-miðlara (þar sem lykilorð er stillt á þjóninum og veitt í biðlara ) og TLS á öllum samskiptarásum eins og biðlaratengingum, afritunartengingum og Redis Cluster strætósamskiptareglum og fleira.

Redis hefur mjög mörg notkunartilvik sem fela í sér skyndiminni gagnagrunns, heilsíðu skyndiminni, stjórnun notendalota, geymsla API-svara, birtingar/áskrifandi skilaboðakerfi, skilaboðaröð og fleira. Þetta er hægt að nota í leikjum, netforritum, RSS straumum, rauntíma gagnagreiningum, ráðleggingum notenda og svo framvegis.

2. Memcached

Memcached er ókeypis og opinn uppspretta, einfalt en öflugt, dreifð skyndiminniskerfi fyrir minnihluta. Það er lykilgildisgeymsla í minni fyrir litla bita af gögnum eins og niðurstöður gagnagrunnssímtala, API símtölum eða síðubirtingu. Það keyrir á Unix-líkum stýrikerfum þar á meðal Linux og OS X og einnig á Microsoft Windows.

Þar sem það er þróunartól, er það ætlað til notkunar til að auka hraða kraftmikilla vefforrita með því að vista efni (sjálfgefið, Least Recently Used (LRU) skyndiminni) og draga þannig úr álagi á gagnagrunni á disknum - það virkar sem skammtímaminni fyrir umsóknir. Það býður upp á API fyrir vinsælustu forritunarmálin.

Memcached styður strengi sem eina gagnategundina. Það hefur arkitektúr viðskiptavinar-miðlara, þar sem helmingur rökfræðinnar gerist á biðlarahlið og hinn helmingurinn á miðlarahlið. Mikilvægt er að viðskiptavinir skilja hvernig á að velja hvaða netþjóni á að skrifa á eða lesa af fyrir hlut. Einnig veit viðskiptavinur mjög vel hvað hann á að gera ef hann getur ekki tengst netþjóni.

Þó að það sé dreift skyndiminnikerfi, styður þannig þyrping, eru Memcached netþjónarnir aftengdir hver frá öðrum (þ.e.a.s. þeir eru ekki meðvitaðir hver um annan). Þetta þýðir að það er enginn afritunarstuðningur eins og í Redis. Þeir skilja líka hvernig á að geyma og sækja hluti, stjórna hvenær á að vísa út eða endurnýta minni. Þú getur aukið tiltækt minni með því að bæta við fleiri netþjónum.

Það styður auðkenningu og dulkóðun í gegnum TLS frá og með Memcached 1.5.13, en þessi eiginleiki er enn á tilraunastigi.

3. Apache Ignite

Apache Ignite, einnig ókeypis og opinn uppspretta, lárétt stigstærð dreifð lykilgildi í minni, skyndiminni og gagnagrunnskerfi með mörgum gerðum sem býður upp á öflug vinnslu API til að reikna út dreifð gögn. Það er líka gagnanet í minni sem hægt er að nota annað hvort í minni eða með Ignite native persistence. Það keyrir á UNIX-líkum kerfum eins og Linux og einnig Windows.

Það býður upp á margþætta geymslu, fullkominn SQL stuðning og ACID (Atomicity, Consistency, Isolation, Durability) viðskipti (aðeins stutt á lykilgildi API stigi) yfir marga klasa hnúta, samsetta vinnslu og vélanám. Það styður sjálfvirka samþættingu við hvaða gagnagrunna sem er þriðja aðila, þar á meðal hvaða RDBMS sem er (eins og MySQL, PostgreSQL, Oracle Database, og svo framvegis) eða NoSQL verslanir.

Það er mikilvægt að hafa í huga að þó Ignite virki sem SQL gagnageymsla, þá er það ekki að fullu SQL gagnagrunnur. Það sér greinilega um takmarkanir og vísitölur miðað við hefðbundna gagnagrunna; það styður aðal- og aukavísitölur, en aðeins aðalvísitölur eru notaðar til að framfylgja sérstöðu. Að auki hefur það engan stuðning við erlenda lykilþvingun.

Ignite styður einnig öryggi með því að leyfa þér að virkja auðkenningu á þjóninum og veita notendaskilríki fyrir viðskiptavini. Það er einnig stuðningur við SSL fals samskipti til að veita örugga tengingu milli allra Ignite hnúta.

Ignite hefur mörg notkunartilvik sem fela í sér skyndiminniskerfi, vinnuálagshröðun kerfis, rauntíma gagnavinnslu og greiningu. Það er einnig hægt að nota sem grafmiðlægan vettvang.

4. Couchbase Server

Couchbase Server er einnig opinn uppspretta, dreifður, NoSQL skjalamiðaður þátttökugagnagrunnur sem geymir gögn sem hluti á lykilgildissniði. Það virkar á Linux og öðrum stýrikerfum eins og Windows og Mac OS X. Það notar eiginleikaríkt, skjalamiðað fyrirspurnartungumál sem kallast N1QL sem býður upp á öfluga fyrirspurna- og flokkunarþjónustu til að styðja við aðgerðir undir millisekúndu á gögnum.

Athyglisverðir eiginleikar þess eru hröð lykilgildisverslun með stýrðu skyndiminni, sérsmíðuðum vísitölurum, öflugri fyrirspurnarvél, stækkaðri arkitektúr (fjölvíddarstærð), stór gögn og SQL samþætting, öryggi í fullri stafla og mikið aðgengi .

Couchbase Server kemur með innfæddum þyrpingarstuðningi fyrir mörg tilvik, þar sem klasastjórnunartól samhæfir alla hnútavirkni og veitir viðskiptavinum einfaldlega þyrpingarviðmót. Mikilvægt er að þú getur bætt við, fjarlægt eða skipt út hnútum eftir þörfum, án þess að stöðva tími. Það styður einnig gagnaafritun yfir hnúta klasa, sértæka afritun gagna yfir gagnaver.

Það útfærir öryggi í gegnum TLS með því að nota sérstaka Couchbase Server-tengi, mismunandi auðkenningarkerfi (með því að nota annaðhvort skilríki eða skilríki), hlutverkatengda aðgangsstýringu (til að athuga hvern auðkennda notanda fyrir kerfisskilgreind hlutverk sem þeim er úthlutað), endurskoðun, annálum og lotum .

Notkunartilvik þess fela í sér samræmt forritunarviðmót, leit í fullri texta, samhliða fyrirspurnavinnslu, skjalastjórnun og flokkun og margt fleira.

5. Hazelcast IMDG

Hazelcast IMDG (In-Memory Data Grid) er opinn uppspretta, léttur, fljótur og stækkanlegur millihugbúnaður fyrir gagnanet í minni, sem veitir teygjanlega skalanlega dreifða tölvu í minni. Hazelcast IMDG keyrir einnig á Linux, Windows og Mac OS X og hvaða öðrum vettvangi sem er með Java uppsett. Það styður fjölbreytt úrval af sveigjanlegum og tungumálauppbyggingum eins og Map, Set, List, MultiMap, RingBuffer og HyperLogLog.

Hazelcast er jafningi-til-jafningi og styður einfalda sveigjanleika, klasauppsetningu (með valkostum til að safna tölfræði, fylgjast með með JMX samskiptareglum og stjórna klasanum með gagnlegum tólum), dreifðri gagnauppbyggingu og atburðum, gagnasöfnun og færslum. Það er líka óþarfi þar sem það geymir öryggisafrit af hverri gagnafærslu á mörgum meðlimum. Til að stækka þyrpinguna þína skaltu einfaldlega byrja á öðru tilviki, gögn og afrit eru sjálfkrafa og jafnt í jafnvægi.

Það býður upp á safn gagnlegra API til að fá aðgang að örgjörvum í þyrpingunni þinni fyrir hámarks vinnsluhraða. Það býður einnig upp á dreifðar útfærslur á fjölda þróunarvænna viðmóta frá Java eins og Map, Queue, ExecutorService, Lock og JCache.

Öryggiseiginleikar þess innihalda klasameðlimi og sannvottun viðskiptavinar og aðgangsstýringar á aðgerðum viðskiptavinar í gegnum JAAS byggða öryggiseiginleika. Það gerir einnig kleift að stöðva falstengingar og fjaraðgerðir framkvæmdar af viðskiptavinum, dulkóðun á falsstigi samskipta milli klasameðlima og gera SSL/TLS falssamskipti kleift. En samkvæmt opinberu skjölunum eru flestir þessara öryggiseiginleika í boði í Enterprise útgáfunni.

Vinsælasta notkunartilvikið er dreift skyndiminni í minni og gagnageymslu. En það er líka hægt að nota það fyrir veflotuþyrping, NoSQL skipti, samhliða vinnslu, auðveld skilaboð og margt fleira.

6. Mcrouter

Mcrouter er ókeypis og opinn uppspretta Memcached samskiptareglur til að skala Memcached dreifingu, þróað og viðhaldið af Facebook. Það býður upp á Memcached ASCII samskiptareglur, sveigjanlega leið, stuðning fyrir marga klasa, fjölþrepa skyndiminni, samtengingu tenginga, mörg kjötkássakerfi, forskeytileið, endurteknar laugar, skugga framleiðsluumferðar, endurstillingu á netinu og heilsuvöktun áfangastaðar/sjálfvirkrar bilunar.

Að auki styður það upphitun á köldu skyndiminni, ríka tölfræði og villuleitarskipanir, áreiðanleg eyðingargæði þjónustu, stór gildi, útsendingaraðgerðir og kemur með IPv6 og SSL stuðningi.

Það er notað á Facebook og Instagram sem kjarnahluti skyndiminniinnviða, til að sinna næstum 5 milljörðum beiðna á sekúndu þegar mest er.

7. Varnish Cache

Apache og margir aðrir, til að hlusta á sjálfgefna HTTP-tengi til að taka á móti og framsenda beiðnir viðskiptavinarins til vefþjónsins og skila svari vefþjónsins til viðskiptavinarins.

Á meðan hann starfar sem milliliður milli viðskiptavina og upprunanetþjónanna býður Varnish Cache upp á nokkra kosti, aðalatriðið er að vista efni á vefnum í minni til að létta álagi vefþjónsins og bæta afhendingarhraða til viðskiptavina.

Eftir að hafa fengið HTTP beiðni frá biðlara, sendir hann hana áfram til bakenda vefþjónsins. Þegar vefþjónninn svarar vistar Varnish innihaldið í minni og skilar svarinu til viðskiptavinarins. Þegar viðskiptavinurinn biður um sama efni mun Varnish þjóna því úr skyndiminnisauka umsóknarsvarinu. Ef það getur ekki þjónað efni úr skyndiminni er beiðnin send til bakendans og svarið er í skyndiminni og afhent viðskiptavininum.

Varnish er með VCL (Varnish Configuration Language – sveigjanlegt lénssértækt tungumál) notað til að stilla hvernig beiðnir eru meðhöndlaðar og fleira, Varnish Modules (VMODS) sem eru viðbætur fyrir Varnish Cache.

Öryggislega séð styður Varnish Cache skráningu, beiðni um skoðun og inngjöf, auðkenningu og heimild í gegnum VMODS, en það skortir innbyggðan stuðning fyrir SSL/TLS. Þú getur virkjað HTTPS fyrir Varnish Cache með því að nota SSL/TLS umboð eins og Hitch eða NGINX.

Þú getur líka notað Varnish Cache sem eldvegg fyrir vefforrit, DDoS árásarvörn, hotlinking verndari, álagsjafnvægi, samþættingarpunkt, einskráningargátt, auðkenningar- og heimildarstefnukerfi, skyndilausn fyrir óstöðuga bakenda og HTTP beiðnibeini.

8. Squid Caching Proxy

Önnur ókeypis og opinn uppspretta, framúrskarandi og mikið notaður umboðs- og skyndiminni lausn fyrir Linux er Squid. Það er lögun-ríkur vef proxy skyndiminni hugbúnaður sem veitir proxy og skyndiminni þjónustu fyrir vinsælar netsamskiptareglur þar á meðal HTTP, HTTPS og FTP. Það keyrir einnig á öðrum UNIX kerfum og Windows.

Rétt eins og Varnish Cache, tekur það við beiðnum frá viðskiptavinum og sendir þær til tilgreindra bakenda netþjóna. Þegar bakendaþjónninn svarar geymir hann afrit af efninu í skyndiminni og sendir það til viðskiptavinarins. Framtíðarbeiðnir um sama efni verða sendar úr skyndiminni, sem leiðir til hraðari afhendingu efnis til viðskiptavinarins. Þannig að það fínstillir gagnaflæðið milli biðlara og netþjóns til að bæta afköst og vistar oft notað efni til að draga úr netumferð og spara bandbreidd.

Smokkfiskur kemur með eiginleikum eins og að dreifa álaginu yfir samskiptastigveldi proxy-þjóna, framleiða gögn um vefnotkunarmynstur (t.d. tölfræði um mest heimsóttar síður), gerir þér kleift að greina, fanga, loka, skipta út eða breyta skilaboðunum sem eru send umboð.

Það styður einnig öryggiseiginleika eins og ríka aðgangsstýringu, heimild og auðkenningu, SSL/TLS stuðning og virkniskráningu.

9. NGINX

setja upp vefinnviði. Það er HTTP þjónn, öfugur proxy þjónn, póst proxy þjónn og almennur TCP/UDP proxy þjónn.

NGINX býður upp á helstu skyndiminni möguleika þar sem innihald í skyndiminni er geymt í viðvarandi skyndiminni á diski. Það heillandi við skyndiminni innihald í NGINX er að hægt er að stilla það til að skila gömlu efni úr skyndiminni þegar það getur ekki sótt nýtt efni frá upprunaþjónum.

NGINX býður upp á fjölda öryggiseiginleika fyrir HTTP grunnauðkenningu, auðkenningu byggða á niðurstöðu undirbeiðnarinnar, JWT auðkenningu, takmarka aðgang að HTTP auðlindum umboðsaðila, takmarka aðgang eftir landfræðilegri staðsetningu og margt fleira.

Það er almennt notað sem öfugt umboð, álagsjafnvægi, SSL terminator/öryggisgátt, forritshraða/innihalds skyndiminni og API gátt í forritastafla. Það er einnig notað fyrir streymimiðla.

10. Apache umferðarþjónn

Síðast en ekki síst höfum við Apache Traffic Server, opinn, hraðvirkan, stigstærðan og stækkanlegan skyndiminni proxy-þjón með stuðningi fyrir HTTP/1.1 og HTTP/2.0. Það er hannað til að bæta skilvirkni og afköst netkerfisins með því að vista efni sem oft er aðgangur að á jaðri netsins, fyrir fyrirtæki, ISP (netþjónaveitur), burðarásarveitur og fleira.

Það styður bæði áfram og afturábak umboð HTTP/HTTPS umferðar. Það getur líka verið stillt til að keyra í annarri eða báðum stillingum samtímis. Það er með viðvarandi skyndiminni, viðbætur API; stuðningur við ICP (Internet Cache Protocol), ESI (Edge Side Includes); Keep-Alive og fleira.

Hvað öryggi varðar styður Traffic Server stjórn á aðgangi viðskiptavinar með því að leyfa þér að stilla viðskiptavini sem hafa leyfi til að nota proxy skyndiminni, SSL lokun fyrir bæði tengingar milli viðskiptavina og sjálfs síns, og á milli sjálfs síns og upprunamiðlarans. Það styður einnig auðkenningu og grunnheimild í gegnum viðbót, skráningu (af sérhverri beiðni sem það fær og hverja villu sem það finnur) og eftirlit.

Umferðarþjónn er hægt að nota sem skyndiminni á vefnum, áfram umboð, öfugt umboð, gagnsætt umboð, álagsjafnvægi eða í skyndiminni stigveldi.

Skyndiminni er ein hagkvæmasta og langreyndasta tækni til að afhenda efni á vefnum sem er fyrst og fremst hönnuð til að auka hraða vefsvæða eða forrita. Það hjálpar til við að draga úr álagi netþjónsins, leynd og netbandbreidd vegna þess að gögn í skyndiminni eru send til viðskiptavina, þannig að viðbragðstími forrita og afhendingarhraði til viðskiptavina er bættur.

Í þessari grein skoðuðum við helstu opna skyndiminnistækin til að nota á Linux kerfum. Ef þú þekkir önnur opinn uppspretta skyndiminnisverkfæri sem ekki eru skráð hér vinsamlegast deildu með okkur í gegnum athugasemdaformið hér að neðan. Þú getur líka deilt hugsunum þínum um þessa grein með okkur.