መጠነ ሰፊ የመስመር ላይ መተግበሪያዎች ባለፉት ሁለት አስርት ዓመታት ውስጥ ረጅም መንገድ መጥተዋል። እነዚህ ፈጠራዎች ስለ ሶፍትዌር ልማት ያለንን አመለካከት ቀይረዋል። ለምሳሌ ፌስቡክ፣ ኢንስታግራም እና ትዊተር ሁሉም ሊሳኩ የሚችሉ መድረኮች ናቸው።
በመላው አለም በቢሊዮን የሚቆጠሩ ሰዎች በተመሳሳይ ጊዜ ስለሚጠቀሙባቸው እነዚህ ስርዓቶች ግዙፍ የትራፊክ መጠን እና ውሂብን ለማስተዳደር መገንባት አለባቸው። ይህ ሲሆን ነው የስርዓት ንድፍ ወደ ሥዕሉ ይገባል ፡፡
የተወሰኑ መስፈርቶችን የሚያሟላ ስርዓት አርክቴክቸር፣ መገናኛዎች እና ዳታ የማቋቋም ሂደት የስርዓት ዲዛይን በመባል ይታወቃል። የተቀናጁ እና ቀልጣፋ ስርዓቶችን በመጠቀም የስርዓት ንድፍ የንግድዎን ወይም የድርጅትዎን ፍላጎቶች ያሟላል።
አንዴ ኩባንያዎ ወይም ድርጅትዎ መስፈርቶቹን ከወሰነ፣የተጠቃሚዎችዎን ፍላጎት ወደሚያሟላ የአካላዊ ስርዓት ዲዛይን ማካተት መጀመር ይችላሉ።
ከስፖክ ልማት፣ ከንግድ መፍትሔዎች፣ ወይም ከሁለቱ ጥምረት ጋር ለመሄድ ከመረጡ፣ ስርዓትዎን እንዴት እንደሚነድፉ እንዴት እንደሚገነቡት ይወስናል።
በዚህ ጽሑፍ ውስጥ የTwitterን የጊዜ መስመርን የስርዓት ንድፍ በዝርዝር እንመለከታለን፣ ከመማሪያ ትምህርት ጋር። እንጀምር.
ደረጃ 1፡ የአጠቃቀም ጉዳይን እና ገደቦችን ግለጽ
መያዣ ይጠቀሙ
- አንድ ተጠቃሚ ትዊት ይሰቀላል።
- አገልግሎቱ የግፋ ማሳወቂያዎችን እና ኢሜሎችን ለትዊቶች ተከታዮች ይልካል።
- የተጠቃሚው የጊዜ መስመር ታይቷል (ከተጠቃሚው እንቅስቃሴ)
- ተጠቃሚው የመነሻ ጊዜውን ይመለከታል (ተጠቃሚው ከሚከተላቸው የሰዎች እንቅስቃሴ)
- ቁልፍ ቃላት በተጠቃሚው ይፈለጋሉ።
- አገልግሎቱ በእውነት ተደራሽ ነው።
አድማስ ውጭ
- ትዊቶች ይህንን አገልግሎት በመጠቀም ወደ Twitter Firehose እና ሌሎች ዥረቶች ይላካሉ።
- አገልግሎቱ በተጠቃሚው የታይነት ቅንብሮች ላይ በመመስረት ትዊቶችን ያስወግዳል።
- ተጠቃሚው ምላሽ የተሰጠውን ሰው የማይከታተለው ከሆነ መልሱን ይደብቁ።
- 'ዳግም ትዊቶችን ደብቅ' የሚለውን አማራጭ ተመልከት።
- ትንታኔ
ገደቦች እና ግምቶች
የስቴት ግምቶች
- ትራፊኩ እኩል አልተበታተነም።
- ትዊት ለመላክ ቀላል መሆን አለበት።
- በሚሊዮኖች የሚቆጠሩ ተከታዮች ከሌሉዎት ለሁሉም ተከታዮችዎ ትዊት መላክ ፈጣን መሆን አለበት።
- 100 ሚሊዮን ንቁ ተጠቃሚዎች አሉ።
- በየወሩ 15 ቢሊዮን ትዊቶች ወይም በየቀኑ 500 ሚሊዮን ትዊቶች
- እያንዳንዱ ትዊት በአማካኝ 10 ማድረሻ ተወዳጅነት አለው።
- በየቀኑ፣ fanout 5 ቢሊዮን ትዊቶችን ያቀርባል።
- Fanout በየወሩ 150 ቢሊዮን ትዊቶችን ያቀርባል።
- 250 ቢሊዮን ወርሃዊ የንባብ ጥያቄዎች
- 10 ቢሊዮን ወርሃዊ ፍለጋዎች
የጊዜ መስመር
- የጊዜ ሰሌዳው ለማሰስ ቀላል መሆን አለበት።
- ትዊተር ከመፃፍ የበለጠ ማንበብ ነው።
- ለፈጣን የትዊት ንባብ ያመቻቹ
- የTweet ፍጆታ ጊዜ የሚወስድ ነው።
ፍለጋ
- የፍለጋ ሂደቱ ፈጣን መሆን አለበት.
- ለመፈለግ ጊዜ የሚወስድ ነው።
አጠቃቀም አስላ
የእያንዳንዱ ትዊት መጠን፡-
- 8 ባይት የትዊተር መታወቂያ
- 32 ባይት የተጠቃሚ-መታወቂያ
- 140 ባይት ጽሑፍ
- ሚዲያ - በአማካይ 10 ኪ.ባ
- ጠቅላላ: ~ 10 ኪ.ባ
በየወሩ 150 ቴባ ትኩስ የትዊት ይዘት ይፈጠራል።
- * በየቀኑ 500 ሚሊዮን ትዊቶች * 30 ቀናት በወር * 10 ኪባ በአንድ ትዊት።
- በሶስት አመታት ውስጥ 5.4 ፒቢ ትኩስ የትዊት ይዘት አለ።
በእያንዳንዱ ሰከንድ 100,000 የንባብ ጥያቄዎች አሉ።
- * (በሴኮንድ 400 ጥያቄዎች / በወር 1 ቢሊዮን ጥያቄዎች) 250 ቢሊዮን የማንበብ ጥያቄዎች በየወሩ
በእያንዳንዱ ሰከንድ 6,000 ትዊቶች አሉ።
- * (በሴኮንድ 400 ጥያቄዎች / በወር 1 ቢሊዮን ጥያቄዎች) በየወሩ 15 ቢሊዮን ትዊቶች
በፋኖውት ላይ በየሰከንዱ 60 ሺህ ትዊቶች ይላካሉ።
- Fanout በየወሩ 150 ቢሊዮን ትዊቶችን ያቀርባል* (በሴኮንድ 400 ጥያቄዎች / 1 ቢሊዮን ጥያቄዎች በወር)።
በየሰከንዱ 4,000 የመረጃ ጥያቄዎች
- * (በሴኮንድ 400 ጥያቄዎች / በወር 1 ቢሊዮን ጥያቄዎች) በየወሩ 10 ቢሊዮን ፍለጋዎች
አንዳንድ ጠቃሚ ልወጣ
- በየወሩ 2.5 ሚሊዮን ሴኮንድ ያልፋል።
- 2.5 ሚሊዮን ጥያቄዎች በወር በ 1 ጥያቄ በሰከንድ
- በወር 100 ሚሊዮን ጥያቄዎች x 40 ጥያቄዎች በሰከንድ
- በወር 1 ቢሊዮን ጥያቄዎች = 400 ጥያቄዎች በሰከንድ
ደረጃ 2፡ የከፍተኛ ደረጃ ሥዕላዊ መግለጫ
ደረጃ 3፡ ዋና ክፍሎችን ማብራራት
ትዊት ካስገቡ የተጠቃሚውን የጊዜ መስመር (የተጠቃሚው እንቅስቃሴ) በተዛማጅ ዳታቤዝ ውስጥ ለመሙላት የተጠቃሚውን የራሱን ትዊቶች ማስቀመጥ እንችላለን። ትዊቶችን ለማድረስ እና የቤት ጊዜን (ተጠቃሚው ከሚከተላቸው ግለሰቦች እንቅስቃሴ) የበለጠ ከባድ ነው።
ለሁሉም ተከታዮች (በእያንዳንዱ ሰከንድ 60 ሺህ ትዊቶች ይደርሳሉ) ትዊቶችን በማራገብ የተለመደ የግንኙነት ዳታቤዝ ይጨናነቃል። እንደ NoSQL የውሂብ ጎታ ወይም የማስታወሻ መሸጎጫ ባሉ ፈጣን-ጽሑፍ የውሂብ ማከማቻ መሄድ እንፈልጋለን።
በተከታታይ 1 ሜባ ከማህደረ ትውስታ ማንበብ በግምት 250 ማይክሮ ሰከንድ ይወስዳል ነገር ግን ከኤስኤስዲ ማንበብ 4 ጊዜ ይወስዳል እና ከዲስክ ማንበብ 80 ጊዜ ይወስዳል።
የነገር ማከማቻ እንደ ምስሎች እና ቪዲዮዎች ያሉ መረጃዎችን ለማከማቸት ሊያገለግል ይችላል።
- እንደ ተገላቢጦሽ ፕሮክሲ የሚሰራው የድር አገልጋይ ከደንበኛው ትዊት ይቀበላል።
- ጥያቄው በድር አገልጋይ ወደ ጻፍ API አገልጋይ ይላካል።
- የWrite API ትዊቱን በተጠቃሚው የጊዜ መስመር ላይ ወደ SQL ዳታቤዝ ያስቀምጣል።
የደጋፊ-ውጭ አገልግሎት በ Write API ተገናኝቷል፣ እና የሚከተሉትን ተግባራት ያከናውናል።
- የተጠቃሚውን ግራፍ አገልግሎት በመጠየቅ የተጠቃሚውን ተከታዮች በማህደረ ትውስታ መሸጎጫ ውስጥ ያገኛል።
- በማህደረ ትውስታ መሸጎጫ ላይ፣ ትዊቱ በተጠቃሚው ተከታዮች የቤት የጊዜ መስመር ላይ ተቀምጧል።
- 1,000 ተከታዮች = 1,000 ፍለጋዎች እና ማስገቢያዎች = ኦ(n) ክወና።
- ትዊቱ ለፈጣን ፍለጋ በፍለጋ መረጃ ጠቋሚ አገልግሎት ውስጥ ተቀምጧል።
- የነገር ማከማቻው ሚዲያን ለማከማቸት ይጠቅማል።
- የግፋ ማንቂያዎችን በማስታወቂያ አገልግሎት በኩል ለተከታዮች ይልካል።
- ማንቂያዎችን በማይመሳሰል መልኩ ለመላክ ወረፋ ይጠቀማል።
የማህደረ ትውስታ መሸጎጫችን Redis ከሆነ በሚከተለው መዋቅር የሬዲስ ዝርዝርን መጠቀም እንችላለን፡-
የተጠቃሚው የቤት ጊዜ መስመር በአዲሱ ትዊት ይዘመናል፣ ይህም በማህደረ ትውስታ መሸጎጫ ውስጥ ይከማቻል። የሚከተለውን የህዝብ REST API እንጠቀማለን፡
የተጠቃሚው የጊዜ መስመር በተጠቃሚው ይታያል።
- የድር አገልጋዩ የተጠቃሚውን የጊዜ መስመር ጥያቄ ከደንበኛው ይቀበላል።
- ጥያቄው በድር አገልጋይ ወደ Read API አገልጋይ ይላካል።
- አንብብ ኤፒአይ ለተጠቃሚው የጊዜ ገደብ የ SQL ዳታቤዝ ይጠይቃል።
ሁሉም ትዊቶች ከሚከተሏቸው ሰዎች ይልቅ ከተጠቃሚው የሚመነጩ ካልሆነ በስተቀር የ REST ኤፒአይ ከቤት ጊዜ መስመር ጋር በተመሳሳይ መልኩ ይሰራል።
አንድ ተጠቃሚ ቁልፍ ቃላትን ይፈልጋል፡-
- የድር አገልጋዩ ከደንበኛው የፍለጋ ጥያቄ ይቀበላል።
- ጥያቄው በድር አገልጋይ ወደ የፍለጋ API አገልጋይ ይላካል።
ደረጃ 4፡ የትዊተር የጊዜ መስመር
የጊዜ መስመር መፍጠር ከባድ ስራ ነው። ከድር ወይም አፕሊኬሽን አገልጋዮች ጋር የሚያገናኝ የጊዜ መስመር የሚያመነጭ አገልጋይ ያስፈልጋል።
ተጠቃሚው በገባ ቁጥር የጊዜ መስመር አገልግሎቱ በተከታዮቹ ሠንጠረዥ ውስጥ ከተጠቃሚዎች የሚመጡ አዳዲስ ትዊቶችን ይከታተላል እና የተጠቃሚውን የጊዜ መስመር ያሻሽላል ወይም ያድሳል።
እኛ እዚህ ምንም ዓይነት የደረጃ ሥርዓት ተግባራዊ አይደለም; ይልቁንስ ከተጠቃሚው ተከታዮች የተውጣጡ 5ቱ ትዊቶች በፍጥረት ጊዜ ቅደም ተከተል በጊዜ መስመር እንደቀረቡ እንገምታለን። የ50-ትዊት አድስ መቆራረጥን ማቆየት እንችላለን። ተጠቃሚው ገጹን እስኪያድስ ድረስ ያ ገደብ ከደረሰ በኋላ አሁንም ማደስ ወይም የጊዜ መስመር መገንባት አቁመናል።
ከፍተኛ የመዘግየት እና የአፈጻጸም ስጋቶች በቀጥታ የተጠቃሚ ምግብ መፍጠር ይመጣሉ። በምትኩ፣ ከመስመር ውጭ ዥረት በቅጽበት ሊቀርብ የሚችል መፍጠር አፈጻጸምን ለማሻሻል ምርጡ መንገድ ነው። ምግቡን በተፈጠረ ጊዜ መሰረት ለማደስ የመተግበሪያውን አገልጋይ በመደበኛነት ፒንግ የሚያደርጉ የወሰኑ የጊዜ መስመር አገልጋዮችን ያሂዱ።
የደረጃ አሰጣጡ ስልተ ቀመር ወሳኝ ምልክቶችን ከግምት ውስጥ ያስገባ እና የተጠቃሚው የጊዜ መስመር ከሚከተላቸው በአንዱ ወይም ከዚያ በላይ በሆኑት ማቴሪያሎች ቁጥጥር ስር አለመሆኑን ለማረጋገጥ ክብደት መስጠት አለበት።
ይበልጥ በትክክል፣ እንደ መውደዶች፣ አስተያየቶች፣ ማጋራቶች እና የዝማኔ ጊዜ ያሉ ከማንኛውም የምግብ ንጥል ተገቢነት ጋር የተያያዙ ባህሪያትን መምረጥ እንችላለን። እያንዳንዳቸው እነዚህ መመዘኛዎች ትዊቱን ለመለካት ጥቅም ላይ መዋል አለባቸው, ከዚያም ያ ደረጃ በጊዜ መስመር ላይ ትዊቶችን ለማሳየት ጥቅም ላይ መዋል አለበት.
ለዜና መጋቢ አዲስ ይዘት ሲገኝ ተጠቃሚዎችን ያለማቋረጥ ማሳወቅ አለብን? አዲስ መረጃ ሲገኝ ተጠቃሚዎች ማስጠንቀቂያ መስጠቱ ጠቃሚ ሆኖ ሊያገኙት ይችላሉ። በሞባይል መሳሪያዎች ላይ ግን የመረጃ አጠቃቀም በጣም ውድ ከሆነ የመተላለፊያ ይዘትን ሊያባክን ይችላል።
በውጤቱም፣ መረጃን ወደ ተንቀሳቃሽ መሳሪያዎች ላለማድረግ መርጠን ልንመርጥ እንችላለን እና በምትኩ ተጠቃሚዎች ለአዲስ ልጥፎች "ለመሳብ ይጎትቱ" መፍቀድ እንችላለን።
ደረጃ 5: የመጠን ንድፍ
ማነቆ ሊሆን የሚችለው የፋኖት አገልግሎት ነው። በሚሊዮን የሚቆጠሩ ተከታዮች ያሏቸው የትዊተር ተጠቃሚዎች ትዊቶቻቸው እስኪለቀቁ ድረስ ብዙ ደቂቃዎችን መጠበቅ አለባቸው። ይህ ለትዊት ምላሾች ውድድርን ሊያስከትል ይችላል፣ ይህም ትዊቶቹን በአገልግሎት ሰዓቱ እንደገና በማዘዝ ልናስወግደው እንችላለን።
ብዙ ተከታዮች ካላቸው ሰዎች ትዊቶችን እንዳይሰራጭ ማድረግ እንችላለን። በምትኩ፣ በጣም ከሚከተሏቸው ግለሰቦች ትዊቶችን መፈለግ፣ የፍለጋ ውጤቶቹን ከተጠቃሚው የቤት የጊዜ መስመር ውጤቶች ጋር በማዋሃድ እና በመቀጠል ትዊቶቹን በአገልግሎት ሰዓቱ እንደገና ልንይዝ እንችላለን።
ተጨማሪ ማሻሻያዎች የሚከተሉትን ያካትታሉ:
- ለእያንዳንዱ የቤት የጊዜ መስመር ጥቂት መቶ ትዊቶችን ብቻ በማስታወሻ መሸጎጫ ውስጥ ያስቀምጡ።
- በማህደረ ትውስታ መሸጎጫ ውስጥ የንቁ ተጠቃሚዎች የቤት የጊዜ መስመር መረጃ ብቻ ነው የሚቀመጠው።
- አንድ ተጠቃሚ በቀደሙት 30 ቀናት ውስጥ ካልነቃ የዘመን አቆጣጠርን ከSQL ዳታቤዝ መልሰን ልንገነባው እንችላለን።
- ተጠቃሚው ማን እንደሆነ ለማወቅ የተጠቃሚ ግራፍ አገልግሎትን ይጠቀሙ።
- ትዊቶቹን ከSQL ዳታቤዝ በማውጣት ወደ ማህደረ ትውስታ መሸጎጫ ያክሉ።
- የTweet መረጃ አገልግሎት የአንድ ወር ዋጋ ያላቸውን ትዊቶች ብቻ መቆጠብ ይችላል።
- በተጠቃሚ መረጃ አገልግሎት ውስጥ ንቁ ተጠቃሚዎች ብቻ ይቀመጣሉ።
- መዘግየት ዝቅተኛ ለማድረግ፣ የፍለጋ ክላስተር ትዊቶቹን በማህደረ ትውስታ ውስጥ ማቆየት የሚያስፈልገው ሊሆን ይችላል።
መደምደሚያ
ትዊተር ትልቅ ድርጅት ቢሆንም የተሻለ ነገር አለው። የስርዓት ንድፍ ግንዛቤ. የትዊተር የጊዜ መስመርን ከፍተኛ ደረጃ አጠቃላይ እይታ ለእርስዎ ለማቅረብ የተቻለኝን አድርጌያለሁ።
ከእሱ ጠቃሚ መረጃ እንዳገኙ እና በጥሩ ሁኔታ ሊጠቀሙበት እንደሚችሉ ተስፋ አደርጋለሁ.
መልስ ይስጡ