Hacker News

I-Discord: Isifundo esiyisibonelo ekuthuthukiseni ukusebenza

I-Discord: Isifundo esiyisibonelo ekuthuthukiseni ukusebenza Lokhu kuhlaziywa okuphelele kokungavumelani kunikeza ukuhlolwa okuningiliziwe kwezingxenye zakho eziyinhloko kanye nemithelela ebanzi. Izindawo Ezibalulekile Zokugxila Ingxoxo igxile kokuthi: Izindlela eziyinhloko kanye ne-p...

6 min read Via newsletter.fullstack.zip

Mewayz Team

Editorial Team

Hacker News

I-Discord: I-Case Study Ekuthuthukiseni Ukusebenza

Uhambo lokuthuthukisa ukusebenza kwe-Discord lume njengesinye sezibonelo ezifundisayo kakhulu kubunjiniyela besofthiwe yesimanje, ebonisa ukuthi inkundla ingakala kanjani isuka ezinkulungwaneni iye kumakhulu ezigidi zabasebenzisi ngaphandle kokudela isivinini noma ukwethembeka. Ngokuhlola izinqumo zobunjiniyela be-Discord - ukusuka ekuthuthweni kwesizindalwazi kuya ekwakhiweni kwemiyalezo yesikhathi sangempela - amabhizinisi angakhipha amasu afakazelwe okwakha amapulatifomu asebenza ngaphansi kwengcindezi.

Yini I-Core Mechanisms Power Discord's Performance at Scale?

Ingqalasizinda ye-Discord yakhelwe phezu kwefilosofi yokuhwebelana kobunjiniyela ngamabomu. Yakhelwe okokuqala ku-Python ne-MongoDB, inkundla yasheshe yahlangabezana nezinkinga njengoba isisekelo sabasebenzisi bayo siqhuma. Ithimba lonjiniyela lenze isinqumo esibalulekile sezakhiwo: ukusuka kusitaki se-monolithic uye ekwakhiweni okugxile kusevisi, okuvumela izingxenye ngazinye ukuthi zikwazi ukukala ngokuzimela.

Okuyisisekelo sokusebenza kwe-Discord ukusebenzisa kwayo i-Elixir kanye nomshini obonakalayo we-Erlang BEAM kusendlalelo sawo sokulayeza kwesikhathi sangempela. I-BEAM VM yakhelwe inhloso ngesikhathi esisodwa, amasistimu abekezelela amaphutha - lokho kanye okudingwa inkundla ephethe izigidigidi zemiyalezo ngosuku. Ngaleso sikhathi, isendlalelo se-Discord's API sagcina sibhalwe kabusha ku-Rust, sinikeza ukuphepha kwenkumbulo nokusebenza okungaphezulu kweqanda iPython engakwazi ukukufanisa esikalini.

Umphumela uwuhlelo lapho izigidi zoxhumo lwe-WebSocket ngasikhathi sinye lunakekelwa ngezikhathi zokulethwa kwemilayezo engaphansi kwe-50ms, ngisho naphakathi kokusetshenziswa okuphezulu. Lokhu bekungeyona ingozi - bekungumkhiqizo wokuphindaphinda kwephrofayela, ukuhlonza ibhodlela, kanye nokubhala kabusha okuhlosiwe kwezingxenye zesistimu ezigcizelelwe kakhulu.

I-Discord Iyixazulule Kanjani I-Database Bottleneck Yayo Edume Kakhulu?

Enye yezinselele ze-Discord ezibhalwe esidlangalaleni kakhulu zobunjiniyela ihilela u-Cassandra, isizindalwazi esabalalisiwe eyisebenzise ukugcina umlando womlayezo. Njengoba inkundla ikhula, ukubambezeleka kokufunda kwehla kakhulu - hhayi ngoba u-Cassandra ubengakhethi kahle, kodwa ngenxa yokuthi amaphethini okusebenzisa e-Discord ayeshintshe kakhulu. Ama-partitions ashisayo, lapho inani elingalingani lokufundwayo eligxile ezindaweni ezithile zedatha, kubangele ukwehla okungalindelekile.

Impendulo yethimba lonjiniyela kwaba ukuthuthela okuyingqophamlando ku-ScyllaDB, isizindalwazi esihambisana ne-Cassandra esibhalwe nge-C++. Ukufuduka kwehlise ukubambezeleka kokufunda kwe-p99 kusuka ku-40–125ms kwehle kuya kuma-millisecond enedijithi eyodwa ezimweni eziningi. Okubaluleke nakakhulu, kunciphise ubunkimbinkimbi bokusebenza bokuphatha iqoqo, kukhulula izinsiza zobunjiniyela ukuze kugxilwe ekuthuthukisweni kwesici kunokucisha ingqalasizinda.

"Ukuthuthukiswa kokusebenza okungcono kakhulu akuhlali kuyinkimbinkimbi kakhulu ngokobuchwepheshe - yikhona okwehlisa ubunkimbinkimbi ngenkathi kubhekwana ngqo ne-bottleneck ebangela ubuhlungu bomsebenzisi." — Umgomo oqinisekiswe yindaba yokuthutha egciniwe ye-Discord.

Lesi simo sibonisa isifundo esibucayi kunoma iyiphi inkundla ekhulayo: ithuluzi elilungile lesigaba esisodwa sokukhula lingase libe ithuluzi elingalungile kwesinye. Ukulinganisa okuqhubekayo kanye nokuzimisela ukuthuthela kwelinye izwe akuzona izimpawu zokungahleleli kahle — kuyizimpawu zokuvuthwa kobunjiniyela.

Iziphi Izifundo Zokusetshenziswa Komhlaba Wangempela Amabhizinisi Angazisebenzisa?

Uhambo lokuthuthukisa lwe-Discord belungelona nje lwetiyori - lukhiqize isethi yemikhuba ephindaphindekayo esebenza kunoma yiliphi ibhizinisi eliqhutshwa isofthiwe. Okuthathwayo okungenziwa kakhulu kuhlanganisa:

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
  • Iphrofayela ngaphambi kokuthuthukisa: I-Discord ihlale ikhombe izithiyo ngqo ngokulinganisa kunokuqagela, ivimbela umzamo olahlekile ezindleleni ezingabalulekile.
  • Khetha izilimi zokuqala ze-concurrency-first ze-I/O-heavy workload: Ukuthuthela ku-Elixir ukuze udlulise umlayezo kunciphise ukuphakama kwe-CPU ngokumangazayo uma kuqhathaniswa namamodeli ochungechunge lokuxhumana ngakunye.
  • Yehlisa isitoreji kukhompyutha: Ngokuhlukanisa isitoreji somlayezo kusukela kusendlalelo sokulethwa kwesikhathi sangempela, i-Discord inike amandla isendlalelo ngasinye ukuthi sikale ngokuzimele ngokusekelwe kuphethini yaso yokulayisha.
  • Yamukela ukufuduka okwandayo ngokubhala kabusha kwe-big-bang: Amasistimu abalulekile ahanjiswe isevisi ngesevisi, enciphisa ubungozi futhi evumela ukuqinisekiswa okuqhubekayo kwezinzuzo zokusebenza.
  • Tshala imali ekubonakaleni kusenesikhathi: Amandla e-Discord okuthola ukwehla ngokushesha abangelwa ukutshalwa kwezimali okujulile ekulandeleleni okusabalalisiwe, amadeshibhodi wamamethrikhi, nengqalasizinda yokuxwayisa eyakhiwe ngaphambi kokuba kuvele izinkinga.

Ingabe Indlela Ye-Discord Iqhathaniswa Kanjani Nezinye Zezimboni?

Imodeli yokuthuthukisa ye-Discord iqhathaniseka ngokunengqondo nendlela amapulatifomu afana ne-Slack ne-Microsoft Teams abhekane ngayo nezinselele ezifanayo. U-Slack, isibonelo, uncike kakhulu kusitaki esisekelwe ku-Node.js kanye nokuphathwa kwe-WebSocket kusendlalelo sohlelo lokusebenza, emukela inkumbulo ephezulu ngokushintshanisa ukujwayelana konjiniyela. Amaqembu, esekelwa ingqalasizinda ye-Azure ye-Microsoft, athatha indlela yokuqala yebhizinisi - ukubeka phambili ukuthobela kanye nobubanzi bokuhlanganisa ngaphezu kokusebenza kwe-latency eluhlaza.

Isihlukanisi se-Discord bekuwukuzimisela kwayo ukusebenzisa ubuchwepheshe obungajwayelekile kangako - i-Elixir, Rust, i-ScyllaDB - lapho lobo buchwepheshe bebufaneleka kangcono ezinkingeni ezithile. Le ndlela yokukhetha ubuchwepheshe kuneyombono iveze izinzuzo ezingalinganiseka ngaphandle kokudinga ukubhalwa kabusha kweplathifomu nganoma yisiphi isikhathi.

Kumabhizinisi ahlola izitaki zawo zeplathifomu, isibonelo se-Discord siphikisana ngokuqinile "nentuthuko eqhutshwa kabusha" - ukukhetha ubuchwepheshe bokuvelela komkhakha wabo kunokufanela inkinga. Umbuzo awulokothi "yini edumile?" kodwa "yini exazulula lesi singqinamba sokusebenza?"

Yibuphi Ubufakazi Obuqinile Obufakazela Amasu Okuthuthukisa E-Discord Ayasebenza?

