Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Mikhail Salosin (tom qab no - MS): - Nyob zoo txhua tus! Kuv lub npe yog Michael. Kuv ua haujlwm ua tus tsim tawm backend ntawm MC2 Software, thiab kuv yuav tham txog kev siv Go hauv qhov backend ntawm Look+ mobile application.

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Puas muaj leej twg nyob ntawm no nyiam hockey?

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Tom qab ntawd daim ntawv thov no yog rau koj. Nws yog rau Android thiab iOS thiab siv los saib tshaj tawm ntawm ntau yam kev sib tw ncaws pob hauv online thiab kaw. Daim ntawv thov kuj muaj ntau yam kev txheeb cais, cov ntawv tshaj tawm, rooj sib tham, kev sib tw thiab lwm yam ntaub ntawv muaj txiaj ntsig zoo rau cov kiv cua.

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Tsis tas li ntawd hauv daim ntawv thov muaj xws li lub sijhawm video, piv txwv li koj tuaj yeem saib lub sijhawm tseem ceeb tshaj plaws ntawm kev sib tw (lub hom phiaj, sib ntaus, tua, thiab lwm yam). Yog tias koj tsis xav saib tag nrho cov kev tshaj tawm, koj tuaj yeem saib tsuas yog qhov nthuav tshaj plaws.

Koj siv dab tsi hauv kev txhim kho?

Lub ntsiab lus tau sau rau hauv Go. API uas cov neeg siv xov tooj sib tham nrog tau sau rau hauv Go. Ib qho kev pabcuam xa cov ntawv ceeb toom rau lub xov tooj ntawm tes kuj tau sau rau hauv Go. Peb kuj yuav tsum tau sau peb tus kheej ORM, uas peb yuav tham txog ib hnub. Zoo, qee qhov kev pabcuam me tau sau rau hauv Go: resizing thiab thauj cov duab rau cov neeg kho ...

Peb siv PostgreSQL ua lub database. Tus editor interface tau sau rau hauv Ruby ntawm Rails siv ActiveAdmin lub pov haum. Ntshuam cov txheeb cais los ntawm cov chaw muab kev txheeb cais tseem sau rau hauv Ruby.

Rau kev xeem API system, peb siv Python unittest. Memcached yog siv los thim API kev them nyiaj hu, "Tus kws ua zaub mov" yog siv los tswj kev teeb tsa, Zabbix yog siv los sau thiab saib xyuas cov ntaub ntawv sab hauv. Graylog2 yog rau sau cov cav, Slate yog API cov ntaub ntawv rau cov neeg siv khoom.

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Kev xaiv raws tu qauv

Thawj qhov teeb meem peb tau ntsib: peb yuav tsum xaiv cov txheej txheem rau kev sib cuam tshuam ntawm cov backend thiab cov neeg siv khoom txawb, raws li cov ntsiab lus hauv qab no ...

  • Qhov tseem ceeb tshaj qhov yuav tsum tau muaj: cov ntaub ntawv ntawm cov neeg siv khoom yuav tsum tau hloov kho raws sijhawm. Ntawd yog, txhua tus neeg uas tab tom saib kev tshaj tawm tam sim no yuav tsum tau txais cov hloov tshiab yuav luag tam sim.
  • Txhawm rau ua kom yooj yim, peb xav tias cov ntaub ntawv synchronized nrog cov neeg siv khoom tsis raug tshem tawm, tab sis muab zais siv cov chij tshwj xeeb.
  • Txhua yam kev thov tsis tshua muaj (xws li kev txheeb cais, pab pawg sib sau ua ke, pab pawg txheeb cais) tau txais los ntawm kev thov GET.
  • Ntxiv rau, lub kaw lus yuav tsum tau yooj yim txhawb 100 txhiab tus neeg siv tib lub sijhawm.

Raws li qhov no, peb muaj ob txoj kev xaiv raws tu qauv:

  1. Websockets. Tab sis peb tsis xav tau cov channel los ntawm tus neeg siv khoom mus rau lub server. Peb tsuas yog xav tau xa cov hloov tshiab los ntawm lub server mus rau tus neeg siv khoom, yog li lub websocket yog qhov kev xaiv tsis tu ncua.
  2. Server-Sent Events (SSE) tuaj lawm xwb! Nws yog qhov yooj yim heev thiab qhov yooj yim txaus siab txhua yam peb xav tau.

Server-Sent Events

Ob peb lo lus hais txog qhov no ua haujlwm li cas ...

Nws khiav saum qhov kev sib txuas http. Tus neeg siv tau xa cov lus thov, tus neeg rau zaub mov teb nrog Cov Ntsiab Lus-Hloov: ntawv nyeem / xwm txheej-kwj thiab tsis kaw qhov kev sib txuas nrog tus neeg siv khoom, tab sis tseem sau cov ntaub ntawv rau kev sib txuas:

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Cov ntaub ntawv tuaj yeem xa tuaj rau hauv hom ntawv pom zoo nrog cov neeg siv khoom. Hauv peb cov ntaub ntawv, peb tau xa nws hauv daim ntawv no: lub npe ntawm cov qauv hloov pauv (tus neeg, tus neeg ua si) raug xa mus rau qhov kev tshwm sim teb, thiab JSON nrog cov tshiab, hloov chaw rau cov neeg ua si raug xa mus rau cov ntaub ntawv teb.

Tam sim no cia peb tham txog yuav ua li cas kev sib cuam tshuam nws tus kheej ua haujlwm.

  • Thawj qhov uas tus neeg siv khoom ua yog txiav txim siab lub sijhawm kawg synchronization nrog cov kev pabcuam tau ua: nws saib nws cov ntaub ntawv hauv zos thiab txiav txim siab hnub hloov pauv zaum kawg sau los ntawm nws.
  • Nws xa ib daim ntawv thov nrog rau hnub no.
  • Hauv kev teb, peb xa nws txhua qhov hloov tshiab uas tau tshwm sim txij li hnub ntawd.
  • Tom qab ntawd, nws ua rau kev sib txuas rau cov channel nyob thiab tsis kaw kom txog thaum nws xav tau cov kev hloov tshiab no:

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Peb xa nws daim ntawv teev cov kev hloov pauv: yog tias ib tus neeg tau txais lub hom phiaj, peb hloov qhov qhab nia ntawm qhov kev sib tw, yog tias nws raug mob, qhov no kuj raug xa mus rau lub sijhawm. Yog li, cov neeg siv khoom tam sim tau txais cov ntaub ntawv hloov tshiab hauv qhov kev sib tw pub. Ib ntus, kom tus neeg siv nkag siab tias tus neeg rau zaub mov tsis tau tuag, tsis muaj dab tsi tshwm sim rau nws, peb xa daim ntawv teev sijhawm txhua 15 vib nas this - kom nws paub tias txhua yam nyob rau hauv kev txiav txim thiab tsis tas yuav rov txuas dua.

Qhov kev sib txuas nyob li cas tau txais kev pabcuam?

  • Ua ntej ntawm tag nrho cov, peb tsim ib tug channel rau hauv uas buffered hloov tshiab yuav tau txais.
  • Tom qab ntawd, peb subscribe rau qhov channel no kom tau txais kev hloov tshiab.
  • Peb teeb lub header qhov tseeb kom tus neeg siv khoom paub tias txhua yam zoo.
  • Xa thawj ping. Peb tsuas sau cov sij hawm sib txuas tam sim no.
  • Tom qab ntawd, peb nyeem los ntawm channel nyob rau hauv ib lub voj kom txog rau thaum lub hloov tshiab channel kaw. Cov channel ib ntus tau txais cov ntawv teev sijhawm tam sim no lossis kev hloov pauv uas peb twb tau sau rau qhib kev sib txuas.

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Thawj qhov teeb meem peb tau ntsib yog cov hauv qab no: rau txhua qhov kev sib txuas qhib nrog tus neeg siv khoom, peb tsim lub timer uas zuam ib zaug txhua 15 vib nas this - nws hloov tawm tias yog tias peb muaj 6 txhiab kev sib txuas qhib nrog ib lub tshuab (nrog rau ib tus neeg rau zaub mov API), 6 txhiab timers raug tsim. Qhov no ua rau lub tshuab tsis tuav lub load yuav tsum. Qhov teeb meem tsis pom tseeb rau peb, tab sis peb tau txais kev pab me ntsis thiab kho nws.

