فهرست[پټ][ښکاره]
WhatsApp یو ټولنیز پیغام رسولو پروګرام دی چې کاروونکو ته اجازه ورکوي چې یو بل سره پیغامونه تبادله کړي.
ایا تاسو کله هم فکر کړی چې WhatsApp څنګه کار کوي؟
هغه مفکورې کوم دي چې د هغې رامینځته کول او عملیات کوي؟
دا مقاله به د WhatsApp اساساتو ته لاړ شي د سیسټم ډیزاین.
موږ به د WhatsApp عمومي جوړښت ته هم لاړ شو، کوم چې د هر ډول چیټ سافټویر جوړولو لپاره کارول کیدی شي.
نو، د نورو اډو پرته، راځئ چې د WhatsApp د سیسټم ډیزاین ته یو نظر ولرو!
1. کلیدي اړتیاوې
WhatsApp یوه ډیره د توزیع وړ ټیکنالوژي ده چې په ټوله نړۍ کې د ډیری خلکو لخوا کارول کیږي. د پایلې په توګه، دا باید په ښه توګه ډیزاین شي چې په حقیقت کې تل د باور وړ او فعال وي.
د پایلې په توګه، د سیسټم مهمې اړتیاوې ټاکل خورا مهم دي.
دا د WhatsApp میسینجر لپاره لږترلږه اړتیاوې دي:
- د یو بل سره متقابل عمل اسانه کولو وړتیا.
- د پیغام اعتراف او وروستی لیدل دواړه ممکن دي (لیږل شوي، تحویل شوي، او لوستل).
- د پای څخه تر پایه کوډ کولو او د رسنیو ملاتړ ته اجازه ورکړئ (انځورونه/ویډیوګانې).
راځئ چې معلومه کړو چې زموږ اړین خدمت څومره ظرفیت ته اړتیا لري.
2. د ظرفیت اټکل کول
زموږ هدف دا دی چې یو داسې پلیټ فارم رامینځته کړئ چې د لوی مقدار ترافیک اداره کولو وړ وي. فرض کړئ چې هره ورځ 10 ملیارد SMS لیږل کیږي. موږ لرو:
- هره ورځ د یو ملیارد خلکو لخوا 10 ملیارده SMS لیږل کیږي.
- په لوړ ترافیک کې (په یوه ثانیه کې)، 700,000 خلک فعال وو (6X اوسط)
- د اعظمي کارونې په جریان کې ، په هره ثانیه کې 40 ملیون پیغامونه لیږدول کیږي.
- د پیغام اوسط اوږدوالی 160 حروف دی: 10B * 160 = 1.6TB ډیټا هره ورځ تولید کیږي.
- د مثال په توګه لس کاله خدمت واخلئ: 10 * 1.6B * 365 PB
- ټول غوښتنلیک به د مایکرو خدماتو څخه جوړ وي، چې هر یو به یو ځانګړی دنده اجرا کړي. فرض کړئ چې د پیغام لیږل 20 ملی ثانوي وخت نیسي او دا چې په هر سرور کې 100 همغږي اړیکې شتون لري. د پایلې په توګه، د چیټ سرورونو اټکل شوي شمیر ته اړتیا ده = (په هر ثانیه کې د چیٹ پیغامونه) / په هر سرور کې همغږي اړیکې = 40M * 20ms / 100 = 8000 سرورونه.
3. د لوړې کچې معمارۍ
دا سیسټم په دوه اصلي خدماتو جوړ شوی. د چټ خدمت او انتقالي خدمت، د بیلګې په توګه. د چیٹ خدمت د کاروونکو آنلاین پیغامونو لخوا رامینځته شوي ټول ترافیک اداره کوي. په ورته وخت کې، لنډمهاله خدمت ټرافیک اداره کوي کله چې کاروونکي آفلاین وي.
که کاروونکي آنلاین وي، د چیٹ خدمت د پیغامونو رسولو مسولیت لري.
دا به تایید کړي چې ایا د پیغام ترلاسه کونکی آنلاین دی که نه؛ که چیرې ترلاسه کوونکی آنلاین وي، دا خدمت به سمدلاسه پیغام وړاندې کړي؛ که چیرې ترلاسه کوونکی آنلاین نه وي، انتقالي خدمت به دوی ته پیغام واستوي کله چې دوی آنلاین راستانه شي.
انتقالي خدمت د موقتي لاسرسي وړ ډیټا ساتلو لپاره جلا ذخیره ځای ساتي تر هغه چې آفلاین کارونکي بیا وصل شي.
د لوړې کچې APIs ډیزاین کول
دا خدمت د پیغامونو لیږلو او لوستلو لپاره دوه د لوړې کچې فعالیت APIs لري. سیسټم د REST جوړښت په کارولو سره پلي کیدی شي.
د پیغامونو لیږلو لپاره پیرامیټونه
دا API به د دوو کاروونکو ترمنځ د پیغامونو لیږدولو لپاره وکارول شي.
د خبرو اترو پیرامیټونه
دا API د تار شوي چیټونو ښودلو لپاره کارول کیږي. دا لومړی شی په پام کې ونیسئ چې تاسو یې ګورئ کله چې تاسو WhatsApp خلاص کړئ. موږ غواړو یوازې په یوه API پوښتنې کې د یو کارونکي لپاره یو څو پیغامونه ترلاسه کړو. د دې اداره کولو لپاره، د آفسټ او پیغام شمیرنې پیرامیټرو ته اړتیا ده.
د ځانګړتیاوو دندې څه دي لکه وروستی لیدل شوی، واحد ټک، او دوه ګونی ټک؟
د دې خدماتو په پلي کولو کې مهم رول د اعتراف خدمت دی. دا ځانګړتیاوې رامینځته شوي ځکه چې دا خدمت د اعتراف ځوابونو رامینځته کولو او تصدیق کولو ته دوام ورکوي.
- یو ګړی ټک: کله چې د کارن A څخه یو پیغام کارونکي B ته ورسیږي، سرور یو واحد ټیک لیږي چې دا ومني چې پیغام لیږدول شوی.
- دوه ګونی ټک: وروسته له دې چې د سرور پیغام د مناسب پیوستون له لارې کارن B ته واستول شي، کارن B به سرور ته د پیغام رسید تایید کړي. سرور به بیا د کارن A ته د بل اعتراف سره چمتو کړي. د پایلې په توګه، یو نقل ټیک به ښکاره شي.
- بلوټیک: کارن B به د پیغام له کتلو وروسته سرور ته بل اعتراف واستوي. سرور به بیا کارن A ته د اعتراف اضافي پیغام واستوي. یو نیلي ټیک به وروسته د کارونکي A په سکرین کې څرګند شي.
- وروستی ځل لیدل شوی: د زړه ضربان میکانیزم په بشپړ ډول د وروستي لیدل شوي ځانګړتیا لپاره مسؤل دی. په هرو 5 ثانیو کې، د زړه ضربان سرور ته لیږدول کیږي، کوم چې د هر کارونکي وروستی لیدل شوي حالت په میز کې ساتي چې د بل کارونکي لخوا په اسانۍ سره لاسرسی کیدی شي.
4. د مهمو ځانګړتیاوو ډیزاین کول
شخصي تعامل
دا د چیٹ خدمت لازمي برخه ده. یو کارونکی کولی شي په ساده ډول د دې خدمت په کارولو سره بل کارونکي ته پیغامونه واستوي. راځئ چې وګورو چې دا څنګه کار کوي:
فرض کړئ جې غواړي د آیوش سره اړیکه ونیسي. جې د چیٹ سرور سره تړلی دی چې ورسره پیغام ترلاسه کوي. جې د چیٹ سرور څخه تایید ترلاسه کوي چې پیغام لیږل شوی و. د چیټ سرور اوس د ډیټا سټور څخه د چیٹ سرور په اړه معلومات غوښتنه کوي چې آیوش ورسره وصل دی. د جې چیټ سرور اوس پیغام د آیوش چیټ سرور ته لیږدوي، او آیوش پیغام د فشار میکانیزم له لارې ترلاسه کوي. آیوش اوس د جې چیټ سرور ته یو اعتراف لیږي ، کوم چې جې ته خبر ورکوي چې پیغام استول شوی. که آیوش پیغام بیا ولولي، یو تازه اعتراف چې پیغام لوستل شوی و جې ته وسپارل شو.
د کارونکي فعالیت حالت
وروستی ځل چې یو سړی فعال و، د فوري پیغامونو منظم ځانګړتیا ده.
د پیرودونکي او سرور تر مینځ د اړیکې ساتلو سیسټم پدې ډیاګرام کې ښودل شوی. ویب ساکټونه د سرور او پیرودونکي ترمینځ دوه اړخیزه اړیکه رامینځته کولو لپاره کارول شوي. دا ارتباطات د زړه ټکانونه لیږي، کوم چې د کاروونکي د فعالیت وضعیت څارلو لپاره کارول کیږي.
له پای څخه تر پایه محرمیت
له پای څخه تر پایه کوډ کول یو کلیدي ځانګړتیا ده چې ډاډ ترلاسه کوي چې یوازې د خبرو اترو کاروونکي کولی شي اړیکې ولولي. عامه کیلي د ټولو کاروونکو په مینځ کې شریکه شوې چې په مخابراتو کې ښکیل دي او د پای څخه تر پای پورې کوډ کولو دوام لپاره خورا مهم دی. فرض کړئ چې په چینل کې دوه کاروونکي شتون لري، جې او آیوش، چې د یو بل سره اړیکه لري.
جې د آیوش عامه کیلي لري، او آیوش د جې عامه کیلي او همدارنګه د دوی غیر شریک شخصي کیلي لري. د پایلې په توګه ، کله چې جې پیغام لیږدوي ، هغه دا د آیوش عامه کیلي سره کوډ کوي ، کوم چې یوازې د آیوش شخصي کیلي سره کوډ کیدی شي.
په ورته ډول، جې به یوازې د آیوش ارتباط ډیکوډ کولو توان ولري. د پایلې په توګه، یوازې جې او آیسو به وکولی شي د یو بل مخابراتو وګوري، او سرور به یوازې په ټوله پروسه کې د دروازې په توګه کار وکړي.
5. خنډونه
هر سیسټم د خرابۍ سره مخ دی. د دومره لوی مقدار ترافیک اداره کولو لپاره ، خدمت باید هر وخت عملیاتي او د خطا زغمونکي پاتې شي ترڅو د خنډونو مخه ونیول شي. ځکه چې زموږ خدمت په بشپړ ډول د چیټ او انتقالي سرورونو پورې اړه لري، موږ باید ټول هغه مسلې حل کړو چې د دوی د عملیاتو څخه راپورته کیږي.
د چیٹ سرور ناکامي: دا زموږ د سیسټم زړه دی. کله چې کاروونکي آنلاین وي، دا د پیغامونو اداره کولو او رسولو مسولیت لري. د پایلې په توګه، دا سیسټم د خپلو کاروونکو سره اړیکې ساتي.
د پایلې په توګه، که دا خدمت ناکام شي، ټول جوړښت به زیانمن شي. د چیٹ سرور د ناکامۍ اداره کولو لپاره دوه لارې شتون لري. یوه طریقه د TCP پیوستون بل سرور ته لیږدول دي، پداسې حال کې چې بله طریقه دا ده چې کاروونکو ته اجازه ورکړي چې د پیوستون له لاسه ورکولو په صورت کې په اتوماتيک ډول پیوستون پیل کړي.
د انتقالي ذخیره کولو ناکامي: بله برخه چې د ناکامۍ احتمال لري چې ممکن په پای کې ټول خدمت ته زیان ورسوي انتقالي ذخیره ده. که چیرې دا خدمت ناکام شي نو آفلاین کاروونکو ته په لاره کې پیغامونه ورک شوي.
موږ کولی شو د هر کارونکي لنډمهاله ذخیره په تکرارولو سره د پیغام له لاسه ورکولو مخه ونیسو. د پایلې په توګه، نقل د دندو پروسس کولو لپاره ګمارل کیدی شي کله چې کاروونکي آنلاین راستون شي. که اصلي سرور د لاسرسي وړ شي ، د کارونکي انتقالي ذخیره اصلي او نقل دواړه مثالونه په یو واحد پلورنځي کې یوځای کیږي.
6. د اصلاح کولو تخنیکونه
لطیسي: د دې لپاره چې د پیرودونکي بې ځایه او ښه تجربه وړاندې کړي، د میسینجر خدمت باید په ریښتیني وخت کې وي. د پایلې په توګه، ځنډ باید د ډیری لاسرسي معلوماتو برخې کیچ کولو سره کم شي. موږ کولی شو د توزیع شوي کیچ لکه Redis په کارولو سره د کارونکي فعالیت حالت او وروستي خبرې په حافظه کې ذخیره کړو.
پیدايښت: موږ خپل خدمت ته اړتیا لرو چې ډیری وخت شتون ولري. زموږ سیسټم باید د غلطیو زغمونکی وي، پدې توګه موږ کولی شو د انتقالي پیغامونو ډیری کاپيونه وساتو ترڅو کوم پیغام چې ورک شوی وي په چټکۍ سره د نقلونو څخه بیرته ترلاسه شي. د پایلې په توګه، د سیسټم شتون د خطر سره مخامخ کیدی نشي.
پایله
زموږ سیسټم اوس یوازې یو څو وړتیاوې ملاتړ کوي، مګر موږ کولی شو دا په اسانۍ سره پراخ کړو ترڅو څو کسانو ته پیغامونه توزیع کولو لپاره ګروپ چیټونه اضافه کړو. تاسو کولی شئ د ویډیو او تلیفون زنګ وړتیا هم چمتو کړئ. دا سیسټم داسې هم رامینځته کیدی شي چې کاروونکي کولی شي د وضعیت تازه معلومات یا داستانونه خپاره کړي او یو بل ولولي.
ما تاسو ته د WhatsApp سیسټم ډیزاین په اړه د لوړې کچې عمومي لید چمتو کولو لپاره سخت کار کړی. زه امید لرم چې تاسو به یې خوند اخیستی وي او دا به ښه ګټه پورته کړي.
یو ځواب ورکړئ ووځي