در این بخش نحوه راه اندازی Apache Kafka را در Ubuntu مورد بررسی قرار میدهیم و میبینیم که هر یک از تعاریف و اصطلاحاتی که در بخش قبل معرفی شد، چگونه پیاده سازی میشوند (در صورتی که امکان استفاده از Ubuntu را ندارید و میخواهید مراحل این بخش را در windows انجام دهید میتوانید از راهنمای راه اندازی Kafka در windows استفاده کنید تا بتوانید بخشهای بعدی این سری مقالات را پیگیری و اجرا کنید). بروز رسانی Ubuntu: قبل از هرچیزی باید م ...
سرچشمه Kafka از LinkedIn آغاز و سپس در سال 2011 توسط Apache بصورت open source ارائه شد. هدف آن ارائه یک بستر جریان دادهای توزیع شدهاست که اساس آن، Publish-Subscribe میباشد . سادگی اضافه کردن قابلیتهای مقیاس پذیری افقی، تحمل خطا و افزایش کارآیی توسط این بستر باعث شدهاست که هزاران شرکت از آن بعنوان بستر ارتباطی قسمتهای مختلف سیستمها و زیرسیستمهای خود استفاده کنند. همانطور که گفته شد وظیفه و هدف اصلی Apache Kafka، ارائه یک بستر ...
در بخشهای قبل، دلایل بوجود آمدن سیستمهای توزیع شده بررسی شد و تاکید کردیم که نیازمندیها، باعث تغییر و تکامل سیستمهای ما میشوند و بر همین اساس بررسی کردیم که چه نیازمندیهایی باعث میشوند که دیگر سیستمهای متمرکز به تنهایی پاسخگوی نیازهای ما نباشند و عاملی شوند برای رفتن به سمت سیستمهای توزیع شده. گفتیم که اتخاذ تصمیمات نادرست چه عواقبی را برای سیستمهای ما بوجود میآورد و بر همین اساس مهمترین فاکتورها را در انتخاب سیستمهای توزیع شده، به ...
همیشه نیازمندیهای ما باعث انتخاب نوع طراحی و پیاده سازی ما میشوند و لزوما چیزی که برای ما جذابتر و پیچیدهتر است، باعث موفقیت سیستمی که طراحی میکنیم نمیشود. چه بسا که یک انتخاب نادرست و نادیده گرفتن یک یا چند نیازمندی، باعث شود هیچ یک از مواردی که شما برای انتخاب آن نوع طراحی در نظر گرفته بودید، محقق نشوند. هدف من از ارائه این بخش، معرفی مهمترین فاکتورهایی است که شما میتوانید با استفاده از آنها تصمیم بگیرید که آیا باید سیستم خود را بص ...
قبل از شروع به بحث در مورد سیستمهای توزیع شده، بهتر است ابتدا به سوالی اساسی که اساس بوجود آمدن سیستمهای توزیع شده است، پاسخ دهیم:
چرا یک سخت افزار به تنهایی پاسخگوی همه نیازهای ما نیست؟
همه میدانیم که در یک هستهی از پردازنده، چیزی بعنوان پردازش موازی وجود ندارد. هر هسته در هر لحظه میتواند یک پردازش را انجام دهد و این سرعت بالای در پردازش عملیات جاری و سوئیچ کردن بین دیگر عملیات است که حس موازی اجرا شدن آن ...
در حوزه کاری ما همیشه نیازمندیهای جدید باعث پیشرفت، ارتقاء و پیچیدهتر شدن سیستمهای سخت افزاری و نرم افزاری میشوند. بطور مثال زمانیکه نیاز شد چندین سیستم از دادههای مشترکی استفاده کنند، در معماری Single Tier قسمت Database از سایر قسمتها جدا شد و در سخت افزار دیگری قرار گرفت. به این صورت این معماری تبدیل به Two Tier شد و سپس برای اینکه تغییرات، کمترین تاثیر را در سیستم ما داشته باشد و با کمترین هزینه به Platformهای دیگر نیز سرویس بدهی ...