Yog li ntawd, tam sim no peb ping los ntawm tib lub channel los ntawm qhov hloov tshiab tuaj.

Raws li, tsuas muaj ib lub sijhawm uas zuam ib zaug txhua 15 vib nas this.

Muaj ob peb lub luag haujlwm pabcuam ntawm no - xa cov header, ping thiab cov qauv nws tus kheej. Ntawd yog, lub npe ntawm lub rooj (tus neeg, qhov sib tw, lub caij) thiab cov ntaub ntawv hais txog qhov kev nkag tau raug xa mus rau ntawm no:

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Mechanism xa cov tshiab

Tam sim no me ntsis txog qhov twg cov kev hloov pauv tuaj. Peb muaj ob peb tus neeg, cov neeg kho, uas saib kev tshaj tawm hauv lub sijhawm. Lawv tsim txhua yam xwm txheej: ib tus neeg raug xa tawm, ib tus neeg raug mob, qee yam hloov pauv ...

Siv CMS, cov ntaub ntawv nkag mus rau hauv database. Tom qab no, cov ntaub ntawv ceeb toom rau API servers txog qhov no siv lub Mloog / Ceeb Toom. API servers twb xa cov ntaub ntawv no rau cov neeg siv khoom. Yog li, peb tseem ceeb tsuas muaj ob peb lub servers txuas nrog lub database thiab tsis muaj qhov tshwj xeeb thauj khoom ntawm cov ntaub ntawv, vim tias tus neeg siv khoom tsis cuam tshuam ncaj qha nrog cov ntaub ntawv hauv txhua txoj kev:

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

PostgreSQL: Mloog / Ceeb Toom

Lub Koom Haum Mloog / Ceeb Toom hauv Postgres tso cai rau koj ceeb toom rau cov neeg siv khoom uas muaj qee qhov xwm txheej tau hloov pauv - qee cov ntaub ntawv tau tsim hauv cov ntaub ntawv. Txhawm rau ua qhov no, peb sau ib qho yooj yim ua thiab ua haujlwm:

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Thaum ntxig lossis hloov cov ntaub ntawv, peb hu rau qhov kev ceeb toom ua haujlwm ntawm data_updates channel, dhau qhov ntawd lub npe ntawm lub rooj thiab tus cim ntawm cov ntaub ntawv uas tau hloov lossis tso.

Rau txhua lub rooj uas yuav tsum tau synchronized nrog tus neeg siv khoom, peb txhais tau tias lub cim, uas, tom qab hloov / hloov kho cov ntaub ntawv, hu rau cov haujlwm uas tau teev tseg hauv cov swb hauv qab no.
API ua li cas rau cov kev hloov pauv no?

Lub Fanout mechanism yog tsim - nws xa lus rau tus neeg siv khoom. Nws sau tag nrho cov neeg siv khoom raws thiab xa cov hloov tshiab uas nws tau txais los ntawm cov channel no:

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Ntawm no tus qauv pq tsev qiv ntawv, uas txuas rau lub database thiab hais tias nws xav mloog cov channel (data_updates), xyuas tias kev sib txuas yog qhib thiab txhua yam zoo. Kuv tabtom omitting qhov kev kuaj xyuas kom txuag tau qhov chaw (tsis kuaj xyuas yog qhov txaus ntshai).

Tom ntej no, peb asynchronously teem Ticker, uas yuav xa ib tug ping txhua 15 vib nas this, thiab pib mloog cov channel uas peb subscribed rau. Yog tias peb tau txais ping, peb tshaj tawm qhov ping no. Yog tias peb tau txais qee yam kev nkag, ces peb tshaj tawm qhov kev nkag mus rau txhua tus neeg siv ntawm Fanout no.

Fan-out ua haujlwm li cas?

Hauv Lavxias, qhov no txhais tau tias "splitter". Peb muaj ib yam khoom uas sau npe rau cov neeg siv uas xav tau txais qee qhov hloov tshiab. Thiab sai li sai tau qhov kev hloov tshiab tuaj txog rau qhov khoom no, nws faib qhov hloov tshiab no rau tag nrho nws cov neeg siv khoom. Yooj yim txaus:

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Yuav ua li cas nws tau siv hauv Go:

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Muaj ib tug qauv, nws yog synchronized siv Mutexes. Nws muaj ib daim teb uas txuag lub xeev ntawm Fanout kev twb kev txuas mus rau lub database, piv txwv li nws yog tam sim no mloog thiab yuav tau txais kev hloov tshiab, nrog rau cov npe ntawm tag nrho cov muaj raws - daim ntawv qhia, qhov tseem ceeb ntawm uas yog lub channel thiab structuring nyob rau hauv daim ntawv ntawm qhov tseem ceeb (qhov tseem ceeb nws tsis siv nyob rau hauv txhua txoj kev).

Ob txoj hauv kev - Txuas thiab Txiav - tso cai rau peb qhia rau Fanout tias peb muaj kev sib txuas rau lub hauv paus, nws tau tshwm sim thiab qhov kev sib txuas ntawm lub hauv paus tau tawg. Hauv qhov thib ob, koj yuav tsum txiav tawm txhua tus neeg siv khoom thiab qhia lawv tias lawv tsis tuaj yeem mloog dab tsi ntxiv lawm thiab tias lawv rov txuas dua vim qhov kev sib txuas rau lawv tau kaw lawm.

Kuj tseem muaj txoj hauv kev Sau npe yuav ntxiv cov channel rau "cov neeg mloog":

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Muaj ib txoj hauv kev Unsubscribe, uas tshem tawm cov channel los ntawm cov neeg mloog yog tias tus neeg siv cuam tshuam, nrog rau txoj kev tshaj tawm, uas tso cai rau koj xa lus rau txhua tus neeg siv khoom.

Nqe lus nug: - Dab tsi yog kis los ntawm lub channel no?

MS: - Tus qauv uas tau hloov pauv lossis ping yog kis tau (tsuas yog tus lej, tus lej).

MS: - Koj tuaj yeem xa txhua yam, xa cov qauv, luam tawm nws - nws tsuas yog hloov mus rau JSON thiab qhov ntawd yog nws.

MS: - Peb tau txais tsab ntawv ceeb toom los ntawm Postgres - nws muaj lub npe lub rooj thiab tus cim. Raws li lub npe ntawm lub rooj thiab tus lej cim, peb tau txais cov ntaub ntawv peb xav tau, thiab tom qab ntawd peb xa cov qauv no rau kev tshaj tawm.

Infrastructure

Qhov no zoo li cas los ntawm qhov kev xav ntawm infrastructure? Peb muaj 7 hardware servers: ib qho ntawm lawv tau mob siab rau tag nrho cov ntaub ntawv, rau lwm lub tshuab virtual. Muaj 6 daim ntawv theej ntawm API: txhua lub tshuab virtual nrog API khiav ntawm cov khoom siv sib cais - qhov no yog rau kev ntseeg siab.

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Peb muaj ob lub frontends nrog Keepalived ntsia los txhim kho kev nkag mus tau yooj yim, yog li yog tias muaj qee yam tshwm sim, ib qho pem hauv ntej tuaj yeem hloov tau lwm qhov. Kuj - ob daim ntawv theej ntawm CMS.

Kuj tseem muaj tus neeg xa khoom txheeb cais. Muaj DB qhev los ntawm cov ntaub ntawv thaub qab ua ntu zus. Muaj Pigeon Pusher, ib daim ntawv thov uas xa cov ntawv ceeb toom rau cov neeg siv khoom, nrog rau cov khoom siv hauv tsev: Zabbix, Graylog2 thiab kws ua zaub mov.

Qhov tseeb, qhov kev tsim kho vaj tse no yog qhov tsis txaus ntseeg, vim tias 100 txhiab tuaj yeem ua haujlwm nrog tsawg servers. Tab sis muaj hlau - peb siv nws (peb tau hais tias nws ua tau - yog vim li cas tsis).

Pros ntawm Go

Tom qab peb tau ua haujlwm ntawm daim ntawv thov no, cov txiaj ntsig zoo ntawm Go tau tshwm sim.

  • Cool http lub tsev qiv ntawv. Nrog nws koj tuaj yeem tsim ntau heev tawm ntawm lub thawv.
  • Ntxiv rau, cov channel uas tso cai rau peb yooj yim heev los siv lub tshuab xa cov ntawv ceeb toom rau cov neeg siv khoom.
  • Qhov zoo tshaj plaws Race detector tso cai rau peb tshem tawm ntau yam kab mob tseem ceeb (staging infrastructure). Txhua yam uas ua haujlwm ntawm staging yog launched, muab tso ua ke nrog tus yuam sij Haiv neeg; thiab peb, raws li, tuaj yeem saib cov txheej txheem tsim kho kom pom tias peb muaj teeb meem dab tsi.
  • Minimalism thiab simplicity ntawm cov lus.

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

Peb tab tom nrhiav rau cov neeg tsim khoom! Yog leej twg xav tau, thov.

Lus nug

Cov lus nug los ntawm cov neeg tuaj saib (tom qab no - B): - Nws zoo li kuv tias koj tsis nco txog ib qho tseem ceeb ntawm Fan-out. Kuv puas yog qhov nkag siab tias thaum koj xa cov lus teb rau tus neeg siv khoom, koj thaiv yog tus neeg siv khoom tsis xav nyeem?

MS: - Tsis yog, peb tsis thaiv. Ua ntej, peb muaj tag nrho cov no qab nginx, uas yog, tsis muaj teeb meem nrog cov neeg siv qeeb. Qhov thib ob, tus neeg siv khoom muaj ib lub channel nrog tsis muaj - qhov tseeb, peb tuaj yeem tso mus txog ib puas qhov hloov tshiab nyob rau ntawd ... Yog tias peb tsis tuaj yeem sau rau lub channel, ces nws yuav deletes nws. Yog tias peb pom tias cov channel raug thaiv, ces peb tsuas yog kaw cov channel, thiab qhov ntawd yog nws - tus neeg siv yuav rov txuas dua yog tias muaj teeb meem tshwm sim. Yog li ntawd, hauv paus ntsiab lus, tsis muaj qhov thaiv ntawm no.

Hauv: - Puas yog nws tsis tuaj yeem xa cov ntaub ntawv tam sim rau Mloog / Ceeb Toom, thiab tsis yog daim ntawv teev npe?

MS: - Mloog / Ceeb Toom muaj qhov txwv ntawm 8 txhiab bytes ntawm preload nws xa. Hauv txoj ntsiab cai, nws yuav xa tau yog tias peb tab tom soj ntsuam me me ntawm cov ntaub ntawv, tab sis nws zoo li kuv tias txoj kev no [txoj kev peb ua nws] yooj yim dua. Cov kev txwv yog nyob rau hauv Postgres nws tus kheej.

Hauv: - Puas yog cov neeg siv khoom tau txais kev hloov tshiab ntawm kev sib tw uas lawv tsis nyiam?

MS: - Feem ntau, yog. Raws li txoj cai, muaj 2-3 qhov sib tw ua ke, thiab txawm tias tsis tshua muaj. Yog tias tus neeg siv khoom saib ib yam dab tsi, feem ntau nws tab tom saib qhov kev sib tw uas tab tom mus. Tom qab ntawd, tus neeg siv khoom muaj cov ntaub ntawv hauv zos uas tag nrho cov kev hloov tshiab no tau ntxiv, thiab txawm tias tsis muaj kev sib txuas hauv Is Taws Nem, tus neeg siv tuaj yeem saib tag nrho cov kev sib tw dhau los uas nws tau hloov kho. Qhov tseem ceeb, peb synchronize peb database ntawm tus neeg rau zaub mov nrog tus neeg siv khoom hauv zos database kom nws tuaj yeem ua haujlwm offline.

Hauv: - Vim li cas koj thiaj ua koj tus kheej ORM?

Alexey (ib tus tsim tawm ntawm Saib +): - Lub sijhawm ntawd (nws yog ib xyoos dhau los) muaj ORMs tsawg dua li tam sim no, thaum muaj ntau ntawm lawv. Kuv nyiam tshaj plaws txog feem ntau ORMs tawm muaj yog tias feem ntau ntawm lawv khiav ntawm qhov khoob khoob. Ntawd yog, cov txheej txheem hauv ORMs tau npaj txhij los ua txhua yam: tus qauv, tus qauv taw qhia, tus lej, ib yam dab tsi tsis cuam tshuam ...

Peb ORM tsim cov qauv raws li cov qauv ntaub ntawv. Kuv tus kheej. Thiab yog li ntawd txhua txoj hauv kev yog pob zeb, tsis txhob siv kev xav, thiab lwm yam. Lawv lees txais cov qauv thiab cia siab tias yuav siv cov qauv uas tuaj.

Hauv: – Muaj pes tsawg tus neeg koom nrog?

MS: - Thaum pib, ob tug neeg koom. Peb pib qhov chaw nyob rau lub Rau Hli, thiab lub yim hli ntuj lub ntsiab yog npaj txhij (thawj version). Muaj kev tso tawm rau lub Cuaj Hli.

Hauv: - Qhov twg koj piav txog SSE, koj tsis siv sijhawm. Yog vim li cas?

MS: - Yuav kom ncaj ncees, SSE tseem yog html5 raws tu qauv: tus qauv SSE yog tsim los sib txuas lus nrog browsers, raws li kuv nkag siab. Nws muaj cov yam ntxwv ntxiv kom cov browsers tuaj yeem txuas rov qab (thiab lwm yam), tab sis peb tsis xav tau lawv, vim tias peb muaj cov neeg siv khoom uas tuaj yeem siv cov logic rau kev sib txuas thiab tau txais cov ntaub ntawv. Peb tsis tau ua SSE, tab sis qhov zoo ib yam li SSE. Qhov no tsis yog tus txheej txheem nws tus kheej.
Tsis muaj kev xav tau. Raws li kuv nkag siab, cov neeg siv tau siv cov txheej txheem kev sib txuas yuav luag los ntawm kos. Lawv yeej tsis quav ntsej.

Hauv: - Dab tsi ntxiv cov khoom siv uas koj tau siv?

MS: - Peb nquag siv govet thiab golint los ua kom cov style sib koom ua ke, nrog rau gofmt. Tsis muaj dab tsi ntxiv.

Hauv: - Koj siv dab tsi los daws qhov teeb meem?

MS: - Kev debugging feem ntau tau ua los ntawm kev sim. Peb tsis tau siv ib qho debugger lossis GOP.

Hauv: - Koj puas tuaj yeem xa rov qab cov swb qhov twg Publish muaj nuj nqi yog siv? Puas yog ib tsab ntawv hloov pauv npe ua rau koj tsis meej pem?

MS: - Tsis muaj. Lawv muaj ib tug ncaj "nqaim" Scope ntawm visibility. Lawv tsis siv nyob qhov twg tsuas yog nyob ntawm no (tshwj tsis yog rau lub internals ntawm chav kawm ntawv no), thiab nws yog heev compact - nws tsuas siv 7 kab.

Hauv: - Cas nws tseem tsis txawj xav...

MS: - Tsis yog, tsis yog, qhov no yog code tiag! Nws tsis yog hais txog style. Nws tsuas yog qhov siv tau zoo, chav kawm me me - tsuas yog 3 lub teb hauv chav kawm ...

Mikhail Salosin. Golang Meetup. Siv Go hauv qhov backend ntawm Look+ app

MS: - Los ntawm thiab loj, tag nrho cov ntaub ntawv uas yog synchronized nrog cov neeg siv khoom (lub caij sib tw, players) tsis hloov. Hais lus ntxhib, yog tias peb ua lwm yam kev ua si uas peb yuav tsum tau hloov qhov kev sib tw, peb tsuas yog coj txhua yam mus rau hauv tus account tshiab ntawm tus neeg siv khoom, thiab cov qub versions ntawm tus neeg siv yuav raug txwv.

Hauv: – Puas muaj tej pob khoom tswj hwm kev vam khom thib peb?

MS: - Peb siv mus dep.

Hauv: - Muaj qee yam hais txog vis dis aus hauv lub ntsiab lus ntawm tsab ntawv ceeb toom, tab sis tsis muaj dab tsi hauv tsab ntawv ceeb toom txog video.

MS: - Tsis yog, Kuv tsis muaj dab tsi hauv cov ncauj lus hais txog cov yeeb yaj kiab. Nws hu ua "Saib +" - uas yog lub npe ntawm daim ntawv thov.

Hauv: - Koj hais tias nws yog streamed rau cov neeg siv khoom? ..

MS: - Peb tsis tau koom nrog hauv streaming video. Qhov no tau ua tiav los ntawm Megafon. Yog, kuv tsis tau hais tias daim ntawv thov yog MegaFon.

MS: - Mus - rau xa tag nrho cov ntaub ntawv - ntawm cov qhab nia, ntawm cov xwm txheej sib tw, txheeb cais ... Mus yog tag nrho cov backend rau daim ntawv thov. Tus neeg siv yuav tsum paub los ntawm qhov chaw uas txuas mus siv rau cov neeg ua si kom tus neeg siv tuaj yeem saib qhov kev sib tw. Peb muaj kev txuas mus rau cov yeeb yaj kiab thiab cov kwj deg uas tau npaj lawm.

Ib co ads πŸ™‚

Ua tsaug uas koj tau nyob nrog peb. Koj puas nyiam peb cov ntawv? Xav pom cov ntsiab lus nthuav ntxiv? Txhawb nqa peb los ntawm kev tso ib qho kev txiav txim lossis qhia rau cov phooj ywg, huab VPS rau cov tsim tawm los ntawm $ 4.99, ib qho tshwj xeeb analogue ntawm nkag-theem servers, uas tau tsim los ntawm peb rau koj: Qhov tseeb tag nrho txog VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps los ntawm $ 19 los yog yuav ua li cas faib cov server? (muaj nrog RAID1 thiab RAID10, mus txog 24 cores thiab mus txog 40GB DDR4).

Dell R730xd 2x pheej yig dua hauv Equinix Tier IV data center hauv Amsterdam? Tsuas yog nyob ntawm no 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV los ntawm $ 199 hauv Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - los ntawm $ 99! Nyeem txog Yuav ua li cas tsim infrastructure Corp. chav kawm nrog kev siv Dell R730xd E5-2650 v4 servers muaj nqis 9000 euros rau ib lub nyiaj?

Tau qhov twg los: www.hab.com

Ntxiv ib saib