فریمورک RPC جاوا - ایجاد فریمورک خود با اسپرینگ بوت و Netty
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- درک اصول RPC (فراخوانی رویه از راه دور) و نحوه ارتباط سیستمهای توزیع شده از طریق پروتکلهای سفارشی
- تسلط به مکانیزمهای پیشرفته توسعه اسپرینگ بوت، از جمله حاشیهنویسیهای سفارشی، ImportBeanDefinitionRegistrar، FactoryBean و تزریق Bean پویا
- تسلط به مکانیزمهای بازتابی هسته جاوا برای تولید پویای آبجکتهای پروکسی و فراخوانی متدها در ران تایم
- اعمال تکنیکهای پیشرفته جاوا مانند حاشیهنویسیها، اسکن متادیتای کلاسها و بررسی تایپ در ران تایم
- استفاده از Netty برای پیادهسازی ارتباطات شبکهای غیربلاککننده و کارآمد بین کلاینت و سرور
- طراحی پروتکلهای سریالسازی و سریالزدایی سفارشی برای انتقال آبجکتهای پیچیده در طول شبکه
- کسب مهارتهای لازم برای طراحی و پیادهسازی فریمورکهای میانافزار جاوا و تبدیل از کاربر فریمورک به سازنده فریمورک
- ساخت فریمورک RPC جاوا کاملاً تابعی از ابتدا و نوشتن هر خط کد بدون استفاده از کتابخانههای شخص ثالث
پیشنیازهای دوره
- تجربه اولیه با برنامهنویسی شیگرا و گردشکارهای توسعه جاوا (Maven یا Gradle)
- درک قوی از مفاهیم اصلی جاوا مانند کلاسها، رابطها، استثناها و جنریکها
- آشنایی با اسپرینگ بوت و تزریق وابستگی توصیه میشود، اما به شدت الزامی نیست.
- برخی آشنایی با مفاهیم شبکه (HTTP و TCP/IP) مفید خواهد بود اما اجباری نیست.
توضیحات دوره
آیا از استفاده از فریمورکها و کتابخانهها بدون دانستن نحوه کار داخلی آنها خسته شدهاید؟
این دوره به شما آموزش میدهد که چگونه یک فریمورک RPC واقعی را از ابتدا، با تمرکز قوی بر تکنیکهای پیشرفته اسپرینگ بوت بسازید. شما فقط از اسپرینگ بوت استفاده نخواهید کرد، بلکه یاد خواهید گرفت که چگونه مکانیزمهای داخلی آن را برای پشتیبانی از تزریق پروکسی پویا، اسکن حاشیهنویسی سفارشی، هوکهای چرخه عمر Bean و موارد دیگر گسترش دهید.
شما با ساخت هسته ارتباطی مبتنی بر Netty شروع کرده و پروتکل، رمزگذار و رمزگشای خود را تعریف میکنید. سپس با استفاده از Kryo، سریالسازی با عملکرد بالا را برای انتقال کارآمد آبجکتها در سراسر شبکه یکپارچه خواهید کرد.
جایی که این دوره واقعاً میدرخشد، در یکپارچهسازی آن با اسپرینگ بوت است:
- استفاده از ImportBeanDefinitionRegistrar برای استخراج متادیتای کلاس شروع و اسکن پویای رابطها
- پیادهسازی SmartInitializingSingleton برای تمام متدهای سرویس RPC موجود در ران تایم
- استفاده از BeanDefinitionRegistryPostProcessor و FactoryBean برای رجیستر و تزریق خودکار آبجکتهای پروکسی
- طراحی حاشیهنویسیهای سفارشی برای تریگر کردن کلاینت و منطق اتصال در زمان راهاندازی اپلیکیشن
شما همچنین service discovery، تشخیص heartbeat، مدیریت اتصال و پشتیبانی از حالت Fallback را پیادهسازی خواهید کرد، همه چیزهایی که یک سیستم RPC آماده تولید نیاز دارد.
هر خط کد از ابتدا نوشته شده است. هیچ جعبه سیاه و هیچ جادویی وجود ندارد.
در پایان دوره، شما یک فریمورک کامل مشابه معماری Dubbo یا OpenFeign ساختهاید. اما هر خط آن دستساز است و توضیح داده شده که چگونه به طور عمیق با اسپرینگ بوت یکپارچه شده است.
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان جاوا که میخواهند از استفاده از فریمورکها به ساخت آنها ارتقا پیدا کنند.
- مهندسان بکاند که مشتاقند درک کنند که سیستمهای RPC، سریالسازی و ارتباطات شبکه چگونه کار میکنند.
- کاربران اسپرینگ بوت که میخواهند به نقاط توسعه پیشرفته آن مانند حاشیهنویسیهای سفارشی و دستکاری چرخه عمر Bean تسلط پیدا کنند.
- مهندسانی که به توسعه میانافزار، سیستمهای توزیع شده یا ساخت جایگزینهای سبک وزن برای ابزارهای موجود مانند gRPC یا Dubbo علاقهمند هستند.
- کدنویسان باتجربه که از کارهای تکراری CRUD خسته شدهاند و به دنبال یک پیشرفت فنی هستند.
فریمورک RPC جاوا - ایجاد فریمورک خود با اسپرینگ بوت و Netty
-
خوشآمدگویی و آنچه خواهید ساخت 03:41
-
بررسی معماری که خواهیم ساخت 09:55
-
فریمورکهای RPC محبوب در صنعت 02:00
-
مقدمه مختصر برخی از کامپوننتهای RPC 03:18
-
وابستگیهای پروژه Maven 01:24
-
راهاندازی RpcServer - توضیح کد بوت - بخش 1 08:55
-
راهاندازی RpcServer - توضیح کد بوت - بخش 2 04:40
-
درک مکانیزم پایپلاین و هندلر Netty 07:09
-
توضیح نحوه پیکربندی پایپلاین کانال 00:55
-
ساخت کلاینت RPC Netty - راهاندازی و اتصال 13:11
-
تعریف ساختارهای پیام اصلی RPC - درخواست و پاسخ 11:39
-
استفاده از الگوی بیلدر برای ساخت پیام RPC به شیوهای زیبا - بخش 1 02:08
-
استفاده از الگوی بیلدر برای ساخت پیام RPC به شیوهای زیبا - بخش 2 02:43
-
استفاده از الگوی بیلدر برای ساخت پیام RPC به شیوهای زیبا - بخش 3 01:30
-
مدیریت تبدیل Enum در FastJSON - سریالسازی و سریالزدایی سفارشی 06:28
-
توضیح نحوه ارسال پیام در کانال Netty 11:55
-
پیادهسازی MessageEncoder برای پیامهای خروجی 06:38
-
طراحی و توضیح یک پروتکل انتقال سفارشی و پیادهسازی رمزگشا 14:11
-
بررسی ساختار و استفاده از ByteBuf در Netty 13:18
-
پیادهسازی هندلر سرور اصلی - RpcServerMessageHandler 21:06
-
معرفی دو مسئولیت اصلی RpcClient 03:52
-
قوانین استفاده از سرویس RPC - نیاز به وابستگی رابط مشترک 10:14
-
ایجاد حاشیهنویسی سفارشی برای راهاندازی خودکار RpcClient در اسپرینگ بوت 06:11
-
استفاده از SmartInitializingSingleton برای اسکن متدهای RPC موجود پس از راهاندازی - بخش 1 07:03
-
استفاده از SmartInitializingSingleton برای اسکن متدهای RPC موجود پس از راهاندازی - بخش 2 13:27
-
کپسولهسازی و ذخیره متادیتای متد RPC 19:43
-
اشکالزدایی گامبهگام - چگونه متدهای RPC را اسکن کنیم؟ 10:35
-
رجیستر پویای RpcClient Beans از طریق ImportBeanDefinitionRegistrar 16:51
-
اشکالزدایی گامبهگام - چگونه RpcClient را به عنوان Spring Bean Definition رجیستر کنیم؟ 03:38
-
درک AnnotationMetadata برای اسکن حاشیهنویسیهای سطح کلاس 01:38
-
بررسی جریان RPC - از تزریق تا ارسال درخواست 06:21
-
نمودار گامبهگام - Dispatch و مدیریت RpcRequest 04:56
-
نوشتن کد - تولید آبجکتهای پروکسی برای رابطهای RPC 13:15
-
تحلیل کد - استفاده از CompletableFuture برای بلاک کردن و انتظار برای نتایج 05:55
-
پیادهسازی هندلر پیام اصلی RPC - بررسی RpcClientMessageHandler 12:25
-
مدیریت درخواستهای RPC - مکانیابی سرویس، فراخوانی متد و بازگردانی نتیجه 26:12
-
فراخوانی CompletableFuture.complete برای بازگردانی نتایج و کشف فراخواننده 05:52
-
راهاندازی Service Registry با حاشیهنویسی سفارشی 10:44
-
ایجاد و ارسال اطلاعات رجیستریشن از سمت کلاینت 02:25
-
اشکالزدایی گامبهگام - فیکس کردن باگ 03:52
-
تکمیل و ریفکتور کردن کد 04:25
-
اشکالزدایی گامبهگام - جریان کامل ارسال درخواست RPC - بخش 1 12:08
-
اشکالزدایی گامبهگام - جریان کامل ارسال درخواست RPC - بخش 2 06:01
-
اشکالزدایی گامبهگام - جریان کامل ارسال درخواست RPC - بخش 3 03:50
-
تنظیم Timeout برای فراخوانیهای RPC بلاککننده 02:59
-
تشخیص Heartbeat - مقدمه و پیادهسازی 07:18
-
پیادهسازی تشخیص Heartbeat Timeout در Service Registry 11:02
-
پیادهسازی منطق ارسال Heartbeat در سمت کلاینت 06:33
-
پیادهسازی اتصال مجدد خودکار در کلاینت RPC 03:17
-
تست مکانیزم Heartbeat 02:04
-
تزریق پروکسیهای RPC به فیلدهای خصوصی از طریق حاشیهنویسی سفارشی و بازتاب 16:08
-
تست تغییر کد 02:42
-
خلاصه - بهبود اسکن و تزریق پروکسیهای سرویس RPC 07:26
-
تولید آبجکتهای پروکسی با استفاده از FactoryBean در اسپرینگ 10:43
-
توضیحات اضافی درباره FactoryBean 02:53
-
BeanDefinitionRegistryPostProcessor برای اسکن سرویس RPC و رجیستر FactoryBean 22:55
-
تزریق آرگومانهای Constructor و ویژگیهای فیلد به BeanDefinition 08:44
-
تزریق پروکسیهای RPC به فیلدها از طریق Autowired و تست یکپارچهسازی 04:17
-
برخی افزونه کد 00:39
-
بررسی کد منبع - چگونه درخواست RPC را توسط SpringCloud OpenFeign ارسال و مدیریت کنیم؟ 14:48
-
انتزاع RpcClient برای دی کوپلینگ لایه انتقال 18:40
-
ریفکتور کردن کد 01:27
-
تست پیادهسازی RpcClient انتزاعی 01:11
-
معرفی مکانیزم Fallback برای شکستهای RPC 04:42
-
بهبود فریمورک - افزودن پشتیبانی از حالت Fallback برای فراخوانیهای سرویس RPC 12:27
-
تست اجرای حالت Fallback در صورت شکست RPC 03:27
-
بررسی نهایی معماری - از نمونه اولیه تا فریموررک RPC آماده تولید 05:51
-
اسکن سفارشی با IncludeFilter برای رابطهای سرویس RPC خاص 11:53
-
پیادهسازی اسکنر سفارشی (RemoteServiceScanner) برای رجیستر پروکسیهای RPC 19:07
-
استفاده از ImportBeanDefinitionRegistrar برای دسترسی به متادیتای راهاندازی اپلیکیشن 08:08
-
بهبود منطق فراخوانی در آبجکتهای پروکسی RPC 09:28
-
اشکالزدایی مجدد گردشکار کامل RPC 10:22
-
خلاصه عمیق چرخه عمر کامل درخواست-پاسخ RPC 20:02
-
معرفی Kryo - فریمورک سریالسازی با عملکرد بالا برای RPC 13:39
-
جایگزینی جیسان با Kryo - پیادهسازی رمزگذار و رمزگشای با عملکرد بالا 09:08
مشخصات آموزش
فریمورک RPC جاوا - ایجاد فریمورک خود با اسپرینگ بوت و Netty
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:متوسط
- تعداد درس:75
- مدت زمان :10:32:17
- حجم :7.1GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy