ዋትስአፕ ተጠቃሚዎች እርስበርስ መልእክት እንዲለዋወጡ የሚያስችል የማህበራዊ መልእክት መላላኪያ ፕሮግራም ነው።
WhatsApp እንዴት እንደሚሰራ አስበህ ታውቃለህ?
አፈጣጠሩን እና አሠራሩን የሚደግፉ ፅንሰ-ሀሳቦች ምንድን ናቸው?
ይህ መጣጥፍ የዋትስአፕን መሰረታዊ ነገሮች ያብራራል። የስርዓት ንድፍ.
እንዲሁም ማንኛውንም አይነት የውይይት ሶፍትዌር ለመገንባት የሚያገለግል የዋትስአፕ አጠቃላይ አርክቴክቸርን እናልፋለን።
እንግዲያው፣ ብዙ ሳንዘነጋ፣ የዋትስአፕን ሲስተም ዲዛይን እንይ!
1. ቁልፍ መስፈርቶች
ዋትስአፕ በከፍተኛ ደረጃ ሊለካ የሚችል ቴክኖሎጂ ሲሆን በአለም ዙሪያ ባሉ ብዙ ሰዎች ጥቅም ላይ ይውላል። በውጤቱም, ሁልጊዜም አስተማማኝ እና የሚሰራ እንዲሆን በጥሩ ሁኔታ የተነደፈ መሆን አለበት.
በውጤቱም, የስርዓቱን ወሳኝ ፍላጎቶች መወሰን ወሳኝ ነው.
ለዋትስአፕ መልእክተኛ ዝቅተኛዎቹ መስፈርቶች እነዚህ ናቸው።
- የአንድ ለአንድ መስተጋብርን ማመቻቸት የሚችል።
- የመልዕክት እውቅና እና ለመጨረሻ ጊዜ የታዩት ሁለቱም ይቻላል (የተላከ፣ የተላኩ እና የተነበቡ) ናቸው።
- ከጫፍ እስከ ጫፍ ምስጠራን እና የሚዲያ ድጋፍን (ምስሎች/ቪዲዮዎችን) ፍቀድ።
አስፈላጊው አገልግሎታችን ምን ያህል አቅም እንደሚፈልግ እንወቅ።
2. የመገመት አቅም
አላማችን ከፍተኛ መጠን ያለው ትራፊክ ማስተናገድ የሚችል መድረክ መፍጠር ነው። በቀን 10 ቢሊዮን ኤስኤምኤስ እንደሚላክ አስብ። አለን።
- በየቀኑ 10 ቢሊዮን የኤስኤምኤስ መልእክት በአንድ ቢሊዮን ሰዎች ይላካል።
- ከፍተኛ የትራፊክ ፍሰት (በሴኮንድ)፣ 700,000 ሰዎች ንቁ ነበሩ (6X አማካኝ)
- ከፍተኛ አጠቃቀም ላይ በሴኮንድ 40 ሚሊዮን መልዕክቶች ይተላለፋሉ።
- የመልእክቱ አማካይ ርዝመት 160 ቁምፊዎች ነው፡ 10B * 160 = 1.6TB ዳታ በየቀኑ ይፈጠራል።
- የአሥር ዓመታት አገልግሎትን እንደ ምሳሌ እንውሰድ፡ 10 * 1.6B * 365 PB
- አፕሊኬሽኑ በሙሉ ማይክሮ ሰርቪስ ያቀፈ ይሆናል፣ እያንዳንዱም ልዩ ተግባር ያከናውናል። መልእክት መላክ 20 ሚሊሰከንዶች እንደሚወስድ እና በአንድ አገልጋይ 100 የሚጣመሩ ግንኙነቶች እንዳሉ አስብ። በውጤቱም፣ የሚጠበቀው የውይይት አገልጋዮች ብዛት = (የውይይት መልእክቶች በሰከንድ መዘግየት)/ በአንድ አገልጋይ የሚገናኙ ግንኙነቶች = 40M * 20ms/100 = 8000 አገልጋዮች።
3. ከፍተኛ-ደረጃ አርክቴክቸር
ይህ ስርዓት በሁለት ዋና አገልግሎቶች ላይ የተገነባ ነው. የውይይት አገልግሎት እና የመሸጋገሪያ አገልግሎት፣ ለምሳሌ። የቻት አገልግሎቱ በተጠቃሚዎች የመስመር ላይ መልእክቶች የሚመነጨውን ሁሉንም ትራፊክ ያስተናግዳል። በተመሳሳይ ጊዜ, ጊዜያዊ አገልግሎቱ ተጠቃሚው ከመስመር ውጭ በሚሆንበት ጊዜ ትራፊክን ይቆጣጠራል.
ተጠቃሚው መስመር ላይ ከሆነ፣ የቻት አገልግሎት መልዕክቶችን የማድረስ ኃላፊነት አለበት።
የመልእክቱ ተቀባይ መስመር ላይ መሆኑን ወይም አለመሆኑን ያረጋግጣል። ተቀባዩ መስመር ላይ ከሆነ, ይህ አገልግሎት ወዲያውኑ መልእክቱን ያስተላልፋል; ተቀባዩ መስመር ላይ ካልሆነ፣ የመሸጋገሪያ አገልግሎቱ መስመር ላይ ሲመለሱ መልእክቱን ይልክላቸዋል።
የመሸጋገሪያ አገልግሎቱ ከመስመር ውጭ ተጠቃሚው ዳግም እስኪገናኝ ድረስ ለጊዜው ተደራሽ የሆነ መረጃ ለማቆየት የተለየ የማከማቻ ቦታ ይይዛል።
ባለከፍተኛ ደረጃ ኤፒአይዎችን መንደፍ
ይህ አገልግሎት መልዕክቶችን ለመላክ እና ለማንበብ ሁለት ከፍተኛ ደረጃ ያላቸው ኤፒአይዎች አሉት። ስርዓቱ የ REST አርክቴክቸር በመጠቀም ሊተገበር ይችላል።
መልዕክቶችን ለመላክ መለኪያዎች
ይህ ኤፒአይ በሁለት ተጠቃሚዎች መካከል መልዕክቶችን ለማስተላለፍ ጥቅም ላይ ይውላል።
የንግግር መለኪያዎች
ይህ ኤፒአይ ተከታታይ ውይይቶችን ለማሳየት ይጠቅማል። ዋትስአፕን ስትከፍት መጀመሪያ የምታየው ይህንን አስብበት። ለአንድ ተጠቃሚ በአንድ API መጠይቅ ውስጥ ጥቂት መልዕክቶችን ብቻ ማግኘት እንፈልጋለን። ይህንን ለመቆጣጠር የማካካሻ እና የመልእክት ብዛት መለኪያዎች ያስፈልጋሉ።
ለመጨረሻ ጊዜ የታዩት፣ ነጠላ ምልክት እና ድርብ ምልክት ያሉ የባህሪያት ተግባራት ምንድናቸው?
በእነዚህ አገልግሎቶች መዘርጋት ውስጥ ያለው ጠቃሚ ሚና የምስጋና አገልግሎት ነው። እነዚህ ባህሪያት የተገነቡት ይህ አገልግሎት የዕውቅና ምላሾችን ማፍራት እና ማረጋገጥ ስለሚቀጥል ነው።
- ነጠላ ምልክት፦ ከተጠቃሚ ሀ የተላከ መልእክት ወደ ተጠቃሚ ቢ ሲደርስ አገልጋዩ መልእክቱ መተላለፉን አምኖ አንድ ነጠላ ምልክት ይልካል።
- ድርብ ምልክት ያድርጉየአገልጋዩ መልእክት ወደ ተጠቃሚ B በተገቢው ግንኙነት ከተላከ በኋላ ተጠቃሚ B ለአገልጋዩ መልእክት መቀበሉን ይቀበላል። አገልጋዩ ለተጠቃሚ A ሌላ እውቅና ይሰጣል። በውጤቱም, የተባዛ ምልክት ይታያል.
- ሰማያዊ ምልክትተጠቃሚ B መልእክቱን ካጣራ በኋላ ሌላ እውቅና ወደ አገልጋዩ ይልካል። ከዚያም አገልጋዩ ለተጠቃሚ A ተጨማሪ የእውቅና መልእክት ይልካል። ከዚያ በኋላ ሰማያዊ ምልክት በተጠቃሚ A ስክሪን ላይ ይታያል።
- ለመጨረሻ ግዜ የታየውለመጨረሻ ጊዜ ለታየው ባህሪ የልብ ምት አሠራር ሙሉ በሙሉ ተጠያቂ ነው. በየ 5 ሰከንድ፣ የልብ ምት ወደ አገልጋዩ ይተላለፋል፣ ይህም የእያንዳንዱ ተጠቃሚ የመጨረሻ የታየበትን ሁኔታ በማንኛውም ተጠቃሚ በቀላሉ ማግኘት በሚችል ሠንጠረዥ ውስጥ ይከታተላል።
4. ቁልፍ ባህሪያትን መንደፍ
ግላዊ መስተጋብር
ይህ የውይይት አገልግሎት አስፈላጊ አካል ነው። አንድ ተጠቃሚ በቀላሉ ይህንን አገልግሎት ተጠቅሞ ለሌላ ተጠቃሚ መልእክት መላክ ይችላል። ይህ እንዴት እንደሚሰራ እንመልከት፡-
ጄይ ከአዩሽ ጋር መገናኘት እንደሚፈልግ አስብ። ጄ መልእክቱን ከተቀበለበት የውይይት አገልጋይ ጋር የተገናኘ ነው። ጄይ መልእክቱ መላኩን ከቻት አገልጋይ ማረጋገጫ ይቀበላል። የውይይት አገልጋዩ አዩሽ የተገናኘበትን የውይይት አገልጋይ በተመለከተ አሁን ከዳታ ማከማቻው መረጃ እየጠየቀ ነው። የጄ ቻት አገልጋይ አሁን መልእክቱን ወደ አዩሽ ቻት አገልጋይ ያስተላልፋል፣ እና አዩሽ መልዕክቱን የሚቀበለው በመግፋት ዘዴ ነው። አዩሽ አሁን ለጄ ቻት አገልጋይ እውቅናን ልኳል፣ እሱም መልእክቱ እንደደረሰ ለጄ ያሳውቃል። አዩሽ መልእክቱን በድጋሚ ካነበበ፣ መልዕክቱ እንደተነበበ አዲስ እውቅና ለጄ ደረሰ።
የተጠቃሚ እንቅስቃሴ ሁኔታ
አንድ ሰው ለመጨረሻ ጊዜ ሲንቀሳቀስ የፈጣን መልእክተኞች መደበኛ ባህሪ ነው።
በደንበኛው እና በአገልጋዩ መካከል ያለውን ግንኙነት ለመጠበቅ የሚያስችል ስርዓት በዚህ ሥዕላዊ መግለጫ ላይ ተገልጿል. የድር ሶኬቶች በአገልጋዩ እና በደንበኛው መካከል ባለሁለት አቅጣጫ ግንኙነት ለመፍጠር ጥቅም ላይ ውለዋል። እነዚህ ግንኙነቶች የተጠቃሚውን እንቅስቃሴ ሁኔታ ለመከታተል የሚያገለግሉ የልብ ምቶች ይልካሉ።
ከመጨረሻ እስከ መጨረሻ ግላዊነት
ከጫፍ እስከ ጫፍ ምስጠራ ተነጋገሩ ተጠቃሚዎች ብቻ ግንኙነቶችን ማንበብ እንደሚችሉ የሚያረጋግጥ ቁልፍ ባህሪ ነው። ይፋዊ ቁልፍ በመገናኛው ውስጥ ለሚሳተፉ ሁሉም ተጠቃሚዎች የሚጋራ ሲሆን ከጫፍ እስከ ጫፍ ምስጠራን ለማስቀጠል ወሳኝ ነው። በሰርጡ ላይ ጄይ እና አዩሽ የሚግባቡ ሁለት ተጠቃሚዎች እንዳሉ አስብ።
ጄይ የአዩሽ ህዝባዊ ቁልፍ አለው፣ እና አዩሽ የጄ የህዝብ ቁልፍ እና እንዲሁም የጋራ ያልሆነ የግል ቁልፍ አላቸው። በውጤቱም ጄይ መልእክቱን ሲያስተላልፍ በአዩሽ ፐብሊክ ቁልፍ ኢንክሪፕት ያደርጋል ይህም በአዩሽ የግል ቁልፍ ብቻ ነው የሚፈታው።
በተመሳሳይ፣ ጄ የAayushን ግንኙነት መፍታት የሚችለው ብቻ ነው። በውጤቱም፣ ጄይ እና አአይሱህ ብቻ ናቸው የሌላውን ግንኙነት ማየት የሚችሉት፣ እና አገልጋዩ በአጠቃላይ ሂደት ውስጥ እንደ መግቢያ በር ሆኖ ይሰራል።
5. ጠርሙሶች
እያንዳንዱ ስርዓት ለችግር የተጋለጠ ነው. ይህን ያህል መጠን ያለው የትራፊክ ፍሰት ለመቆጣጠር፣ ማነቆዎችን ለማስወገድ አገልግሎቱ ሁልጊዜ ሥራ ላይ የሚውል እና ስህተትን የሚቋቋም መሆን አለበት። አገልግሎታችን ሙሉ በሙሉ በቻት እና አላፊ ሰርቨሮች ላይ የተመሰረተ ስለሆነ በአሰራራቸው የሚነሱትን ሁሉንም ጉዳዮች መፍታት አለብን።
የውይይት አገልጋይ ውድቀትይህ የስርዓታችን ልብ ነው። ተጠቃሚዎች መስመር ላይ ሲሆኑ መልእክቶችን የማስተዳደር እና የማድረስ ሃላፊነት አለበት። በውጤቱም, ይህ ስርዓት ከተጠቃሚዎቹ ጋር ግንኙነቶችን ያቆያል.
በውጤቱም, ይህ አገልግሎት ካልተሳካ, አጠቃላይ ስነ-ህንፃው ይጎዳል. የቻት አገልጋዩን ውድቀት ለመቆጣጠር ሁለት መንገዶች አሉ። አንዱ ዘዴ የTCP ግንኙነቶችን ወደ ሌላ አገልጋይ መቀየር ሲሆን ሌላኛው ግንኙነቱ በሚጠፋበት ጊዜ ተጠቃሚዎች በራስ-ሰር ግንኙነቶችን እንዲጀምሩ መፍቀድ ነው።
የመሸጋገሪያ ማከማቻ አለመሳካት።: ሌላው ለውድቀት የተጋለጠ አካል ውሎ አድሮ አገልግሎቱን ሊጎዳ የሚችል ጊዜያዊ ማከማቻ ነው። ይህ አገልግሎት ካልተሳካ ወደ ከመስመር ውጭ ተጠቃሚዎች የሚሄዱ መልዕክቶች ጠፍተዋል።
የእያንዳንዱን ተጠቃሚ ጊዜያዊ ማከማቻ በመድገም የመልዕክት መጥፋትን መከላከል እንችላለን። በውጤቱም፣ ተጠቃሚው ወደ መስመር ላይ በሚመለስበት ጊዜ ግልባጩ ተግባራቶቹን ለማስኬድ ስራ ላይ ሊውል ይችላል። ዋናው አገልጋይ ተደራሽ ከሆነ የተጠቃሚው የመሸጋገሪያ ማከማቻ ኦሪጅናል እና ብዜት ወደ አንድ መደብር ይጣመራሉ።
6. የማመቻቸት ዘዴዎች
ያቆበቆበ: እንከን የለሽ እና የተሻሻለ የደንበኛ ተሞክሮ ለማድረስ የሜሴንጀር አገልግሎት ቅጽበታዊ መሆን አለበት። በውጤቱም፣ ብዙ ጊዜ የሚደርሰውን መረጃ በከፊል በመሸጎጥ የቆይታ ጊዜ መቀነስ አለበት። እንደ Redis ያለ የተከፋፈለ መሸጎጫ በመጠቀም የተጠቃሚውን እንቅስቃሴ ሁኔታ እና የቅርብ ጊዜ ንግግሮችን በማህደረ ትውስታ ውስጥ መሸጎጥ እንችላለን።
ለማገኘት አለማስቸገር፦ አገልግሎታችን ብዙ ጊዜ እንዲገኝ እንፈልጋለን። ስርዓታችን ስህተትን የሚቋቋም መሆን አለበት፣ስለዚህ የጠፋ መልእክት ከተባዛው በፍጥነት እንዲመለስ በርካታ አላፊ መልዕክቶችን ማቆየት እንችላለን። በውጤቱም, የስርዓቱ ተገኝነት አደጋ ላይ ሊወድቅ አይችልም.
መደምደሚያ
ስርዓታችን አሁን የሚደግፈው ጥቂት ችሎታዎች ብቻ ነው፣ነገር ግን መልእክቶችን ለብዙ ግለሰቦች ለማሰራጨት የቡድን ቻቶችን ለመጨመር በቀላሉ ልናሰፋው እንችላለን። እንዲሁም የቪዲዮ እና የስልክ ጥሪ ችሎታዎችን ማቅረብ ይችላሉ። ይህ ስርዓት ተጠቃሚዎች የሁኔታ ማሻሻያዎችን ወይም ትረካዎችን ማተም እና እርስበርስ ማንበብ እንዲችሉ ይህ ስርዓት ሊዳብር ይችላል።
የዋትስአፕ ሲስተም ዲዛይን ከፍተኛ ደረጃ አጠቃላይ እይታ ለእርስዎ ለማቅረብ ጠንክሬ ሰርቻለሁ። እንደተደሰቱት እና በጥሩ ሁኔታ እንደሚጠቀሙበት ተስፋ አደርጋለሁ።
መልስ ይስጡ