در معماری apache ignite سرور ها ماشین هایی هستند که مسئول کَش کردن (caching)، پردازش جریان (stream processing) و اجرای محاسبات استفاده می شوند. کلاینت ها ماشین هایی هستند که از راه دور به سرورها متصل می شوند. در مطلب قبلی توضیح دادیم که چگونه توسط api های جاوا را توسط maven در eclipse نصب کنیم. اسکریپت ignite.sh برای راه اندازی یک سرور استفاده می شود ولی برای راه اندازی باید صراحتا اعلام کنیم که می خواهیم یک کلاینت apche ignite را داشته باشیم. در مطالب بعدی مثال هایی را از api های apache ignite مطرح می کنیم.

کلاستر Apache Ignite

شکل زیر (۱) معماری کلاستر apache ignite را نشان می دهد که در آن گره اصلی (master node) وجود ندارد. به طور معمول در کلاسترها، کلاینت ها از طریق master node ارتباط برقرار می کند و سپس درخواست آنها از طریق master node به بقیه ماشین های کلاستر اعمال می شود. همچنین master node وظیفه هماهنگی (coordinate) میان بقیه گره ها است. به این معماری کلاسترها، معماری master-slave گفته می شود.

اما مطابق شکل ۱ در کلاستر apache ignite هیچ گره اصلی وجود ندارد و هر گره جدید می تواند به راحتی به کلاستر اضافه شود تا ظرفیت RAM بالا برود. بنابراین معماری کلاستر apache ignite از نوع master-slave نیست بلکه تمامی گره ها در آن همسان هستند. در دو حالت نیاز داریم که یک گره جدید اضافه شود،اول  زمانی که منابع پردازش داده ها یا همان حافظه اصلی کم باشد. دوم زمانی که یک گره از دسترس خارج شود و باید گره دیگری جایگزین آن کنیم.

گروه کلاستر

همانطور گه گفتیم، تمامی گره های درون کلاستر apache ignite مشابه هم هستند و از این هیج کدام نقش خاص یا ویژه ای را ندارند. هر زمان که یگ گره توسط دستور ignite.sh و یا از طریق api ایجاد شود، پس کلاستر آغاز شده است و پس از این هر گره می تواند به کلاستر اضافه شود. همانطور که گفتیم apache ignite از مکانیزم multicast auto discover برای شناسایی گره های دیگر استفاده می کند.

اما می توانیم به صورت منطقی کلاسترهایی را ایجاد کنیم که تمامی گره های درون آن یک کار یا بخشی از کار را انجام دهند. به هر یک از این کلاسترهای منتطقی، یک گروه کلاستر (cluster group) گفته می شود. قاعدتا بر اساس همین گروه بندی منطقی، می توانیم اتصال کلاینت ها را نیز محدود کنیم.

کَش کردن داده ها در کلاینت

گفتیم که وظیفه هر سرور، اولا ذخیره سازی داده ها و بعد از آن امکان شرکت در محاسبات است. عملکرد اصلی کلاینت ها این است که توسط زبان sql داده ها را به کَش سرورها اضافه یا از آنها می خوانند ولی apache ignite این اجازه را می دهد تا کلاینت ها نیز در محاسبات شرکت کنند به این صورت که بخشی از داده های کَش شده را به صورت محلی (local cache) در خود نگه می دارند. در مفاهیم کامپیوتر، اصطلاحی به نام near cache وجود دارد که به همین موضوع اشاره می کند.