‼️اگر علاقه مند به کار در 💢سنگاپور 💢هستید.
✔️1_بدون هیچ هزینه استخدامی
✔️2-کمک هزینه جابه جا
✔️3-مصاحبه کاری سریع
✔️4-پروسه ویزا در سه هفته
🔴استخدام متخصصین حوزه «آی-تی» و 《برنامه نویسان》 در یک شرکت معتبر تکنولوژی واقع در سنگاپور با بیش از 50 شعبه معتبر در کشورهای آسیای شرقی
senior React Frontend Software Engineer:
https://bit.ly/3a1QDZP
#ES6 #React #Redux #Webpack #JavaScript
Senior Android Engineer
http://bit.ly/36bl6lh
#Android #UI #CCD #Espresso #Bitrise #Firebase
Golang Backend Software Engineer
http://bit.ly/3asiO4n
#SQL #Hexagonal_Architecture #SOLID #Go #Elasticsearch #Microservice_Architecture #Redis #PHP #Symphony2 #AMQP
Senior iOS Engineer
http://bit.ly/368yBSI
#Firebase #Multithreaded_Programming #Core-Graphics #ObjectiveC #CICD #Travis_CI #Xcode #Bitrise #Swift #Fastlane #Testing
more info about Singapore positions at ananasjob international :
https://bit.ly/2PKfSIv
#oversea #سنگاپور #android #singapore
➖➖➖➖➖
🌐 @unixmens
✔️1_بدون هیچ هزینه استخدامی
✔️2-کمک هزینه جابه جا
✔️3-مصاحبه کاری سریع
✔️4-پروسه ویزا در سه هفته
🔴استخدام متخصصین حوزه «آی-تی» و 《برنامه نویسان》 در یک شرکت معتبر تکنولوژی واقع در سنگاپور با بیش از 50 شعبه معتبر در کشورهای آسیای شرقی
senior React Frontend Software Engineer:
https://bit.ly/3a1QDZP
#ES6 #React #Redux #Webpack #JavaScript
Senior Android Engineer
http://bit.ly/36bl6lh
#Android #UI #CCD #Espresso #Bitrise #Firebase
Golang Backend Software Engineer
http://bit.ly/3asiO4n
#SQL #Hexagonal_Architecture #SOLID #Go #Elasticsearch #Microservice_Architecture #Redis #PHP #Symphony2 #AMQP
Senior iOS Engineer
http://bit.ly/368yBSI
#Firebase #Multithreaded_Programming #Core-Graphics #ObjectiveC #CICD #Travis_CI #Xcode #Bitrise #Swift #Fastlane #Testing
more info about Singapore positions at ananasjob international :
https://bit.ly/2PKfSIv
#oversea #سنگاپور #android #singapore
➖➖➖➖➖
🌐 @unixmens
در مورد Zen Discovery باید گفت که یک ماژول هماهنگسازی کلاستر (Cluster Coordination Module) است که سه وظیفه اصلی دارد:
کشف نودها (Node Discovery)
پیدا کردن سایر نودها و ساختن یک View کامل از کلاستر.
انتخاب Master (Master Election)
تضمین اینکه در هر لحظه فقط یک Master فعال وجود دارد.
انتشار وضعیت کلاستر (Cluster State Publishing)
همگامسازی وضعیت بین همه نودها.
ا Zen چیست؟
در Elasticsearch، Zen Discovery مکانیزم اصلی برای:
پیدا کردن نودها (Node Discovery)
هماهنگی بین آنها
انتخاب Master Node
حفظ سازگاری کلاستر
در نسخههای قدیمی (تا ۶.x) این مکانیزم Zen1 نام داشت. از Elasticsearch 7.x به بعد، Zen2 معرفی شد.
2. چرا Zen2 ایجاد شد؟
مشکل Zen1:
فرآیند انتخاب Master طولانی و پرخطا بود.
در شرایطی که بخشی از کلاستر قطع میشد، Split-Brain (دو Master همزمان) رخ میداد.
مدیریت Quorum (اکثریت نودها) سخت و مستعد مشکل بود.
بهبودهای Zen2:
پروتکل هماهنگسازی جدید برای انتخاب سریعتر و امنتر Master.
جلوگیری قطعی از Split-Brain با استفاده از Voting Configuration.
ا Bootstrap Process شفاف و امن برای شروع کلاستر.
3. معماری Zen2
ا Zen2 در سه بخش اصلی کار میکند:
Discovery
پیدا کردن نودها با مکانیزمهایی مثل unicast, cloud, یا file-based.
همه نودها یکدیگر را میشناسند و وضعیت را بهروز میکنند.
Master Election
ا استفاده از Voting Configuration (مجموعه نودهایی که حق رأی دارند).
ا برای انتخاب Master نیاز به Quorum (اکثریت) است.
مثلا اگر ۳ نود Master-eligible داشته باشیم → حداقل ۲ نود باید توافق کنند.
Cluster State Publishing
ا Master انتخابشده تغییرات Cluster State را به همه نودها ارسال میکند.
ا State شامل اطلاعات شاردها، ایندکسها، تنظیمات و وضعیت نودهاست.
مزایای Zen2
ایمنی در برابر Split-Brain
چون هیچ Master جدیدی بدون Quorum شکل نمیگیرد.
سرعت بالاتر انتخاب Master
حتی در شرایط قطعی شبکه.
Bootstrap امن
باید لیستی از نودهای Master-eligible اولیه مشخص شود تا کلاستر بهدرستی شروع کند:
cluster.initial_master_nodes:
- node1
- node2
- node3
ا Voting Configuration خودکار
وقتی نود اضافه یا حذف میشود، سیستم Voting بهروزرسانی میشود.
ا Zen2 در OpenSearch
ا چون OpenSearch از Elasticsearch 7.10 فورک شده، Zen2 همان ساختار را حفظ کرده.
ا در نسخههای جدید OpenSearch، Zen2 با بهبودهای جزئی و ثبات بیشتر نگهداری میشود، ولی اساس کار یکسان است.
نکته مهم طراحی
همیشه تعداد نودهای Master-eligible را فرد (Odd Number) انتخاب کنید تا Quorum بهینه باشد.
برای تحمل خرابی، حداقل ۳ نود Master-eligible نیاز دارید.
در محیطهای Multi-DC باید مراقب Latency و Quorum باشید.
نسخههای Zen
ا Zen1 (تا ES 6.x): مکانیزم قدیمی با مشکلات Split-brain و انتخاب Master کند.
ا Zen2 (از ES 7.x و OpenSearch): بازطراحی کامل برای سرعت، پایداری، و جلوگیری کامل از Split-brain.
معماری Zen Discovery (Zen2)
مراحل بوتاسترپ (Bootstrap Process)
وقتی کلاستر برای اولین بار راهاندازی میشود:
باید مشخص کنید کدام نودها Master-eligible هستند:
cluster.initial_master_nodes:
- node1
- node2
- node3
این لیست فقط اولین بار استفاده میشود تا Voting Configuration اولیه ساخته شود.
3.2. Node Discovery
Zen از Transport Layer (TCP) استفاده میکند تا نودها را پیدا کند.
متدهای رایج:
unicast → با لیست IP/hostname مشخص
Cloud plugins (AWS, Azure, GCP)
File-based seed hosts
پارامتر اصلی:
discovery.seed_hosts:
- node1:9300
- node2:9300
Master Election
الگوریتم انتخاب Master در Zen2 بر اساس Voting Quorum است:
فقط نودهای Master-eligible حق رأی دارند.
یک Master جدید فقط وقتی انتخاب میشود که اکثریت (Quorum) در دسترس باشد.
جلوگیری از Split-brain:
اگر Quorum برقرار نباشد، هیچ Master جدیدی انتخاب نمیشود.
پارامترهای مهم:
discovery.type: zen
node.master: true
node.data: false
3.4. Cluster State Publishing
وقتی Master انتخاب شد:
تغییرات (مثل اضافه شدن ایندکس یا شارد) در Cluster State ثبت میشود.
Cluster State به صورت atomic و versioned به همه نودها ارسال میشود.
هر نود فقط آخرین Cluster State معتبر را نگه میدارد.
#elasticsearch #log #linux #zen #clustering #elk
@unixmens
کشف نودها (Node Discovery)
پیدا کردن سایر نودها و ساختن یک View کامل از کلاستر.
انتخاب Master (Master Election)
تضمین اینکه در هر لحظه فقط یک Master فعال وجود دارد.
انتشار وضعیت کلاستر (Cluster State Publishing)
همگامسازی وضعیت بین همه نودها.
ا Zen چیست؟
در Elasticsearch، Zen Discovery مکانیزم اصلی برای:
پیدا کردن نودها (Node Discovery)
هماهنگی بین آنها
انتخاب Master Node
حفظ سازگاری کلاستر
در نسخههای قدیمی (تا ۶.x) این مکانیزم Zen1 نام داشت. از Elasticsearch 7.x به بعد، Zen2 معرفی شد.
2. چرا Zen2 ایجاد شد؟
مشکل Zen1:
فرآیند انتخاب Master طولانی و پرخطا بود.
در شرایطی که بخشی از کلاستر قطع میشد، Split-Brain (دو Master همزمان) رخ میداد.
مدیریت Quorum (اکثریت نودها) سخت و مستعد مشکل بود.
بهبودهای Zen2:
پروتکل هماهنگسازی جدید برای انتخاب سریعتر و امنتر Master.
جلوگیری قطعی از Split-Brain با استفاده از Voting Configuration.
ا Bootstrap Process شفاف و امن برای شروع کلاستر.
3. معماری Zen2
ا Zen2 در سه بخش اصلی کار میکند:
Discovery
پیدا کردن نودها با مکانیزمهایی مثل unicast, cloud, یا file-based.
همه نودها یکدیگر را میشناسند و وضعیت را بهروز میکنند.
Master Election
ا استفاده از Voting Configuration (مجموعه نودهایی که حق رأی دارند).
ا برای انتخاب Master نیاز به Quorum (اکثریت) است.
مثلا اگر ۳ نود Master-eligible داشته باشیم → حداقل ۲ نود باید توافق کنند.
Cluster State Publishing
ا Master انتخابشده تغییرات Cluster State را به همه نودها ارسال میکند.
ا State شامل اطلاعات شاردها، ایندکسها، تنظیمات و وضعیت نودهاست.
مزایای Zen2
ایمنی در برابر Split-Brain
چون هیچ Master جدیدی بدون Quorum شکل نمیگیرد.
سرعت بالاتر انتخاب Master
حتی در شرایط قطعی شبکه.
Bootstrap امن
باید لیستی از نودهای Master-eligible اولیه مشخص شود تا کلاستر بهدرستی شروع کند:
cluster.initial_master_nodes:
- node1
- node2
- node3
ا Voting Configuration خودکار
وقتی نود اضافه یا حذف میشود، سیستم Voting بهروزرسانی میشود.
ا Zen2 در OpenSearch
ا چون OpenSearch از Elasticsearch 7.10 فورک شده، Zen2 همان ساختار را حفظ کرده.
ا در نسخههای جدید OpenSearch، Zen2 با بهبودهای جزئی و ثبات بیشتر نگهداری میشود، ولی اساس کار یکسان است.
نکته مهم طراحی
همیشه تعداد نودهای Master-eligible را فرد (Odd Number) انتخاب کنید تا Quorum بهینه باشد.
برای تحمل خرابی، حداقل ۳ نود Master-eligible نیاز دارید.
در محیطهای Multi-DC باید مراقب Latency و Quorum باشید.
نسخههای Zen
ا Zen1 (تا ES 6.x): مکانیزم قدیمی با مشکلات Split-brain و انتخاب Master کند.
ا Zen2 (از ES 7.x و OpenSearch): بازطراحی کامل برای سرعت، پایداری، و جلوگیری کامل از Split-brain.
معماری Zen Discovery (Zen2)
مراحل بوتاسترپ (Bootstrap Process)
وقتی کلاستر برای اولین بار راهاندازی میشود:
باید مشخص کنید کدام نودها Master-eligible هستند:
cluster.initial_master_nodes:
- node1
- node2
- node3
این لیست فقط اولین بار استفاده میشود تا Voting Configuration اولیه ساخته شود.
3.2. Node Discovery
Zen از Transport Layer (TCP) استفاده میکند تا نودها را پیدا کند.
متدهای رایج:
unicast → با لیست IP/hostname مشخص
Cloud plugins (AWS, Azure, GCP)
File-based seed hosts
پارامتر اصلی:
discovery.seed_hosts:
- node1:9300
- node2:9300
Master Election
الگوریتم انتخاب Master در Zen2 بر اساس Voting Quorum است:
فقط نودهای Master-eligible حق رأی دارند.
یک Master جدید فقط وقتی انتخاب میشود که اکثریت (Quorum) در دسترس باشد.
جلوگیری از Split-brain:
اگر Quorum برقرار نباشد، هیچ Master جدیدی انتخاب نمیشود.
پارامترهای مهم:
discovery.type: zen
node.master: true
node.data: false
3.4. Cluster State Publishing
وقتی Master انتخاب شد:
تغییرات (مثل اضافه شدن ایندکس یا شارد) در Cluster State ثبت میشود.
Cluster State به صورت atomic و versioned به همه نودها ارسال میشود.
هر نود فقط آخرین Cluster State معتبر را نگه میدارد.
#elasticsearch #log #linux #zen #clustering #elk
@unixmens