توضیحات
هدف از این پروژه آشنایی با برنامه نویسی همروند، همگام سازی و حافظه مشترک است
با توجه به اینکه لزوما هر Subscriber نمی خواهد همه پیام ها را بخواند، مفهومی به نام تاپیک )Topic( در مسیج بروکر تعریف می شود، که هر پیامی که از سمت Publisher می خواهد Publish شود، باید دارای یکی از تاپیک های تعریف شده در مسیج بروکر باشد. )واضح است که این تاپیک ها، داینامیک هستند و توسط برنامه نویس برای مسیج بروکر تعریف می شوند – مثل در یک فایل با فرمت مشخص تاپیک ها تعریف می شوند(، و Subscriber ها نیز، هنگامی که به مسیج بروکر وصل می شوند، به اطلع مسیج بروکر می رسانند که چه تاپیک هایی را مد نظر دارند، و مسیج بروکر نیز موظف می شود که اگر پیامی با تاپیکی که Subscriber برایش مهم است آمد، آن پیام را برای آن Subscriber بفرستد.
پس بنابراین مسیج بروکر، مانند یک کانتینر بزرگ می ماند، که تعدادی Publisher پیام هایی را با تاپیک های )Topic( خاصی درون آن قرار می دهند. و تعدادی Subscriber نیز منتظر پیام ها با تاپیک های خاصی هستند، که در صورت ارسال چنین پیامی توسط publisher، این پیام برای Subscriber هایی که به تاپیک آن پیام Subscribe کرده اند ارسال می شود.
از انواع آن که در صنعت زیاد استفاده می شود می توان به Apache Kafka, ZeroMQ, ActiveMQ ،RabbitMQ و .. نام برد که در بعضی زبان های برنامه نویسی برای پیاده سازی و استفاده از آن ها استاندارد هایی وجود دارد. )مانند JMS در جاوا و MSMQ در دات نت
توضیحات پیاده سازی
برای پیاده سازی، سه ماژول Subscriber و Publisher و Message Broker را می خواهیم پیاده سازی کنیم.
در نهایت نیز گزارشی خلصه در حد یک صفحه، از کاری که انجام داده اید بیاورید. سپس عکس از روند اجرا در انتهای گزارش بیاورید. در صورتی که هر کدام از امتیازی ها را پیاده کرده اید، شیوه پیاده سازی خود را شرح دهید.
توضیحات ماژول :Message Broker
مسیج بروکر باید از تاپیک ها مطلع باشد، این تاپیک ها را از یک فایل می توانید هنگام بال آمدن سامانه بخوانید. )پیشنهاد: میتوانید یک فایل broker.properties در پوشه resources بسازید و اطلعات تاپیک ها را از آن جا با استفاده از کلس Properties بخوانید. انجام پروژه جاوا
مسیج بروکر باید به ازای هر تاپیک، یک صف برای مسیج ها داشته باشد، که هر پیامی که از سمت Publisher ها برای بروکر ارسال می شود در آن نگهداری شود. با توجه به داینامیک بودن تاپیک ها، استفاده از یک Map با کلید تاپیک رشته و مقدار )Value( پیام ارسالی منطقی به نظر می رسد.
مسیج بروکر باید بداند که Subscriber ها، هر کدام چه تاپیک هایی را می خواهند، پس باید ترتیبی داده شود تا در هر لحظه هر Subscriber ای به مسیج بروکر متصل شده و تاپیک های مورد نظر خود را اعلم کند، پس این Subscriber ها به همراه تاپیک های مورد نظرشان باید در مسیج بروکر نگه داشته شوند.
هر 100 میلی ثانیه، به صورت همروند، اولین پیام از هر صف )که مربوط به تاپیک های مختلف اند( از صف خارج شده و متناسب با تاپیک، Subscriber هایی که منتظر پیام با آن تاپیک ها هستند، این پیام را دریافت میکنند. سپس این پیام از صف حذف می شود
واضح است که برای پیاده سازی این ماژول از ساختمان داده های Thread Safe از جمله BlockingQueue و ConcurrentQueue و .. نمی توانید استفاده کنید و باید دسترسی به منابع مشترک را دستی پیاده کنید.با استفاده از مانیتور، قفل و
توضیحات ماژول :Publisher
هر پابلیشر هر از گاهی پیامی با محتوای رندوم و با تاپیک رندوم برای Message Broker بفرستد.
توضیحات ماژول :Subscriber
در ابتدای اتصال به ماژول بروکر، تاپیک های مورد نظر خود را به بروکر اعلم می کند، و منتظر پیام ها می ماند. هنگامی که پیامی دریافت شد، محتوا و تاپیک آن را چاپ کند.
اطلعات بیشتر در صورت تمایل: شمای دقیق تر از روند یک مسیج بروکر، که ساده شده آن را باید پیاده کنید.
نمونه ای از کاربرد بروکر ها: )معماری میکروسرویس و اتصال برنامه موبایل به بک اند(
توضیح: در این سامانه، انتقال پیام ها که معمول به نام Event شناخته می شوند و در روند پیاده سازی به صورت Event-Driven اطلع رسانی ها انجام می شوند، توسط یک بروکر انجام می شود، همچنین انتقال پیام اپلیکیشن موبایل، به صورت ترکیبی، با بروکر و API انجام می شود.بسیار مرسوم است که بین میکروسرویس ها از Kafka
و نیز بین هر سرویس و دیگر برنامه ها )برنامه موبایل، سامانه های خارجی دیگر و)… از بروکر های ساده تر همچون RabbitMQ و ZeroMQ استفاده شود.
- فایلهای پروژه به صورت کامل پس از خرید فایل بلافاصله در اختیار شما قرار خواهد گرفت.
سفارش پروژه جاوا
درصورتیکه این پروژه دقیقا مطابق خواسته شما نمی باشد، با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.