بسم الله الرحمن الرحیم



نمودارهای پایین فرآیند جستجو در الستیک سرچ را از ابتدا تا آخر شفاف میکند:

1. کلاینت درخواست جستجوی خود را به نود۲ می فرستد.

 

2. نود ۲ (نود هماهنگ کننده) کوئری را به همه شاردهای ایندکس می فرستد.

 

3. هر شارد کوئری را به صورت لوکال (محلی) اجرا و نتیجه را به نود ۲ می فرستد. نود۲ آنها را مرتب و به صف اولویت کلی (global priority queue) کامپایل می کند.

 

4. نود ۲ می فهمد که کدام سند باید استخراج شود و یک سری درخواست GET به شارد های مرتبط می فرستد.

 

5. هر شارد سند را بارگزاری و به نود ۲ تحویل می دهد.

 

6. و  در نهایت نود ۲ نتیجه را به کلاینت بر میگرداند.


در الستیک سرچ داده هایی از یک نوع (مرتبط به هم) معمولا در یک ایندکس ذخیره می شود( می توان معادل یک config wrapper تصور کرد). هر ایندکس از مجموعه ای از اسناد با فرمت JSON تشکیل شده است. وقتی یک سند ایندکس(نمایه) می شود الستیک سرچ برای هر فیلد آن یک ایندکس مع می سازد.( Lucene’s inverted index ) ایندکس مع قوانین و شرایط را به ایندکس هایی که شامل آن اسناد هستند را مپ میکند(map).

یک ایندکس در یک یا بیشتر شارد و صفر یا بیشتر replica  ذخیره می شود. ( به زبان دیگر حداقل یک شارد داریم ولی replica ممکن است نباشد)

 

هنگام ساختن هر ایندکس می توان تعداد شارد اصلی (primary shard) و تعداد  replica shard به ازای هر شارد را مشخص کرد. بصورت پیش فرض برای هر ایندکس ۵ شارد اصلی و یک شارد replica به ازای هر شارد اصلی تعریف می شود. تعداد شاردهای اصلی بعد از ساخته شدن ایندکس قابل تغییر نیستند بنابراین انتخاب تعداد آن حساس می باشد. البته بعدا با عملیات reindex می توان این مشکل را حل کرد (تغییر تعداد شارد اصلی). ولی تعداد شاردهای replica را هر موقع نیاز باشد میتوان تغییر داد. برای جلوگیری از data loss  مستر نود مطمئن می شود که هر شارد replica داخل همان نودی که شارد اصلی قرار دارد ذخیره نشود ( به زبان دیگر replica shard مربوط به هر primary shard در نود های دیگر ذخیره شود)


اندرک لاسن، بتر پروگرمینگ -- باورش سخت است، اما کم‌کم داریم به سال ۲۰۲۰ می‌رسیم. آدم فکر می‌کند سال ۲۰۲۰ از درون یک داستان علمی‌تخیلی درآمده است؛ داستانی که در آن ماشین‌ها پرواز می‌کنند و ربات‌های هوشمند ما را با موشک‌های شخصی‌ برای هواخوری به مریخ می‌برند. بنظر می‌رسد سال ۲۰۲۰ واقعی ما اینقدرها هم پیشرفته نیست، اما من معتقدم که قطعاً چیزهای هیجان‌انگیزی برای ما در چنته خواهد داشت‌! امروز می‌خواهم برایتان بگویم که به نظر من این سال و سال‌های بعد از آن چه دستاوردهایی برای جهان برنامه نویسی خواهند داشت و چه ترندهایی را برایمان به همراه خواهد آورد.

قطعاً من پیشگو نیستم؛ شاید سال ۲۰۲۱ برگردیم و به این مطلب حسابی بخندیم! اما می‌توانم بر اساس تجربه‌‌، حدس‌هایی در مورد آینده بزنم. بنابراین، این شما و این پیش‌بینی‌های من در مورد ترندهای سال ۲۰۲۰ در دنیای برنامه‌نویسی.

ترند ۱. راست (Rust) همه‌گیر خواهد شد

ادامه مطلب

در این راهنما مراحل نصب استک ELK یعنی Elasticsearch 2.2.x, Logstash 2.2.x و Kibana 4.5.x را روی سرور اوبونتو 14.04 بررسی می‌کنیم. همچنین شیوه پیکربندی آن برای گردآوری و بصری‌سازی گزارش‌های سیستمی در یک مکان مرکزی را با استفاده از Filebeat 1.1.x معرفی می‌کنیم. Logstash یک ابزار متن-باز برای گردآوری، تجزیه و مرتب‌سازی گزارش‌ها برای استفاده‌های آتی محسوب می‌شود. Kibana یک رابط وب است که می‌تواند برای جستجو و مشاهده گزارش‌هایی که Logstash اندیس‌گذاری کرده، مورد استفاده قرار گیرد.

گزارش‌گیری متمرکز در مواردی که قصد دارید مشکلات سرورها یا اپلیکیشن‌ها را پیدا کنید، بسیار مفید است و امکان جستجوی متمرکز در میان همه گزارش‌ها را فراهم می‌سازد. فایده دیگر این روش آن است که با متمرکز ساختن گزارش‌های سرورهای مختلف در طی قاب زمانی خاص، می‌تواند امکان شناسایی مشکلاتی که میان چند سرور پراکنده شده‌اند را فراهم سازد.

امکان استفاده از Logstash برای گردآوری گزارش‌ها از همه نوع وجود دارد؛ اما در این راهنمای آموزشی ما خودمان را صرفاً به گردآوری گزارش‌های سیستمی محدود ساخته‌ایم.

ادامه مطلب

elasticsearch، یک موتور جستجو و تحلیلگر توزیع شده است که با رابط کاربری وب(HTTP) و الگوی استاندارد JSON برای انتقال داده ها کار میکند. 

برای جستجو امکان ترکیب و استفاده از انواع مختلف مثل داده های ساخت یافته، غیر ساخت یافته، geometric و. وجود داره. همه چیز رو داخل خودش index میکنه و در کمترین زمان ممکن به درخواست ها پاسخ میده. بسیار مقیاس پذیره و قابلیت اجرا روی یک لپ تاپ یا صدها سرور با داده های بسیاز زیاد رو داره. به منظور کنترل، نظارت و مدیریت API مورد نیاز رو در اختیار ما قرار میده و همچنین پایداری و انعطاف پذیری بالایی داره و در هنگام بروز مشکلات سخت افزاری یا شبکه، خرابی رو تشخیص میده و کلاسترُ داده ی خودش رو حفط میکنه تا قابل استفاده باشن. برای مسائل امنیتی امکان تعریف نام کاربری و کلمه عبور و همچنین اعمال مجوز و نقش در کلاستر وجود داره.

کتابخانه های elasticsearch برای زبان های برنامه نویسی زیادی نوشته شدن تا به وسیله ی این کتابخانه ها برنامه نویس بتونه ازش استفاده کنه. و اگر دیتای زیادی داخل hadoop دارید میتونید یک موتور جستجو و تحلیلگر real time هم در کنارش داشته باشید. با استفاده از کتابخانه هایی که به این منظور پیاده سازی شدن امکان اتصال elasticsearch به hadoop فراهم شده.

 

ادامه مطلب

تبلیغات

آخرین ارسال ها

آخرین جستجو ها

نورفی بلاک وبلاگ طرفداران بازی الدر اسکورل چیبین تعمیر نشیمنگاه مبل ترازنت فروشگاه لباس در بابل افغانستان سرزمین کبود شرکت سایبان خودرو اتوماتیک کاربام همیار 24 درب ضد سرقت