Platform queue پیام رسانی راهی برای برقراری ارتباط ناهمزمان ضمن بهبود عملکرد و مقیاس پذیری ارائه می دهد. این مقاله در مورد مقایسه NSQ و Kafka است.
بررسی اجمالی
سیستم های پیام رسانی توزیع شده هسته اصلی جریان داده های بزرگ ، برنامه های بومی ابر و معماری میکروسرویس را با بزرگتر شدن سیستم تشکیل می دهند. یک نیاز فزاینده برای ایجاد پلت فرم صف پیام رسانی وجود دارد که قابل اعتماد ، مقیاس پذیر و تحمل گسل با تأخیر کم برای برنامه های زمان واقعی است. پلت فرم پیام پیام رسانی راهی برای برقراری ارتباط و هماهنگی ناهمزمان ضمن بهبود عملکرد ، قابلیت اطمینان و مقیاس پذیری ارائه می دهد. سیستم های پیام رسانی توزیع شده اکنون گسترده هستند و به طور مداوم در حال تحول هستند. چندین سیستم صف پیام مدرن وجود دارد که همه با جوانب مثبت و منفی خود به وجود آمده اند. بهترین سیستم های صف پیام منبع باز زیرساخت های میان افزار را برای پخش داده های بزرگ ، خدمات خرد و برنامه های مبتنی بر ابر تشکیل می دهند. این مسئله برای شرکت های تجاری مشکل ساز شده است تا تصمیم بگیرند که کدام سیستم پیام رسانی مناسب ترین برای یک برنامه خاص است. درک عمیقی برای تصمیم گیری در مورد اینکه کدام ویژگی های یک سیستم پیام رسانی نیازهای یک برنامه خاص را برآورده می کند ، لازم است. این مقاله وبلاگ به تشریح پلت فرم پیغام مدرن NSQ در مقابل Kafka می پردازد. در این مقاله اطلاعاتی در مورد سیستم های پیام رسانی توزیع شده NSQ در مقابل Kafka ، مقایسه ویژگی ها برای تسهیل کاربران در تصمیم گیری آگاهانه برای کاربرد زمان واقعی و همچنین راه هموار برای تحقیقات و توسعه آینده ارائه شده است.
- کافکا چیست؟
- NSQ چیست؟
- مقایسه NSQ در مقابل کافکا
- چرا کافکا بیش از NSQ؟
- نتیجه
1. کافکا چیست؟
Kafka یک پلت فرم پخش رویداد توزیع شده منبع باز است که به زبان Scala ساخته شده توسط LinkedIn نوشته شده است. این سیستم پیام رسانی مشترک منتشر شده است و توانایی رسیدگی به حجم بالای پیام ها را دارد. Kafka “توزیع شده ، بادوام ، تحمل گسل ، سیستم پیام رسانی میخانه با توان بالا با توان بالا” است و می توانید پردازش در زمان واقعی و دسته ای را با کافکا انجام دهید. این یک سرویس پیام رسانی به ثبت نام متعهد توزیع شده ، تقسیم شده و تکرار شده در گره ها است و در JVM اجرا می شود. kafka بهترین صف پیام برای استفاده ساده است و عملکرد سیستم صف پیام رسانی اما با یک طراحی منحصر به فرد را فراهم می کند. سرورهای کافکا در صف پیام توزیع شده به عنوان کارگزاران شناخته می شوند و اینها یک خوشه کافکا را تشکیل می دهند. یک باغ وحش مسئول هماهنگی بین همه کارگزاران در یک خوشه است. کارگزار پیام Apache Kafka توسط استارتاپ های Unicorn ، بهداشت و سازمان های برتر مالی مانند LinkedIn ، FB ، Netflix ، Bank of America ، Chase Bank ، Yahoo ، Twitter و دیگران استفاده می شود. نرم افزار صف پیام منبع باز معماری Kafka شامل تولید کنندگان ، مصرف کنندگان ، کارگزاران ، باغ وحش ، موضوعات ، پارتیشن ها ، سوابق و سیاهههای مربوط است.
2. NSQ چیست؟
NSQ یک بستر پیام رسانی توزیع شده در زمان واقعی منبع باز است که جانشین Simplequeue است. توسعه دهنده NSQ را به عنوان “یک بستر پیام رسانی توزیع شده در زمان واقعی” که توسط Bitly ساخته شده است ، توصیف می کند. کارگزار پیام منبع باز نرم افزاری پیام رسانی فوق العاده ساده است که در مقیاس طراحی و کار می کند و روزانه میلیاردها پیام را اداره می کند. این یک سیستم پیام رسانی سنتی بافر است که توپولوژی های غیرمتمرکز را بدون نقاط تنها شکست ترویج می کند. تحمل خطا و در دسترس بودن بالا همراه با یک سیستم تحویل پیام قابل اعتماد را امکان پذیر می کند. NSQ توپولوژی در دسترس بودن بالایی را ارائه می دهد که SPOF را به حداقل می رساند. این امر با تنظیم چندین نمونه برای NSQD و NSQLOOKUPD ، در دسترس بودن را افزایش می دهد. علاوه بر این ، تضمین می کند که پیام حداقل یک بار با درجه خاصی از پایداری تحویل داده می شود و پیکربندی آن آسان است. بهترین کارگزار پیام NSQ انعطاف پذیر تر است و از ماندگاری پیام پشتیبانی می کند. این داشبورد سرپرست براق دارد. سیستم پیام رسانی صف NSQ دارای 19.9k ستاره Github و چنگال های Github 2.6K است.
3. مقایسه NSQ در مقابل کافکا
NSQ و Kafka هر دو صف پیام رسانی یک روش منحصر به فرد برای تعریف معماری خود و نحوه کارگزار آنها دارند ، اما در چندین نکته ، این ممکن است مورد توجه باشد که کدام سکو را دوست دارید ترجیح دهید:
- دسترسی اگر سرور NSQD به طرز ناخوشایندی خراب شود ، ممکن است از دست دادن داده ها احتمالی باشد. Kafka از ساخته شده در تکثیر و پارتیشن بندی پشتیبانی می کند که باعث می شود در دسترس بودن و قابلیت اطمینان بیشتری باشد. با توجه به فاکتور تکثیر N ، Kafka می تواند بدون از دست دادن سوابق داده ، خرابی سرور N-1 را تحمل کند.
- ماندگاری اگر مصرف کننده قبلاً سیگنال پایان را برای پیام ارسال کرده باشد ، NSQ پیام را حذف می کند. کافکا پایداری را ارائه می دهد که در صف پیام توزیع شده بسیار نادر به نظر می رسد. پیام ها پس از زمان یا اندازه مشخص مشخص از لحظه تحویل آنها ادامه می یابد.
- پیام های Reple-let NSQ بایگانی ساده پیام ها را ارائه می دهد اما از توانایی پخش مجدد بومی پشتیبانی نمی کند. از طرف دیگر ، کافکا سیستم ذخیره پایداری سوابق را دارد و آنها تا زمانی که در سیستم ذخیره شود ، می توانند بارها و بارها پیام را دوباره پخش کنند.
- سفارش پیام از آنجا که چندین مورد از NSQD با یکدیگر ارتباط برقرار نمی کند و همیشه امکان پیام بدون هماهنگ وجود دارد. در حالی که کافکا هر یک از پارتیشن های خود را با توالی ساختاری سوابق حفظ می کند. کافکا همیشه سفارش دقیق پیام ها را در یک پارتیشن ارائه می دهد.
4- چرا کافکا بیش از NSQ؟
با توان بالا دلیل اصلی این است که توسعه دهندگان کافکا را بر روی رقبا در نظر می گیرند ، در حالی که در Golang به عنوان عامل اصلی در انتخاب صف پیام NSQ MQ بیان شده است. NSQ و Kafka هر دو سرویس صف پیام هستند. اما تفاوت اصلی این است که کافکا به عنوان یک گزارش سفارش داده شده ساختار یافته است اما NSQ نیست. کافکا به دلیل ضمانت های سخت و قابلیت اطمینان در مورد از دست دادن داده ها شناخته شده است ، در حالی که NSQ برای استقرار صف پیام ساده تر و آسان تر است. به نظر می رسد NSQ با ستاره های 20K Github و 2.6K چنگال در Github محبوب تر از کافکا با ستاره های 19.4K Github و چنگال های 10.3K Github است. به گفته جامعه StackShare ، کافکا تأیید گسترده تری دارد که در 509 شرکت پشته شرکت و 470 پشته توسعه دهنده ذکر شده است. در مقایسه با NSQ ، که در 21 پشته شرکت و 8 پشته توسعه دهنده ذکر شده است.
نتیجه:
در این مقاله مقایسه مختصری در مورد کار چارچوب های پیام رسانی محبوب - NSQ و Kafka ارائه شده است. مقایسه ویژگی های مقاله حول محور توان صف پیام ، پایداری ، قابلیت اطمینان ، تأخیر ، مقیاس پذیری و در دسترس بودن. این پارامترها برای تصمیم گیری در مورد مناسب بودن یک چارچوب برای یک برنامه زمان واقعی مهم هستند. از این رو ، این یک مقاله خوب برای درک کامل برای انتخاب چارچوب مناسب است. نرم افزار پیام رسانی ستون فقرات فناوری آینده در بازار است که می تواند پردازش بالایی را انجام دهد. در آموزش های آینده ما ، در مورد موضوعات جالب تر مربوط به سیستم عامل های پیام رسانی منبع باز بحث خواهیم کرد. _ شما می توانید در توییتر ، LinkedIn و صفحه Facebook ما به ما بپیوندید. از چه بستر صف پیغام استفاده می کنید؟ اگر سوالی دارید ، لطفا_ در تماس باشید.
کاوش:
ما همچنین چندین مقاله دیگر در رابطه با مدیریت روزانه سرور شما داریم.