Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Mikhail Salosin (i muri nei - MS): - Kia ora katoa! Ko Michael toku ingoa. Ka mahi ahau hei kaiwhakawhanake i muri i te MC2 Software, ka korero ahau mo te whakamahi i te Haere ki te tuara o te tono pūkoro Titiro+.

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Kei te pai tetahi ki te hockey?

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Na ko tenei tono mo koe. Ma te Android me te iOS ka whakamahia ki te maataki i nga panui o nga momo huihuinga hakinakina i runga ipurangi me te rekoata. Kei roto ano hoki i te tono nga tatauranga maha, panui tuhinga, tepu mo nga huihuinga, whakataetae me etahi atu korero e whai hua ana mo nga kaiwhaiwhai.

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Kei roto ano i te tono tetahi mea penei i nga waa ataata, ara, ka taea e koe te maataki i nga waa tino nui o nga whakataetae (whaainga, whawhai, pupuhi, me etahi atu). Ki te kore koe e pirangi ki te maataki i te panuitanga katoa, ka taea e koe te maataki i nga mea whakamere anake.

He aha i whakamahia e koe i roto i te whanaketanga?

Ko te waahanga matua i tuhia ki te Haere. Ko te API i korerohia e nga kiritaki pūkoro i tuhia ki roto i te Go. He ratonga mo te tuku whakamohiotanga pana ki nga waea pukoro i tuhia ano ki te Haere. Me tuhi ano matou i a matou ake ORM, tera pea ka korerohia e matou i tetahi ra. Ana, i tuhia etahi ratonga iti ki te Haere: te whakarereke me te uta i nga whakaahua mo nga kaiwhakatika...

I whakamahia e matou te PostgreSQL hei papaunga raraunga. I tuhia te atanga ētita ki Ruby on Rails ma te whakamahi i te kohatu ActiveAdmin. Ko te kawemai i nga tatauranga mai i tetahi kaiwhakarato tatauranga ka tuhia ki Ruby.

Mo nga whakamatautau API punaha, i whakamahia e matou te Python unittest. Ka whakamahia te Memcached ki te tarai i nga waea utu API, "Kaitao" ka whakamahia hei whakahaere i te whirihoranga, ka whakamahia a Zabbix ki te kohikohi me te aro turuki i nga tatauranga o roto. Ko Graylog2 mo te kohi rakau, ko te Slate he tuhinga API mo nga kaihoko.

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Kōwhiringa kawa

Ko te raru tuatahi i pa mai ki a maatau: me whiriwhiri he kawa mo te taunekeneke i waenga i te tuara me nga kiritaki pūkoro, i runga i nga waahanga e whai ake nei...

  • Ko te whakaritenga tino nui: ko nga raraunga mo nga kaihoko me whakahou i te waa tuuturu. Arā, ko te hunga katoa e mātaki ana i te pāhotanga me whiwhi whakahōu tata tonu.
  • Hei whakangawari i nga mea, i whakaaro matou ko nga raraunga e tukutahi ana me nga kaihoko kaore i te whakakorehia, engari ka hunahia ma te whakamahi i nga haki motuhake.
  • Ko nga momo tono onge katoa (penei i nga tatauranga, tito roopu, tatauranga roopu) ka riro mai i nga tono GET noa.
  • I tua atu, me tautoko ngawari te punaha ki te 100 mano nga kaiwhakamahi i te wa ano.

I runga i tenei, e rua nga whiringa kawa:

  1. Tukutuku. Engari kaore matou i hiahia mo nga hongere mai i te kiritaki ki te tūmau. Me tuku whakahōutanga noa mai i te tūmau ki te kiritaki, nā reira ko te urunga tukutuku he kōwhiringa kore.
  2. Ko nga Takahanga Tukua-Tumau (SSE) i puta tika mai! He tino ngawari, he tino makona nga mea katoa e hiahiatia ana e matou.

Nga Takahanga Tukua-Tumau

He kupu torutoru mo te mahi o tenei mea...

Ka rere ki runga ake o te hononga http. Ka tukuna e te kiritaki he tono, ka whakautu te tūmau me te Ihirangi-Momo: kuputuhi/takahanga-awa me te kore e kati i te hononga ki te kiritaki, engari ka tuhi tonu i nga raraunga ki te hononga:

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Ka taea te tuku raraunga i roto i te whakatakotoranga kua whakaaetia me nga kaihoko. I roto i to maatau, i tukuna e matou i tenei ahua: ko te ingoa o te hanganga whakarereke (tangata, kaitakaro) i tukuna ki te waahi huihuinga, a JSON me nga waahi hou, kua whakarereketia mo te kaitakaro i tukuna ki te mara raraunga.

Inaianei me korero tatou mo te mahi o te taunekeneke.

  • Ko te mea tuatahi ka mahia e te kiritaki he whakatau i te wa whakamutunga i mahia ai te tukutahitanga me te ratonga: ka titiro ia ki tana putunga raraunga rohe me te whakatau i te ra o te huringa whakamutunga i tuhia e ia.
  • Ka tukuna he tono me tenei ra.
  • Hei whakautu, ka tukuna atu e matou ki a ia nga whakahoutanga katoa kua puta mai i tera ra.
  • Whai muri i tera, ka hono atu ki te hongere ora, kaore e kati kia hiahia ra ano ia ki enei whakahou:

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Ka tukuna e matou he rarangi o nga huringa: ki te piro tetahi tangata, ka whakarereketia e matou te kaute o te tukinga, ki te whara ia, ka tukuna ano tenei i te waa tuuturu. No reira, ka whiwhi tonu nga kaihoko i nga raraunga hou i roto i te whangai takahanga whakataetae. I ia wa, kia mohio ai te kaihoko kaore i mate te kaimau, kaore he mea i pa ki a ia, ka tukuna he tohu waahi ia 15 hēkona - kia mohio ai kei te pai nga mea katoa, kaore he take ki te hono ano.

He pehea te ratonga hononga ora?

  • Ko te mea tuatahi, ka hangaia e matou he hongere ki reira ka whiwhi whakamohoatanga kua parea.
  • Whai muri i tera, ka ohauru matou ki tenei hongere kia whiwhi whakahōu.
  • Ka whakatauhia e matou te pane tika kia mohio te kiritaki kei te pai nga mea katoa.
  • Tukuna te ping tuatahi. Ka tuhi noa matou i te tohu waahi hononga o naianei.
  • I muri i tera, ka panuihia e matou mai i te hongere i roto i te kopae tae noa ki te kati o te hongere whakahou. I ia wa ka whiwhi te hongere i te tohu wa o naianei, i nga huringa ranei e tuhia ana e matou hei whakatuwhera hononga.

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Ko te raru tuatahi i pa ki a matou ko nga mea e whai ake nei: mo ia hononga tuwhera ki te kiritaki, i hanga e matou he matawā e tohu kotahi ana ia 15 hēkona - ka puta mai mena he 6 mano nga hononga e tuwhera ana me te miihini kotahi (me tetahi tūmau API), 6 he mano nga taima i hanga. Na tenei ka kore te miihini e mau i te kawenga e hiahiatia ana. Ko te raruraru kaore i tino marama ki a matou, engari i whiwhi matou i tetahi awhina iti me te whakatika.

Ko te mutunga mai, inaianei ka ahu mai ta maatau ping i te hongere ano i puta mai ai te whakahou.

Na reira, kotahi anake te matama ka tohu kotahi i ia 15 hēkona.

He maha nga mahi awhina i konei - te tuku i te pane, te ping me te hanganga ake. Arā, ko te ingoa o te teepu (tangata, whakataetae, kaupeka) me nga korero mo tenei urunga ka tukuna ki konei:

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Te tikanga mo te tuku whakahou

Inaianei he korero iti no hea nga huringa. He maha nga taangata, he kaiwhakatikatika, e matakitaki ana i te haapurorotanga i roto i te waa. Ka hangaia e ratou nga huihuinga katoa: i tukuna tetahi, i whara tetahi, i etahi momo whakakapi...

Ma te whakamahi i te CMS, ka uru nga raraunga ki te papaunga raraunga. Whai muri i tenei, ka whakamohiotia e te papaunga raraunga nga tūmau API mo tenei ma te whakamahi i te tikanga Whakarongo/Whakamōhio. Kua tukuna e nga tūmau API enei korero ki nga kaihoko. No reira, he ruarua noa nga kaitoro e hono ana ki te papaaarangi karekau he utaina motuhake i runga i te papaaarangi, na te mea karekau te kaihoko e mahi tika me te papaaarangi i nga huarahi katoa:

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

PostgreSQL: Whakarongo/Whakamōhio

Ko te tikanga Whakarongo/Whakamōhio i roto i te Postgres ka taea e koe te whakamohio ki nga kaiohauru takahanga kua rereke etahi o nga huihuinga - kua hangaia etahi rekoata i roto i te paataka raraunga. Ki te mahi i tenei, i tuhia e matou he keu me te mahi ngawari:

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

I te wa e whakauru ana, e huri ana ranei i tetahi rekoata, ka karangahia e matou te mahi whakamohio i runga i te hongere data_updates, ka tukuna ki reira te ingoa o te ripanga me te tautohu o te rekoata i hurihia, i whakauruhia ranei.

Mo nga ripanga katoa me tukutahi me te kaihoko, ka tautuhia e matou he keu, i muri i te whakarereketanga / whakahou i te rekoata, ka karangahia te mahi kua tohua i runga i te kiriata i raro nei.
Me pehea te ohauru a te API ki enei huringa?

Ka hangaia he tikanga Fanout - ka tuku karere ki te kiritaki. Ka kohia e ia nga hongere katoa o nga kaihoko me te tuku i nga whakahoutanga i whakawhiwhia mai i enei waahana:

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

I konei ko te whare pukapuka pq paerewa, e hono ana ki te putunga korero me te kii kei te pirangi ia ki te whakarongo ki te hongere (data_updates), ka tirohia kei te tuwhera te hononga, kei te pai nga mea katoa. Kei te whakakorehia e ahau te tirotiro hapa ki te penapena mokowā (kaore he mea kino te tirotiro).

Whai muri, ka whakatauhia e matou te Ticker, ka tukuna he ping ia 15 hēkona, ka tiimata ki te whakarongo ki te hongere i ohauru matou. Mena ka whiwhi matou i te ping, ka whakaputahia e matou tenei ping. Mena ka whiwhi tatou i etahi momo urunga, ka panuitia e matou tenei urunga ki nga kaiohauru katoa o tenei Fanout.

Me pehea te mahi a Fan-out?

I roto i te reo Rūhia ka whakamaoritia tenei hei "wehewehe". He mea kotahi ta matou e rehita ana i nga kaiohauru e hiahia ana ki te whiwhi i etahi whakahoutanga. A, ka tae mai he whakahou ki tenei mea, ka tohatohahia tenei whakahou ki ona kaiohauru katoa. He ngawari noa:

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Me pehea te whakatinana i roto i te Haere:

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

He hanganga, he mea tukutahi ma te whakamahi i nga Mutexes. Kei a ia he mara hei whakaora i te ahua o te hononga o Fanout ki te paataka raraunga, ara kei te whakarongo ia i tenei wa ka whiwhi whakamohoatanga, me te rarangi o nga hongere katoa e waatea ana - mapi, ko te matua ko te hongere me te hanganga i te ahua o nga uara (kaore i whakamahia i tetahi huarahi).

E rua nga tikanga - Honoa me te Momotu - me kii atu ki a Fanout he hononga to tatou ki te turanga, kua puta, kua pakaru te hononga ki te turanga. I te keehi tuarua, me momotu koe i nga kiritaki katoa me te korero ki a ratou kua kore e taea e ratou te whakarongo ki tetahi mea me te hono ano na te mea kua kati te hononga ki a ratou.

He tikanga Ohauru ano hei taapiri i te hongere ki nga "kaiwhakarongo":

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

He tikanga Unsubscribe, e tango ana i te hongere mai i te hunga whakarongo mena ka momotu te kiritaki, me te tikanga Whakaputa, ka taea e koe te tuku karere ki nga kaiohauru katoa.

Pātai: – He aha te mea ka tukuna ma tenei hongere?

MS: – Ko te tauira kua huri, ping ranei ka tukuna (he tau noa, tauoti).

MS: - Ka taea e koe te tuku i tetahi mea, te tuku i tetahi hanganga, te whakaputa - ka huri noa ki JSON ka mutu.

MS: - Ka whiwhi panui mai i a Postgres - kei roto te ingoa tepu me te tohu. I runga i te ingoa ripanga me te tautohu, ka whiwhi matou i te rekoata e hiahiatia ana, katahi ka tukuna atu tenei hanganga mo te panui.

Te Hangahanga

He aha te ahua o tenei mai i te tirohanga hanganga? E 7 a matou kaitoha taputapu: ko tetahi o ratou kua tino whakatapua ki te putunga korero, ko etahi atu e ono e whakahaere ana i nga miihini mariko. E 6 nga kape o te API: ko ia miihini mariko me te API kei runga i tetahi tūmau taputapu motuhake - he pono tenei.

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

E rua nga pito o mua kua whakauruhia a Keepalived hei whakapai ake i te urunga, na mena ka pa mai tetahi mea, ka taea e tetahi o mua te whakakapi i tetahi. Ano - e rua nga kape o te CMS.

He tangata kawemai tatauranga ano. He Taonga DB mai i te mea ka mahia nga taapiri i ia wa. Kei reira te Pigeon Pusher, he tono e tuku whakamohiotanga pana ki nga kiritaki, me nga mea hangahanga: Zabbix, Graylog2 me Chef.

Ko te mea pono, he maha nga hanganga, na te mea ka taea e te 100 mano te mahi me te iti ake o nga kaitoro. Engari he rino - i whakamahia e matou (i kii mai ka taea - he aha te kore).

AtAKi o Haere

I muri i to maatau mahi i tenei tono, ka puta mai nga tino painga o Go.

  • Wharepukapuka http pai. Ma tenei ka taea e koe te hanga i te tini o te pouaka.
  • Hei taapiri, ko nga hongere i taea ai e maatau te whakauru ngawari ki te tuku panui ki nga kaihoko.
  • Ko te mea whakamiharo a Race detector i taea e matou te whakakore i nga tini pepeke nui (hangahanga hangahanga). Ko nga mea katoa e mahi ana i runga i te whakaari ka whakarewahia, ka whakahiatotia me te taviri Reihi; a, ka taea e matou te titiro ki nga hanganga whakaturanga kia kite he aha nga raru kei a matou.
  • Te iti me te ngawari o te reo.

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

Kei te rapu matou mo nga kaiwhakawhanake! Mena kei te pirangi tetahi, tena koa.

Au uiui

Te patai a te hunga whakarongo (i muri nei – B): – Ki taku titiro kua ngaro tetahi take nui mo te Fan-out. He tika taku mohio ka tukuna e koe he whakautu ki te kaihoko, ka aukati koe mena kaore te kaihoko e pirangi ki te panui?

MS: - Kao, kaore matou i te aukati. Tuatahi, kei a matou enei mea katoa i muri i te nginx, ara, kaore he raru mo nga kaihoko puhoi. Tuarua, he hongere to te kiritaki me te putunga - inaa, ka taea e taatau ki te whakauru ki te kotahi rau nga whakahou ki reira... Ki te kore e taea e taatau te tuhi ki te hongere, katahi ka mukua. Mena ka kite tatou kua aukatihia te hongere, katahi ka kati noa te hongere, ka mutu - ka hono ano te kaihoko mena ka puta he raru. No reira, ko te tikanga, kaore he aukati i konei.

V: – Kaore pea e taea te tuku i tetahi rekoata ki te Whakarongo/Whakamōhio, kaua ki te ripanga tautohu?

MS: – Whakarongo/Whakamōhio he tepe o 8 mano paita i runga i te preload ka tukuna. Ko te tikanga, ka taea te tuku mena he iti noa nga raraunga e pa ana ki a maatau, engari ki taku whakaaro he pai ake te pono. Ko nga here kei roto ano i a Postgres.

V: – Ka whiwhi whakamohiotanga a nga kaihoko mo nga keemu kaore e aro atu ki a raatau?

MS: - I te nuinga, ae. Hei tikanga, e 2-3 nga tukinga e haere whakarara ana, ahakoa he uaua. Mena kei te maataki te kaihoko i tetahi mea, ko te tikanga kei te maataki ia i te whakataetae e haere ana. Na, kei te kiritaki he putunga raraunga o te rohe e honoa ai enei whakahoutanga katoa, a ahakoa kaore he hononga Ipurangi, ka taea e te kiritaki te tiro i nga whakataetae katoa o mua kei a ia ano nga whakahou. Ko te mea nui, ka tukutahi i ta maatau papaa raraunga i runga i te tūmau me te pātengi raraunga ā-rohe a te kiritaki kia taea ai e ia te mahi tuimotu.

V: – He aha koe i hanga ai i a koe ake ORM?

Alexey (tetahi o nga kaihanga o Look+): – I tera wa (he tau ki muri) he iti ake nga ORM i naianei, inaa he maha tonu. Ko taku mea tino pai mo te nuinga o nga ORM kei reira ko te nuinga o ratou e rere ana i runga i nga atanga kau. Arā, ko nga tikanga o enei ORM kua reri ki te kawe i nga mea katoa: he hanganga, he tohu hanganga, he nama, he mea kore rawa...

Ka hangaia e to maatau ORM nga hanganga i runga i te tauira raraunga. Ko ahau ano. Na reira he raima nga tikanga katoa, kaua e whakamahi whakaata, aha atu. Ka whakaae ratou ki nga hanganga me te tumanako ki te whakamahi i aua hanganga ka puta.

V: – Tokohia ngā tāngata i whai wāhi?

MS: – I te wahanga tuatahi, tokorua nga tangata i uru. I timata matou i tetahi waahi i te marama o Hune, a i te marama o Akuhata kua rite te waahanga matua (te putanga tuatahi). He tukunga i te marama o Hepetema.

V: – Kei hea koe e whakaahua ana i te SSE, kaore koe e whakamahi i te waahi. He aha tera?

MS: – Ki te pono, he kawa html5 tonu a SSE: kua hangaia te paerewa SSE ki te korero ki nga kaitirotiro, ki taku mohio. Kei a ia etahi atu waahanga kia taea ai e nga kaitirotiro te hono ano (me etahi atu), engari kaore matou e hiahia ana, na te mea he kaihoko taatau ka taea te whakamahi i nga tikanga mo te hono me te whiwhi korero. Kaore matou i hanga SSE, engari he mea rite ki te SSE. Ehara tenei i te kawa ake.
Kaore he hiahia. Ki taku mohio, i whakatinanahia e nga kaihoko te tikanga hononga tata mai i te wahanga. Kare ratou i tino whakaaro.

V: – He aha nga taputapu taapiri i whakamahia e koe?

MS: – I tino kaha matou ki te whakamahi i te govet me te golint ki te whakakotahi i te ahua, me te gofmt. Kaore he mea ke atu i whakamahia.

V: – He aha i whakamahia e koe ki te patuiro?

MS: – I mahia te patuiro ma te whakamahi i nga whakamatautau. Kaore matou i whakamahi i tetahi patuiro, GOP ranei.

V: – Ka taea e koe te whakahoki i te kiriata kei te whakatinanahia te mahi Whakaputa? Kei te rangirua koe i nga ingoa taurangi reta kotahi?

MS: - Kao. He ahua "kuiti" te tirohanga. Karekau e whakamahia ki hea atu engari ki konei (haunga nga waahanga o roto o tenei karaehe), he tino totika - e 7 noa nga rarangi.

V: - Te ahua kaore ano i te maarama ...

MS: - Kao, kao, he waehere pono tenei! Ehara i te mea mo te ahua. He karaehe iti noa iho - e 3 noa nga mara i roto i te akomanga...

Mikhail Salosin. Huihuinga a Golang. Ma te whakamahi i te Haere ki te tuara o te tono Titiro+

MS: - Ma te nuinga, ko nga raraunga katoa e tukutahi ana me nga kaihoko (nga whakataetae o te tau, nga kaitakaro) kaore e rereke. Ko te korero, ki te mahi tatou i tetahi atu hakinakina e hiahia ana tatou ki te whakarereke i te whakataetae, ka whai whakaaro noa tatou ki nga mea katoa i roto i te putanga hou o te kiritaki, ka whakakorehia nga putanga tawhito o te kiritaki.

V: – Kei kona ano etahi kohinga whakahaere whakawhirinaki-tuatoru?

MS: – I whakamahia e matou te haere dep.

V: – He mea mo te ataata i roto i te kaupapa o te ripoata, engari kaore he mea i roto i te ripoata mo te ataata.

MS: - Kao, karekau he mea i roto i te kaupapa mo te ataata. Ka kiia ko "Tiro +" - koinei te ingoa o te tono.

V: – I kii koe ka tukuna ki nga kaihoko?..

MS: – Kaore matou i uru ki te tarere ataata. I mahia katoa tenei e Megafon. Ae, kaore au i kii ko te tono ko MegaFon.

MS: – Haere – mo te tuku raraunga katoa – i runga i te kaute, i runga i nga huihuinga whakataetae, i nga tatauranga... Ko te haere te tuara katoa mo te tono. Me mohio te kiritaki mai i tetahi waahi ko te hono hei whakamahi mo te kaitakaro kia maataki ai te kaiwhakamahi i te whakataetae. Kei a matou nga hononga ki nga ataata me nga awa kua whakaritea.

Ko etahi panui 🙂

Mauruuru koe mo te noho ki a matou. He pai ki a koe a maatau tuhinga? Kei te hiahia koe ki te kite i etahi atu mea whakamere? Tautokohia matou ma te tuku ota me te tuku korero ki o hoa, kapua VPS mo nga kaihanga mai i te $4.99, he tairitenga ahurei o nga kaitoro taumata-urunga, na matou i hanga mo koe: Ko te pono katoa mo VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai i te $19 me pehea ranei te tiri i tetahi tūmau? (e waatea ana me te RAID1 me te RAID10, tae atu ki te 24 matua me te 40GB DDR4).

Dell R730xd 2x iti ake i te pokapū raraunga Equinix Tier IV i Amsterdam? Anei i konei 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai i te $199 i roto i te Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai i te $99! Pānuihia mo Me pehea te hanga hanganga corp. akomanga ki te whakamahi o Dell R730xd E5-2650 v4 tūmau utu 9000 euros mo te pene?

Source: will.com

Tāpiri i te kōrero