يدخل كل تطبيق أعمال ناجح تقريبًا عاجلاً أم آجلاً في مرحلة تتطلب التحجيم الأفقي. في كثير من الحالات ، يمكنك ببساطة بدء مثيل جديد وتقليل متوسط الحمل. ولكن هناك حالات أقل تافهة عندما يجب علينا التأكد من أن العقد المختلفة تعرف عن بعضها البعض وتوزع عبء العمل بدقة.

حدث ذلك أن إرلانج ، الذي اخترناه لصياغته الرائعة والضجيج حوله ، لديه دعم من الدرجة الأولى للأنظمة الموزعة . من الناحية النظرية ، يبدو هذا تافهًا بشكل عام:
المراسلة بين العمليات على العقد المختلفة ، وكذلك بين الروابط والشاشات شفافة [...]
في الواقع ، الأمور أكثر تعقيدًا بعض الشيء. تم تطوير إرلانج الموزع عندما كانت "الحاوية" تعني مثل هذا الصندوق الحديدي الكبير للنقل ، و "عامل الميناء" كان ببساطة مرادفًا لمحمل الميناء. في IP4 كان هناك العديد من العناوين غير المشغولة ، في فجوات الشبكة - كانت الفئران التي تم القضاء عليها عادة هي المسؤولة ، وتم قياس متوسط وقت تشغيل نظام الإنتاج لعقود.
, , erlang , IP- , . , erlang, , .
: libcluster
. , , — , . — . , , . .
, , :
- , erlang;
- ( , , , );
- ,
:nonode@nohost
; - , .
, , :nonode@nohost
, - test_cluster_task
, docker-compose up --scale my_app=3
, - . , , mnesia
— , - .
Cloister , : . , , , CS . , . , .
Cloister , (assembly and maintainance) , Cloister.Manager
.
, config
, :
config :cloister,
otp_app: :my_app,
sentry: :"cloister.local",
consensus: 3,
listener: MyApp.Listener
: Cloister OTP :my_app
, erlang service discovery , , MyApp.Listener
( @behaviour Cloister.Listener
) . .
, Cloister , ( , .) , , . ( , ), MyApp.Listener.on_state_change/2
. , %Cloister.Monitor{status: :up}
, : «, ».
consensus: 3
, , , status: :rehashing
→ status: :up
.
, consensus: 1
Cloister , :nonode@nohost
, :node@host
, :node@host.domain
— , (:none | :shortnames | :longnames
).
, mnesia
. on_state_change/2
. , , , mnesia
Cloister.
Cloister , . , , , IP- , , , /. , :nonode@nohost
. .
, MyApp.Listener
, , . , libcluster
, , . , , , -.
ملاحظة: في هذه المرحلة من النص الأصلي كانت عبارة "التكتلات السعيدة!" ، و Yandex ، التي أترجمها (لا أتسلق القواميس بنفسي) ، عرضت علي خيار "التكتلات السعيدة!" ربما من المستحيل تخيل أفضل ترجمة ، خاصة في ضوء الوضع الجيوسياسي الحالي.