از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 21 آموزش مهندسی داده و بیگ دیتا، مدرس به پیادهسازی یک سرور جیآرپیسی با استفاده از پروتوبف و پایتون میپردازد. ابتدا محیط مجازی ایجاد شده و لازمترین کتابخانهها نصب میشوند. سپس فایلهای مربوط به تعریف پیامها و سرویسها درست میشوند و سرویس جیآرپیسی پیادهسازی میگردد. سرور ایجاد شده و پورت آن مشخص میشود، سپس کلاینتی برای ارتباط با سرور ساخته میشود که از یک پراکسی استفاده میکند و درخواستهایی مانند گت یوزر ارسال میکند. همچنین، فرآیند ارتباط بین کلاینت و سرور با استفاده از ریکوست و ریسپانس بررسی میشود و نیاز به دریافت آیدی کاربر در ریکوست برای ارسال دادههای مرتبط توضیح داده میشود.
نکات کلیدی
ساخت سرور جیآرپیسی با استفاده از پروتوبف و پایتون
پیادهسازی سرویس جیآرپیسی و ارتباط کلاینت-سرور
فرآیند ارتباط بین کلاینت و سرور با استفاده از ریکوست و ریسپانس
نیاز به دریافت آیدی کاربر در ریکوست برای ارسال دادههای مرتبط
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ
ادامه بحثمون.
جیآرپی سی. میخوایم یه دونه سرور جیآر پی
سی رو با همدیگه بسازیم. الان تو این قسمت
یه ریکوستی در قالب یه کلاینت بهش بدیم و
یه اطلاعاتی ازش دریافت بکنیم.
بیایم شروع بکنیم. سافتار پروژه یه همچین
چیزیه.
بریم سافت پروژهمونو درست بکنیم. بیام اینجا
این فایلا رو زیر پاک کنم جلستات قبله خب
اینجوری بهتره که من د تا سفر کنارم داشته باشم اول یه دایرکتوری میخوایم پروتو
البته
بذارید اینو تو خود سرور باید انجام بدیم
دیگه چرا اینجا انجام بدم هی بخوام فایلا
رو جابهجا کنم بذارید مستقیم سرور بریم یه
لحظه حدی
توی اس به اسم اسgآرپی
سی دش
بعد سی دی میکنم داخلش این از یه دایرکتوری درست میکنم اینجا به
اسم پروتو
یه دونه هم که محیط مجازیم که الان درست میکنیم خب یه دونه
محیط مجازی اینجا درست بکنیم خب و بعداً
فعالش بکنیم.
خیلی خب یه سری کارا رو من دوباره انجام
میدم اگه حالا خاطرتون نیست برای اینکه
یه محیط مجازی نصب میکنیم
حتماً باید این قبل این بیاد بچهها که معلوم بش اکتیو شده. بعد یه سری ابزار
لازم داشتیم برای نصبش تو این محیط مجازی
اینا رو نصب میکنیم
برای اینکه خیالمون راحت بشه اینا نصب شده یه پیپلیس میزنیم اینجا باید بیاد اسماش
اینم بچهها یادتون باشه نصب کردیم اینم
نصب کنید
خیلی خب
این از کل فرایند این کلیر میکنم که بیاد
بالای ساخت حالا بریم ادامه بدیم اینجا ما
داخل اون دایرکتور هستیم اکتیو هم کردیم
میایم اینجا میگه اول این فایله رو درست
میکنیم خب خیلی ساده میتونیم فایلا رو
درست بکنیم با دستور تاچ میگم تاچ
میگم برو توی
پروتو
بعد میگه اینا رو بریزیم داخلش میگم چشم اینا رو کپی میکنم وین
میرم رو مود اینسرت کلیک راست میکنم که اینا کپیشه اینجا
تو نقطه دبلیو کیو این الان اینجا ذخیره شد داخل این فایله
چیز خاصی هم نیستا یه دونه سرویس نوشته که
اطلاعات میگیره. اینم اطلاعات تو یوزره
تموم شد رفت.
یه سرویس داریم یه آرپی سی داریم
که کد که ورودیمون یه دونه اینه و خروجیشم
اینه.
پس ما اینجا یه سرویسی الان نوشتیم که یه اطلاعات یه یوزری رو قراره به ما
برگردونه. چیز خاصی داخلش نیست.
[صدای خرناس]
خب میگه که این کده رو اجرا میکنیم که کد
پایتونش ایجاد بشه.
این از این الان من ال اس بگیرم داخل جنریتد
اون فایلا اینجا درست شده
د تا فایل باید درست شده باشه که درست شده این د تا فایل میگه وظایف مختلفی دارن این
فایل تعریف مسیجهای پروتوباف رو در
اختیار پایتون قرار میده یعنی تقریباً
اینا
ولی فایل اینک کد مربوط به خود سرویس جیآر
پی سی رو داره. مهمترین کلاسونم ایناست.
یوزر سرویس استاپ یوزر سرویس سرویسر.
حالا ادامه میبینیم که هر کدوم قراره
چیکار بکنه.
میگه چون فایلای جنریتور رو داخل این پوشه جنریتد گذاشتیم هنگام اجرای برنامه باید
پایتون بتونه اونا رو پیدا کنه.
برای ساده نگه داشتن پروژه قبل از اجرای
برنامه
اینو تو پوشه اینو از پوشه اصلی اجرا
میکنید
داخل همین پوشه اصلی اینو اجرا کنید
چی گذاشته نوشته که پایتون پس یعنی اون مسیر پایتون کجا باشه اونجایی که الان
هستم پیبوتی یعنی کالن دایرکتوری اسش
جنریتد
میگه فایل فایلای پایتونو باید اینجا پیدا
کنیم.
حالا پایتون میتونه مستقیماً این فایلا
رو ایمپورت بکنه. اما بریم ساخت سرور.
میگه سیدی کن داخل سرور.
بعد یه دونه فایل من با نانو کار نمیکنم.
با ویم راحتترم.
خب این از این. اینم کد اولیهشه. همینو کپی میکنم. مود اینسترت
پیست میکنم. د نقطه دبل کیو
میگه اول کتابخونه جیآرپی سی رو ایمپورت
کرده
بعد از کانکارنت ایمپورت کرده فیچرو
و این د تا کد پایتون رو هم اینجا ایمپورت
کردن
این برای چیه میگه این قسمت برای اجرای
همزمان ریکوستها تو سروره استفاده میشه
حالا باید سرویس تعریف شده در این رو
پیاده سازی بکنید
این در حقیقت اون چیزیه که باید پیاده سازی بکنیم. بریم خط به خط ببینیم این
چیه.
کلاس یوزر سرویس سرویسر این قسمت
اینجا
این قسمت توسط جیآرپی سی از روی فایل
پروتوپ.
تولید میشه همون پروتو. یوزری که داشتیم
و ما ازش اونو به ارث میبریم اصطلاحاً
اینها ازش اینو به ارث میبریم
سپس متدهایی که در فایل پروتو تعریف
کردیمو پیادهسازی میکنیم ما در پروتو
نوشته بودیم آرپی سی گت یوزر فلان ریترن
فلان پس در پایتون باید باشه یه همچین
چیزی
ریکوست چیه
در گت ویزه
ریکوست متغیر ریکوست درخواست کلاینته
بذار من اینیه عکسشو بگیرم اینجا بذارم
کنار که داریم خط به خط میریم جلو
اینجا باشه خب
پس ما داخل اون فایل پروتو یه گت یوزری داشتیم که اینو باید داخل پایتون به این
شکل پیادهسازی بکنیم این ریکوستی هم که
اینجاست اون ریکوستی که قراره کاربرمون
بفرسته
اینجاهم که داریم پرینتش میکنیم ریکوست آیدی رو که چیز خاصی نیست
یه چیزی هم که اینجا میگه میگه تو فایل پروتو ما گفته بودیم گت یوزر ریکوست شامل
یه دونه آیدیه برای همین میتونیم بنویسیم
ریکست.آی آیدی اینم این بالا داشتیم
روش اینها
ریکوستی که از سمت یوزر میاد یک آیدی داخلشه
خب کانتکست چیه اطلاعات مرب به آرپی سی رو در اختیار سرور
قرار میدهد بعداً با کاراکتر کارهایی مثل
ارور هندلینگ و استاتوس کد و متاد تو
آتنتیکیشن و ددلاینو انجام میدیم ولی
فعلاً باهاش کاری نداریم.
ساخت ریسپانس در سیور ابتدا باید یک یوزر
ایجاد بکنیم این یوزرمونه
بعد آن رو داخل گت یوزر ریسپانس قرار بدیم
نگاه کنید اینهاش
یه یوزر ساخته داخل چی قرار داده گت یوزر
ریسپانس
حالا وقتی ریکوست بیاد ریکوست آیدی یوزر
ساخته میشه این فعال میشه به کلانتونو
برمیگردونه
میارم مود اینست یکراف که اینا بیاد اونجا
باز میم این ست و میگه انتهاشم باید اینو اضافه کنید.
اینم کلشه. اگه خواستید میتونید اصلاً از این کد استفاده کنید. من همینو کپی میکنم
اصلاً
کل اینو پاک کنید. اینو بذارید اینجا.
این میشه کل فایل سلا من اینو سیوش کنم میام بیرون
خب [صدای خرناس] یه دونه قسمتی داریم بذار
من یه بار دیگه بازش کنم به اسم تر پول
اگزکیوتر این چیه میگه کجاست
میگه یه قسمت توجه میکنید میگه که سرور چند ریکوست همزمان میتونه دریافت بکنه.
این قسمت اینو مشخص میکنه.
در اینجا ما گفتیم ۱۰ تا یعنی ۱۰ تا
ریکوستو همزمان میتونه هندل بکنه.
ریجستر کردن سرو سرویس عذر میخوام
اینم بالا این قسمته یوزر سرویس سرویس تو
سرور
به زبون ساده میگه اگر درخواستی برای یوزر سرویس ارسال بشه آن رو به کلاس یوزر سرویس
بده همین
پورت مربوط به سرورم که اینجا مشخص شده
پورت ۵ هز۵۱
یعنی سرور روی پورت این گوش میده منتظر ریکوستا میمونه
میگه این پرتم یه دونه چیزه یه پورت متداوله ولی اجباری نیست که حتماً رو این
باشه میتونید پورتهای دیگه رو هم بذارید
این سکیور چیه اینجا گذاشتیم اینجا نوشتیم اد این سکیور پورت به این
معنی که در حال حاضر تی اس فعال نیست
که ما تو محیط آموزش میتونیم این کارو
بکنیم ولی طبیعتاً تو محیط پروداکشن نه و
تی ال اس فعال میشه حالا در واقع سکیوریتی
بعداً صحبت میکنیم دیگه
خب برمیگردیم به پوشه
در حقیقت قبلیمون یه سی دی میزنم میگم یه دونه عقب
اینو که تنظیم کردیم
حالا میتونیم اینو اجرا بکنیم
فایل سرورمونو اجرا میکنیم میگه منتظر می
نگاه کنید الان روپ پورت ۵۰ هز۵۱
منتظر ریکوسته خب ساخت کلاینت یه ترمینال
جدید باز کنید و
برید داخل پوشه اصلی خب بذار من که باز
کنم
اینو میخوام خیلی خب سی دی میکنم تو این
فقط این کجاست؟ این توی
اسلش هو اسلش این منو اینجا
خب اینو اکتیو بکنیم
بعد
یه بار دیگه این مشخص بکنیم
حالا فایل کلاینتو بسازید
من باز با ویم این کارو میکنم
این کد کلاین امتمالاً حالا راجع بهش صحبت میکنیم خط به خط چیا
داخلشه
چنل چیه این بالا یه دونه چنل مشخص کردیم
که نوشتیم لوکال هاست ۵۰ ه۵۰ یک ارتباط
کلاین سروررو ایجاد میکنه
میگه که چنل مثل یک مسیر ارتباطی بین
کلاینت تا سروره که در اینجا گذاشتیم روی
لوکالهاست این همه کامپیوتری که الان روش
هستیم
یوزر سرویس استاپ چیه که یکی از مهمترین مفاهیم جیآرپی سی استاپه. کدشم اینه. یک
کلاینت پراکسی میسازه. از دید کلاینت
تمام متد سمت سروررو تقریباً مثل یک
فانکشن عادی فراخونه کرد.
مثلاً این. اما تو پشت صحنه یه همچین اتفاقی داره میفته.
ساخت ریکوست.
رست مسا با.
پی.g گت یوزر ریکوست این گت یوزر ریکوست
سمت سرور بود یادتون باشه من میتونم با
چون یه پراکسی درست کردم میتونم اینو
فراخونه کنم آیدیشم میدم یک
این متد سمت سرور پیاده سازی شده بود من اینجا فراخونیش کردم یه آیدی هم باید بهش
میدادم آیدیو گذاشتم یک
مهمترین خط کلاینت اینه استاپ.گ گت یوزر
این یک آرپی سی کال واقعیست
یه چیزی شبیه اینه بچهها
بیایم اینجا اجرای کلاینت من از این بیام بیرون
من اینو فعالش بکنم چون اینور سرورم فعاله باید جواب بده به من نگاه کنید اون یوزره
رو برگردون
اینورم باید سمت به سرور ببینم که یه ریکوست با آیدی یک اومده که اومده
خب این میشه اولین اپلیکیشن جرپی سی که
تونستیم بسازیم
خب یه بار مرحله مرحله با هم پیش بریم
ابتدا کلاینتو ایجاد کردیم یه آیدی یکم بهش دادیم
سپس پورتو باف اونو سرلایز میکنه تبدیل
میکنه به کد باینری [صدای خرناس] بعد
جیآرپی سی اونو از طریق اچتی پی تو دریافت
میکنه داشت ارسال میکنه به سرور سمت
سرور چیکار میکنه؟ دیسرلایزش میکنه و
تبدیل میشه به گت یوزر ریکوست.
سپس اون گت یوزر اجرا میشه بعد ریسپانس
ساخته میشه و دوباره همین مسیر برعکسش
اتفاق میفته میاد سمت کلاینت
تفاوتش چیه؟
میگه اگر رس داشتیم درخواستمون به این
صورت بود یه یه ریکوست گتی میخواستیم
بزنیم به یه آدرسی
ولی ریکوست جوابمونم در در قالب فایل
جیسون برمیگشت اما تو جیآر پی سی داریم
این
که ریسپانس یک مسیج تایپ شده پرتبافه
میگه تو جیآرپی سی با متد سرویس و متد کار میکنیم تو رس بیشتر با ریسورس و اچتی پی
متدیم
که اینا رو آشنا هستید احتمالاً باش
سرور با چند یوزر واقعی میگه این سروری که الان ساختیم همیشه علیو برمیگردونه
اما اگه چند تا یوزر داشته باشیم چی یه
همچین چیزی فرض کنید
اینجا ما میتونیم آیدی رو هم از کاربر دریافت بکنیم در قالب اون کدمون آیدی رو
هم دریافت بکنیم
میتونیم میذاری اینتراکتیوش بکنیم ریکوستی که میزنیم بگیم آیدی رو به ما
بده
این کد کاملشه
حالا میتونیم بریم الان تست کنیم
بذار هیت ولش کن مهم نیست اینجا این سمت کلاینته
این کانالمونه بعد یوزر آیدیمونو اینجوری
دریافت میکنیم. ریکوست ساخته میشه میره
سمتش
و اونجاهم بهمون دیتا رو برمیگردونه. به
اساس این آیدی که الان ارسال کردیم که
برابر یوزر آیدیه اونور تشخیص میده
منظورمون کدوم یوزره.
میگه فرض کنید سرورتون روی لینکس سرور با آیپی اسیره و همچنان رو این پورته گوش
میده اینجا که دارین این سکور چنلو مشخص
میکنیم باید اینجوری بنویسیم دیگه
باید آیپیشو بذاریم
و به نظرم برای این قسمت بسته بریم بیایم بریم قسمت بعدی بحثو ادامه بدیم فعلاً
خداحافظ
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
برای ایجاد سرور جیآرپیسی با استفاده از پروتوبف و پایتون، ابتدا محیط مجازی ایجاد میشود و لازمترین کتابخانهها نصب میگردد. سپس فایلهای مربوط به تعریف پیامها و سرویسها درست میشوند و سرویس جیآرپیسی پیادهسازی میگردد.
کلاینت جیآرپیسی با ارسال یک ریکوست به سرور، دادهها را به صورت باینری ارسال میکند که سرور آن را دیسرلایز کرده و به عنوان یک ریکوست گت یوزر پردازش میکند. پاسخ سرور به صورت جیسون بازگردانده میشود.
نیاز به دریافت آیدی کاربر در ریکوست برای ارسال دادههای مرتبط وجود دارد، زیرا این اطلاعات برای پردازش درخواست و ارائه پاسخ مناسب ضروری است.
آخرین بهروزرسانی محتوای متنی:
🎓 دوره جامع «متخصص مهندسی داده و بیگ دیتا» | Pista Academy در دنیای امروز، حجم عظیمی از دادهها هر روز توسط سازمانها، کسبوکارها و سرویسهای آنلاین تولید میشود؛ اما داده زمانی ارزشمند است که بتوانیم آن را بهدرستی جمعآوری، ذخیره، پردازش و مدیریت کنیم. در دوره «متخصص مهندسی داده و بیگ دیتا» در Pista Academy، قدمبهقدم با مفاهیم، ابزارها و تکنولوژیهای مهم حوزه Data Engineering و Big Data آشنا میشویم و تلاش میکنیم مسیر یادگیری را از مفاهیم پایه تا ابزارهای حرفهای این حوزه طی کنیم. 📚 در این دوره با موضوعاتی مانند موارد زیر آشنا خواهید شد: 🔹 Linux Server و ابزارهای موردنیاز مهندسی داده 🔹 Python و Java برای کار با ابزارهای Data Engineering 🔹 مفاهیم دادههای توزیعشده و پایگاه داده 🔹 پایگاه دادههای رابطهای و SQL 🔹 پایگاه دادههای NoSQL 🔹 مفاهیم Big Data 🔹 اکوسیستم Hadoop 🔹 کار با ابزارهای Hadoop و مثالهای کاربردی 🔹 Apache Spark و پردازش دادههای حجیم 🔹 کار عملی با ابزارهای Spark 🔹 Kubernetes 🔹 خودکارسازی و مدیریت فرایندهای انتشار در مهندسی داده 🎯 این دوره برای چه کسانی مناسب است؟ اگر قصد دارید وارد حوزه مهندسی داده شوید، دانش خود را در زمینه Big Data گسترش دهید یا با ابزارهایی مانند Hadoop، Spark، SQL، NoSQL و Kubernetes بهصورت جدیتر آشنا شوید، این دوره میتواند مسیر مناسبی برای شروع و توسعه مهارتهای شما باشد. در طول دوره تلاش میکنیم مفاهیم را به زبان ساده و کاربردی بررسی کنیم و در کنار مباحث تئوری، با ابزارها و سناریوهای واقعی نیز آشنا شویم. ━━━━━━━━━━━━━━━━━━ 📌 نام دوره: متخصص مهندسی داده و بیگ دیتا 🏫 Pista Academy آموزش تخصصی، ساده و کاربردی اگر این آموزش برای شما مفید بود، با 👍 لایک کردن ویدیو و Subscribe کردن کانال Pista Academy از ادامه تولید آموزشهای تخصصی حمایت کنید. همچنین اگر درباره مباحث دوره سؤال یا پیشنهادی دارید، در بخش نظرات مطرح کنید. 👇 #مهندسی_داده #بیگ_دیتا #DataEngineering #BigData #Python #SQL #NoSQL #Hadoop #Spark #Kubernetes #PistaAcademy