Imiphumela yezinqumo zobunjiniyela be-Discord ibhaliwe futhi iyalinganiseka. Ngemuva kokufuduka kwe-ScyllaDB, i-Discord ibike ukwehliswa kwesibalo sama-node okuyi-10x ngenkathi ngasikhathi sinye ithuthukisa ukubambezeleka. Ukubhalwa kabusha kwe-Rust API kususe zonke izigaba zamaphutha ahlobene nenkumbulo ngenkathi kunciphisa izikhathi zokuphendula isevisi. Ukuthunyelwa komlayezo ngesilinganiso kusebenza ngokungaguquki ngaphansi komkhawulo ongu-50ms ngisho naphakathi kwemicimbi emikhulu yemidlalo - izikhathi eziye zacindezela isistimu ukuba ibe nemikhawulo yayo.

Ngo-2023, i-Discord ibicubungula imizuzu engaphezu kwezigidi eziyizinkulungwane ezingu-4 yokuxhumana ngezwi nsuku zonke kuwo wonke amaseva asebenzayo angaphezu kwezigidi ezingu-19. Lawa akuwona amamethrikhi ayize — awubufakazi bokuthi izinqumo zezakhiwo ezenziwe ngaphansi kwengcindezi yobunjiniyela zikhiqize izinzuzo ezihlala isikhathi eside, ezihlanganisa izinzuzo zokusebenza ngokuhamba kwesikhathi.

Imibuzo Evame Ukubuzwa

Kungani i-Discord isuka ku-Python yaya ku-Rust ngesendlalelo sayo se-API?

I-Global Interpreter Lock ye-Python (GIL) ikhawulela ngokuyisisekelo amandla ayo okusebenzisa ikhodi ngesikhathi esifanayo, okudala ukufakwa kokufakwayo okuye kwaba yinkinga kakhulu njengoba ivolumu yesicelo se-Discord's API ikhula. I-Rust inikeze ukukhiqiza okuqhathanisekayo konjiniyela wekhodi yeleveli yesistimu ngaphandle kokusebenza okuphezulu kwesikhathi, ukumiswa okwesikhashana kokuqoqwa kukadoti, noma imikhawulo ehambisanayo ye-Python — ikhiqiza isendlalelo se-API esasishesha futhi sibikezeleka nakakhulu ngaphansi komthwalo.

Iliphi iphutha elikhulu kakhulu elenziwa izinkundla zokuthuthukisa ukusebenza esikalini?

Iphutha elivame kakhulu ukuthuthukisa ngaphambi kwesikhathi nangobubanzi kunokuba uqondise ibhodlela elilinganiselwe elidala ukuwohloka. Ubunjiniyela bokusebenza busebenza kakhulu uma buqhutshwa idatha yokwenza iphrofayela namamethrikhi omthelela wabasebenzisi. I-Discord iphumelele ngokungaguquki ngokuhlonza umkhawulo owodwa onomthelela omkhulu kakhulu - ukubambezeleka kwesizindalwazi, ukuphuma kwe-API, ukuvumelana kwe-WebSocket - nokukuxazulula ngokuqondile ngaphambi kokudlulela kokulandelayo.

Inkundla yezinga lebhizinisi ingazisebenzisa kanjani izifundo zokusebenza ze-Discord ngaphandle kwezinsiza zobunjiniyela bebhizinisi?

Izimiso zehla ngempumelelo. Noma iyiphi inkundla ingasebenzisa amathuluzi okubonakala, izindawo zokugcina zephrofayela ngaphansi komthwalo ongokoqobo, futhi yenze izinqumo zesitaki ezikhulayo ngokusekelwe kudatha esikhundleni sokuzenzakalelayo. Amaplathifomu ahlangene ahlanganisa inkimbinkimbi yengqalasizinda - ukuphatha ukugcinwa kwesikhashana, ukuxhumana ngesikhathi sangempela, nokugcinwa kwedatha ezingeni leplathifomu - avumela amabhizinisi akhulayo ukuthi azuze ekwakhiweni kwezakhiwo okuthuthukisiwe ngaphandle kokudinga ukuzakhela kabusha.


Ucwaningo lwecala lokuthuthukisa ukusebenza kwe-Discord lufakazela ukuthi isikali esimeme sifinyelelwa ngezinqumo zezakhiwo eziqhutshwa ngamabomu — hhayi ngokuphonsa izinsiza ezinkingeni. Noma ngabe usebenzisa inkundla yokuxhumana noma isistimu yokusebenza yebhizinisi enamamojula amaningi, izimiso ziyafana: linganisa ngokungaphezi, hlukanisa ngobuhlakani, bese ukhetha amathuluzi afana nenkinga yangempela.

Uma ibhizinisi lakho lifuna inkundla esebenzisa le mithetho ngaphandle kwebhokisi — ukuphatha ukusebenza, ukukala, nobunkimbinkimbi bokusebenza ukuze ugxile ekukhuleni — hlola i-Mewayz namuhla. Ngamamojula ahlanganisiwe angu-207, abasebenzisi abangu-138,000+, nezinhlelo eziqala nje ku-$19/ngenyanga, i-Mewayz yakhelwe ukukala nebhizinisi lakho kusukela osukwini lokuqala.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime