Awọn ohun elo ori ayelujara ti o tobi-nla ti de ọna pipẹ ni awọn ọdun meji sẹhin. Awọn imotuntun wọnyi ti yi awọn iwoye wa ti idagbasoke sọfitiwia pada. Facebook, Instagram, ati Twitter, fun apẹẹrẹ, jẹ gbogbo awọn iru ẹrọ ti iwọn.
Awọn ọna ṣiṣe wọnyi gbọdọ wa ni itumọ lati ṣakoso awọn iwọn nla ti ijabọ ati data niwon awọn ọkẹ àìmọye eniyan lo wọn ni akoko kanna ni gbogbo agbaye. Eleyi jẹ nigbati apẹrẹ eto wo inu aworan na.
Ilana ti idasile faaji, awọn atọkun, ati data fun eto ti o pade awọn ibeere kan ni a mọ bi apẹrẹ eto. Nipasẹ awọn ọna ṣiṣe iṣọkan ati lilo daradara, apẹrẹ eto ṣe itẹlọrun awọn ibeere ti iṣowo tabi agbari rẹ.
Ni kete ti ile-iṣẹ tabi agbari rẹ ti pinnu awọn ibeere rẹ, o le bẹrẹ iṣakojọpọ wọn sinu apẹrẹ eto ti ara ti o baamu awọn ibeere awọn alabara rẹ.
Boya o yan lati lọ pẹlu idagbasoke bespoke, awọn solusan iṣowo, tabi apapọ awọn meji, bi o ṣe ṣe apẹrẹ eto rẹ yoo pinnu bii o ṣe kọ.
A yoo ṣe ayẹwo ni kikun ni apẹrẹ eto ti aago Twitter ni ifiweranṣẹ yii, ni pipe pẹlu ikẹkọ kan. Jẹ ká bẹrẹ.
Igbesẹ 1: Iṣalaye ọran lilo & awọn ihamọ
Lo ọran
- Olumulo kan ṣe agbejade tweet kan.
- Iṣẹ naa firanṣẹ awọn iwifunni titari ati awọn imeeli si awọn ọmọlẹyin ti awọn tweets.
- Ti wo aago olumulo (iṣẹ ṣiṣe lati ọdọ olumulo)
- Olumulo naa wo aago ile (iṣẹ ṣiṣe lati ọdọ awọn eniyan ti olumulo n tẹle)
- Awọn ọrọ-ọrọ jẹ wiwa nipasẹ olumulo.
- Iṣẹ naa wa ni wiwọle gaan.
Ko dopin
- Tweets ni a fi ranṣẹ si Twitter Firehose ati awọn ṣiṣan miiran nipa lilo iṣẹ yii.
- Iṣẹ naa yọ awọn tweets ti o da lori awọn eto hihan ti olumulo naa.
- Ti olumulo naa ko ba tẹle ẹni ti a dahun si, tọju esi naa.
- Ṣe akiyesi aṣayan 'tọju awọn atunwi tuntun'.
- atupale
Awọn ihamọ & awọn ero inu
State awqn
- Awọn ijabọ ti wa ni ko tuka dogba.
- O yẹ ki o rọrun lati firanṣẹ tweet kan.
- Ayafi ti o ba ni awọn miliọnu awọn ọmọlẹyin, fifiranṣẹ tweet si gbogbo awọn ọmọlẹyin rẹ yẹ ki o yara.
- Awọn olumulo ti nṣiṣe lọwọ 100 milionu wa.
- 15 bilionu tweets ni oṣu kọọkan tabi 500 milionu tweets ni gbogbo ọjọ
- Kọọkan tweet ni o ni a fanout ti 10 ifijiṣẹ lori apapọ.
- Ni gbogbo ọjọ, fanout n pese awọn tweets 5 bilionu.
- Fanout n pese awọn tweets 150 bilionu ni gbogbo oṣu.
- 250 bilionu oṣooṣu kika ibeere
- 10 bilionu oṣooṣu awọrọojulówo
Ago
- Ago yẹ ki o rọrun lati lilö kiri.
- Twitter jẹ diẹ sii nipa kika ju kikọ.
- Mu dara julọ fun kika tweet ni iyara
- Lilo Tweet jẹ akoko-n gba.
àwárí
- Ilana wiwa yẹ ki o yara.
- O jẹ akoko-n gba lati wa.
Ṣe iṣiro lilo
Iwọn ti tweet kọọkan:
- 8 baiti tweet id
- 32 baiti olumulo-id
- 140 baiti ti ọrọ
- media - apapọ ti 10 KB
- Lapapọ: ~10 KB
Ni gbogbo oṣu, 150 TB ti akoonu tweet tuntun jẹ ipilẹṣẹ.
- * Awọn tweets miliọnu 500 ni gbogbo ọjọ * awọn ọjọ 30 fun oṣu kan * 10 KB fun tweet
- Ni ọdun mẹta, 5.4 PB ti akoonu tweet tuntun wa.
Awọn ibeere kika 100,000 wa ni iṣẹju kọọkan.
- * (Awọn ibeere 400 fun iṣẹju keji / awọn ibeere bilionu 1 fun oṣu kan) 250 bilionu awọn ibeere kika ni oṣu kọọkan
Awọn tweets 6,000 wa ni iṣẹju kọọkan.
- * (Awọn ibeere 400 fun iṣẹju keji / awọn ibeere bilionu 1 fun oṣu kan) awọn tweets bilionu 15 ni gbogbo oṣu
Lori fanout, 60 ẹgbẹrun tweets ni a firanṣẹ ni gbogbo iṣẹju-aaya.
- Fanout n pese awọn tweets bilionu 150 ni oṣu kọọkan * (awọn ibeere 400 fun iṣẹju keji / awọn ibeere bilionu 1 fun oṣu kan).
Awọn ibeere 4,000 fun alaye ni gbogbo iṣẹju-aaya
- * (Awọn ibeere 400 fun iṣẹju keji / awọn ibeere bilionu 1 fun oṣu kan) Awọn wiwa bilionu 10 ni oṣu kọọkan
Diẹ ninu awọn iyipada to wulo
- Ni gbogbo oṣu, 2.5 milionu awọn aaya kọja.
- Awọn ibeere miliọnu 2.5 fun oṣu kan ni ibeere 1 fun iṣẹju kan
- Awọn ibeere miliọnu 100 fun oṣu kan x awọn ibeere 40 fun iṣẹju kan
- Awọn ibeere bilionu 1 fun oṣu kan = Awọn ibeere 400 fun iṣẹju kan
Igbesẹ 2: Aworan ti ipele giga
Igbesẹ 3: Ṣalaye awọn paati mojuto
A le ṣafipamọ awọn tweets ti ara ẹni lati gbejade aago olumulo (iṣẹ ṣiṣe lati ọdọ olumulo) ni ibi ipamọ data ibatan ti wọn ba fi tweet kan silẹ. O nira diẹ sii lati fi awọn tweets jiṣẹ ati dagbasoke aago ile (iṣẹ ṣiṣe lati ọdọ ẹni kọọkan ti olumulo tẹle).
Ibi ipamọ data ibatan ti aṣoju yoo jẹ rẹwẹsi nipasẹ fifi awọn tweets jade si gbogbo awọn ọmọlẹyin (60 ẹgbẹrun tweets ti a fi jiṣẹ ni iṣẹju kọọkan). A yoo fẹ lati lọ pẹlu ibi ipamọ data kikọ-kia bi aaye data NoSQL tabi Kaṣe Iranti.
Kika 1 MB leralera lati iranti gba aijọju 250 microseconds, ṣugbọn kika lati SSD gba awọn akoko 4 bi gigun, ati kika lati disk gba igba 80 bi gigun.
Ile itaja Nkan kan le ṣee lo lati fi data pamọ gẹgẹbi awọn aworan ati awọn fidio.
- Olupin Wẹẹbu naa, eyiti o n ṣiṣẹ bi aṣoju iyipada, gba tweet lati ọdọ Onibara.
- Ti fi ibeere naa ranṣẹ si olupin Kọ API nipasẹ olupin Wẹẹbu.
- API Kọwe fi tweet pamọ si aaye data SQL kan ninu aago olumulo.
Iṣẹ-iṣẹ Fan-Jade jẹ olubasọrọ nipasẹ Kọ API, o si ṣe awọn iṣẹ ṣiṣe wọnyi.
- Wa awọn ọmọlẹyin olumulo ni Kaṣe Iranti nipa bibeere Iṣẹ Iṣẹ ayaworan olumulo.
- Lori Kaṣe Iranti kan, tweet ti wa ni fipamọ ni aago ile ti awọn ọmọlẹyin olumulo.
- 1,000 omoleyin = 1,000 wiwa ati awọn ifibọ = O(n) isẹ.
- Tweet naa wa ni fipamọ ni Iṣẹ Atọka Iwadi fun wiwa ni iyara.
- Ile-itaja Ohun Nkan ni a lo lati tọju media.
- Firanṣẹ awọn itaniji titari si awọn ọmọlẹyin nipasẹ Iṣẹ Iwifunni.
- Lati firanṣẹ awọn titaniji ni asynchronously, o nlo Queue kan.
A le lo atokọ Redis abinibi kan pẹlu eto atẹle ti Kaṣe Iranti wa jẹ Redis:
Ago ile olumulo yoo ni imudojuiwọn pẹlu tweet tuntun, eyiti yoo wa ni fipamọ sinu Kaṣe Iranti. A yoo lo API REST ti gbogbo eniyan wọnyi:
Ago olumulo jẹ wiwo nipasẹ olumulo.
- Olupin wẹẹbu n gba ibeere aago olumulo kan lati ọdọ Onibara.
- Ti fi ibeere naa ranṣẹ si olupin Ka API nipasẹ olupin Wẹẹbu.
- API kika naa beere aaye data SQL fun igba akoko olumulo.
API REST yoo ṣiṣẹ bakanna si aago ile, ayafi pe gbogbo awọn tweets yoo wa lati ọdọ olumulo ju awọn eniyan ti wọn tẹle lọ.
Olumulo kan n wa awọn koko-ọrọ:
- Olupin wẹẹbu gba ibeere wiwa lati ọdọ Onibara.
- Ìbéèrè náà ni a fi ránṣẹ́ sí olupin API Ṣàwárí nípasẹ̀ Apèsè Wẹ́ẹ̀bù.
Igbesẹ 4: Ago Twitter
Ṣiṣẹda Ago jẹ iṣẹ ti o nira. Olupin ti n ṣe ipilẹṣẹ aago ti o sopọ mọ wẹẹbu tabi olupin ohun elo ni a nilo.
Ni gbogbo igba ti olumulo kan ba wọle, iṣẹ aago n ṣetọju abala awọn tweets tuntun lati ọdọ awọn olumulo ninu tabili olutẹle ati awọn imudojuiwọn tabi sọtun akoko aago olumulo.
A ko se eyikeyi too ti ranking eto nibi; dipo, a ro pe awọn tweets 5 ti o ga julọ lati ọdọ awọn ọmọlẹyin olumulo ni a gbekalẹ ni akoko aago ni aṣẹ ti akoko ẹda. A le ṣetọju gige isọdọtun 50-tweet kan. A tun dẹkun isunmi tabi ṣiṣe ilana aago kan lẹhin igbati o ti de opin ilẹ titi ti olumulo yoo fi sọ oju-iwe naa tu.
Lairi giga ati awọn ifiyesi iṣẹ yoo wa lati ẹda kikọ sii olumulo laaye. Dipo, ṣiṣẹda ṣiṣan aisinipo ti o le gbekalẹ lẹsẹkẹsẹ ni ọna ti o dara julọ lati mu iṣẹ ṣiṣe dara si. Ṣiṣe awọn olupin aago igbẹhin ti o pingi olupin ohun elo ni igbagbogbo lati sọ ifunni ti o da lori akoko ti o ṣẹda.
Algoridimu ipo yẹ ki o ṣe akiyesi awọn ifihan agbara to ṣe pataki ati pese iwuwo lati ṣe iṣeduro pe aago olumulo kan ko jẹ gaba lori nipasẹ ohun elo lati ọkan tabi diẹ sii ti awọn akọọlẹ ti wọn tẹle.
Ni deede diẹ sii, a le yan awọn ẹya ti o ni ibatan si ibaramu ti ohun kikọ sii eyikeyi, gẹgẹbi nọmba awọn ayanfẹ, awọn asọye, awọn ipin, ati akoko imudojuiwọn. Ọkọọkan ninu awọn ibeere wọnyi yẹ ki o lo lati ṣe oṣuwọn tweet, lẹhinna o yẹ ki o lo ipo naa lati ṣafihan awọn tweets lori aago.
Ṣe o yẹ ki a ṣe akiyesi awọn olumulo nigbagbogbo nigbati akoonu titun fun iwe iroyin wọn ba wa bi? Awọn olumulo le rii pe o ni anfani lati wa ni itaniji nigbati data tuntun ba wa. Lori awọn ẹrọ alagbeka, sibẹsibẹ, nigbati lilo data ba jẹ iye owo pupọ, o le padanu bandiwidi.
Bi abajade, a le yọkuro lati ma Titari data si awọn ẹrọ alagbeka ati dipo gba awọn olumulo laaye lati “Fa lati Sọ” fun awọn ifiweranṣẹ tuntun.
Igbesẹ 5: Apẹrẹ iwọn
A o pọju bottleneck ni Fanout Service. Awọn olumulo Twitter pẹlu awọn miliọnu awọn ọmọlẹyin yoo ni lati duro fun awọn iṣẹju pupọ fun awọn tweets wọn lati yi jade. Eyi le fa ere-ije kan pẹlu awọn idahun si tweet, eyiti a le yago fun nipa atunbere awọn tweets ni akoko iṣẹ.
A tun le ṣe idiwọ itankale awọn tweets lati ọdọ eniyan pẹlu nọmba nla ti awọn ọmọlẹyin. Dipo, a le ṣe wiwa awọn tweets lati ọdọ awọn ẹni-kọọkan ti o tẹle pupọ, ṣepọ awọn abajade wiwa pẹlu awọn abajade aago ile olumulo, lẹhinna tun awọn tweets ni akoko iṣẹ.
Awọn ilọsiwaju afikun pẹlu:
- Jeki awọn tweets ọgọrun diẹ nikan ni Kaṣe Iranti fun aago ile kọọkan.
- Ninu Kaṣe Iranti, alaye aago ile awọn olumulo ti nṣiṣe lọwọ nikan ni o wa ni ipamọ.
- A le ṣe atunto akoole-akọọlẹ lati ibi ipamọ data SQL ti olumulo kan ko ba ti ṣiṣẹ ni awọn ọjọ 30 ti o ṣaju.
- Lati wa ẹni ti olumulo jẹ, lo Iṣẹ Aworan Olumulo.
- Ṣafikun awọn tweets si Kaṣe Iranti nipa gbigba wọn pada lati aaye data SQL.
- Iṣẹ Alaye Tweet le ṣafipamọ iye awọn tweets oṣu kan nikan.
- Ninu Iṣẹ Alaye Olumulo, awọn olumulo ti nṣiṣe lọwọ nikan ni o wa ni ipamọ.
- Lati jẹ ki airi dinku, iṣupọ Iwadi yoo nilo pupọ julọ lati ṣetọju awọn tweets ni iranti.
ipari
Botilẹjẹpe Twitter jẹ agbari nla, o dara julọ oye ti eto apẹrẹ. Mo ṣe ohun ti o dara julọ lati pese fun ọ pẹlu akopọ ipele giga ti aago Twitter.
Mo nireti pe o ni alaye to wulo lati ọdọ rẹ ati pe o le lo si lilo to dara.
Fi a Reply