ملحوظة
هل تبحث عن Serf.io؟ تم إغلاق موقع Serf على 10/02/2024. يمكن العثور على المستندات التي تم تقديمها مسبقًا من Serf.io https://github.com/hashicorp/serf/blob/master/docs/index.html.markdown
SRF هو حل لا مركزي لاكتشاف الخدمة وتنسيق خفيف الوزن ومتوفر للغاية ومتسامح مع الأخطاء.
يعمل SRF على Linux و Mac OS X و Windows. يتم استخدام بروتوكول ثرثرة فعال وخفيف الوزن للتواصل مع العقد الأخرى. يمكن Serf اكتشاف فشل العقدة وإخطار بقية الكتلة. تم تصميم نظام الأحداث فوق Serf ، مما يتيح لك استخدام بروتوكول Serf's Gossip لنشر الأحداث مثل النشر ، وتغييرات التكوين ، وما إلى ذلك.
فيما يلي بعض حالات الاستخدام على سبيل المثال ، على الرغم من أن هناك العديد من حالات الاستخدام ، على الرغم من وجود العديد من حالات الاستخدام:
أولاً ، قم بتنزيل Serf Binary مسبقًا لنظام التشغيل الخاص بك ، أو ترجمة Serf بنفسك ، أو التثبيت باستخدام go get -u github.com/hashicorp/serf/cmd/serf
.
بعد ذلك ، دعنا نبدأ اثنين من الوكلاء الأقنان. يركض الوكلاء حتى يُطلب منهم الإقلاع عن التواصل مع مهام الصيانة من SRF. في إعداد Serf حقيقي ، ستقوم كل عقدة في نظامك بتشغيل واحد أو أكثر من عوامل SRF (يمكنها تشغيل عوامل متعددة إذا كنت تقوم بتشغيل أنواع مجموعات متعددة. على سبيل المثال خوادم الويب مقابل خوادم memcached).
ابدأ كل عامل SRF في جلسة طرفية منفصلة حتى نتمكن من رؤية إخراج كل منها. بدء الوكيل الأول:
$ serf agent -node=foo -bind=127.0.0.1:5000 -rpc-addr=127.0.0.1:7373
...
ابدأ الوكيل الثاني في جلسة طرفية أخرى (بينما لا يزال الأول قيد التشغيل):
$ serf agent -node=bar -bind=127.0.0.1:5001 -rpc-addr=127.0.0.1:7374
...
في هذه المرحلة ، يعمل اثنان من عوامل الأقنان بشكل مستقل ولكن لا يزالون غير مدركين لبعضهما البعض. دعنا نخبر الآن الوكيل الأول بالانضمام إلى مجموعة موجودة (الوكيل الثاني). عند بدء عمل وكيل SRF ، يجب عليك الانضمام إلى مجموعة موجودة من خلال تحديد عضو واحد على الأقل. بعد ذلك ، تصبح ثرثرة الأقنص وبقية الكتلة على دراية بالانضمام. قم بتشغيل الأوامر التالية في جلسة طرفية ثالثة.
$ serf join 127.0.0.1:5001
...
إذا كنت تشاهد المحطات الخاصة بك ، فيجب أن ترى كلا الوكلاء SRF يدركون الانضمام. يمكنك إثبات ذلك عن طريق تشغيل serf members
لرؤية أعضاء مجموعة Serf:
$ serf members
foo 127.0.0.1:5000 alive
bar 127.0.0.1:5001 alive
...
في هذه المرحلة ، يمكنك Ctrl-C أو إرجاع القتل إما وكيل Serf ، وسوف يقومون بتحديث قوائم عضويتهم بشكل مناسب. إذا كنت Ctrl-C عميلًا قائد ، فسوف يغادر برشاقة عن طريق إخطار مجموعة من عزمها على المغادرة. إذا أجبرت على قتل أحد العوامل ، فسيتم اكتشاف ذلك (عادةً في غضون ثوان) من قبل عضو آخر في الكتلة والذي سيخطر المجموعة بفشل العقدة.
يمكن عرض الوثائق الشاملة الكاملة على موقع SRF:
https://github.com/hashicorp/serf/tree/master/docs
إذا كنت ترغب في العمل على Serf نفسها ، فستحتاج أولاً إلى تثبيت (الإصدار 1.10+ مطلوب ). تأكد من تثبيتك بشكل صحيح ، بما في ذلك إعداد Gopath الخاص بك.
بعد ذلك ، استنساخ هذا المستودع في $GOPATH/src/github.com/hashicorp/serf
ثم make
فقط. في لحظات قليلة ، سيكون لديك serf
DEVELISS:
$ make
...
$ bin/serf
...
ملاحظة: make
يضع أيضًا نسخة من القابلة للتنفيذ بموجب $GOPATH/bin/
SRF هي أولاً وقبل كل شيء مكتبة مع واجهة سطر الأوامر ، serf
. مكتبة SRF مستقلة عن وكيل سطر الأوامر ، serf
. يقع serf
Binary تحت cmd/serf
ويمكن تثبيته بمفرده عن طريق إصدار الأمر go get -u github.com/hashicorp/serf/cmd/serf
. يجب أن تحتاج التطبيقات باستخدام مكتبة Serf فقط إلى تضمين github.com/hashicorp/serf
.
يمكن إجراء الاختبارات عن طريق كتابة make test
.
إذا قمت بإجراء أي تغييرات على الرمز ، فأرص make format
من أجل تنسيق الكود تلقائيًا وفقًا لمعايير GO.