Cloister โ†’ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ OTP แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ

แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ–แƒœแƒ”แƒก แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜ แƒแƒ“แƒ แƒ” แƒ—แƒฃ แƒ’แƒ•แƒ˜แƒแƒœ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒคแƒแƒ–แƒแƒจแƒ˜, แƒกแƒแƒ“แƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒฐแƒแƒ แƒ˜แƒ–แƒแƒœแƒขแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒ แƒ”แƒ‘แƒ. แƒฎแƒจแƒ˜แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒแƒกแƒ”แƒ•แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ›แƒ แƒ˜แƒชแƒแƒ“แƒœแƒ”แƒœ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ“แƒ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒแƒœแƒแƒฌแƒ˜แƒšแƒแƒœ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ.

Cloister โ†’ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ OTP แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ

แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ˜แƒฆแƒ‘แƒšแƒ˜แƒแƒœแƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ แƒ แƒแƒ› แƒ”แƒ แƒšแƒแƒœแƒ’แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒจแƒ”แƒ›แƒ แƒแƒŸแƒ˜แƒแƒขแƒแƒŸแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒฅแƒ•แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. แƒ—แƒ”แƒแƒ แƒ˜แƒฃแƒšแƒแƒ“, แƒ”แƒก แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒแƒ“ แƒŸแƒฆแƒ”แƒ แƒก:

แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก, แƒแƒกแƒ”แƒ•แƒ” แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ”แƒ [โ€ฆ]

แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒจแƒ˜, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ. แฒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒ แƒšแƒแƒœแƒ’แƒ˜ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช "แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜" แƒœแƒ˜แƒจแƒœแƒแƒ•แƒ“แƒ แƒ“แƒ˜แƒ“ แƒ แƒ™แƒ˜แƒœแƒ˜แƒก แƒงแƒฃแƒ—แƒก แƒ’แƒแƒ“แƒแƒ–แƒ˜แƒ“แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฎแƒแƒšแƒ "แƒ“แƒแƒ™แƒ”แƒ แƒ˜" แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒšแƒแƒœแƒ’แƒจแƒแƒ แƒ›แƒ”แƒœแƒ˜แƒก แƒกแƒ˜แƒœแƒแƒœแƒ˜แƒ›แƒ˜ แƒ˜แƒงแƒ. IN IP4 แƒ˜แƒงแƒ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ“แƒแƒฃแƒ™แƒแƒ•แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜, แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ•แƒ˜แƒ แƒ—แƒฎแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ™แƒแƒ‘แƒ”แƒšแƒ˜แƒก แƒฆแƒ”แƒญแƒ•แƒ˜แƒ—, แƒฎแƒแƒšแƒ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ“แƒ แƒ แƒแƒ—แƒฌแƒšแƒ”แƒฃแƒšแƒ”แƒ‘แƒจแƒ˜ แƒ˜แƒ–แƒแƒ›แƒ”แƒ‘แƒแƒ“แƒ.

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒแƒœแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒฃแƒ“แƒ’แƒ”แƒœแƒšแƒแƒ“ แƒ—แƒ•แƒ˜แƒ—แƒ™แƒ›แƒแƒ แƒ˜, แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ— แƒ”แƒ แƒšแƒแƒœแƒ’แƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜, แƒกแƒแƒ“แƒแƒช แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒแƒ‘แƒ˜แƒก แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ˜แƒ— แƒ“แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒœแƒ”แƒœ แƒ“แƒ แƒ’แƒแƒฅแƒ แƒ”แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ›แƒแƒ แƒชแƒฎแƒ”แƒœแƒ แƒฅแƒฃแƒกแƒšแƒ˜แƒก แƒแƒฎแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ˜แƒฅแƒœแƒแƒก แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฅแƒ•แƒแƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒ แƒšแƒแƒœแƒ’แƒ˜, แƒ›แƒขแƒ แƒฃแƒš แƒ’แƒแƒ แƒ”แƒ›แƒแƒกแƒ—แƒแƒœ แƒกแƒแƒ‘แƒ แƒซแƒแƒšแƒ•แƒ”แƒšแƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ.

แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ: แƒ›แƒ” แƒ•แƒ˜แƒชแƒ˜, แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก libcluster. แƒ›แƒแƒ แƒ—แƒšแƒ แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ, แƒแƒ—แƒแƒกแƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒ•แƒแƒ แƒกแƒ™แƒ•แƒšแƒแƒ•แƒ˜ แƒฐแƒงแƒแƒ•แƒก, แƒแƒ•แƒขแƒแƒ แƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒแƒจแƒ˜แƒ แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ“แƒ แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜. แƒ—แƒฃ แƒแƒ› แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒแƒ—แƒแƒ•แƒแƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒ“แƒ แƒจแƒ”แƒกแƒแƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒฎแƒแƒ แƒฃแƒšแƒ˜ แƒ•แƒแƒ  แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก. แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒ›แƒ”แƒขแƒ˜ แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒ›แƒ˜แƒœแƒ“แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ•แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฌแƒงแƒแƒ‘แƒ แƒ“แƒ แƒแƒ  แƒ•แƒ˜แƒงแƒ แƒ’แƒแƒ แƒ” แƒ›แƒแƒงแƒฃแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ แƒ”แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ—แƒ”แƒแƒขแƒ แƒจแƒ˜.

แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜

แƒ แƒแƒช แƒ›แƒ” แƒžแƒ˜แƒ แƒแƒ“แƒแƒ“ แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ˜แƒงแƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ˜แƒฆแƒ”แƒ‘แƒ“แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒแƒก แƒ“แƒ แƒ”แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ”แƒ‘แƒ˜:

  • แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒ›แƒงแƒแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ˜แƒ—, แƒแƒกแƒ”แƒ•แƒ” แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ”แƒ แƒšแƒแƒœแƒ’แƒ˜;
  • แƒกแƒ แƒฃแƒšแƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒ™แƒ•แƒแƒœแƒซแƒ˜ แƒ˜แƒฅ, แƒ™แƒ•แƒแƒœแƒซแƒ˜ แƒแƒฅ, แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒแƒ แƒแƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒแƒ‘แƒ, แƒ’แƒแƒงแƒแƒคแƒ);
  • แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ” แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“ แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒ™แƒšแƒ” แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช :nonode@nohost;
  • Docker แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ out of box, แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒ”แƒก แƒฃแƒ™แƒแƒœแƒแƒกแƒ™แƒœแƒ”แƒšแƒ˜ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ›แƒ” แƒ’แƒแƒ›แƒแƒ•แƒชแƒแƒ“แƒ” แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“ :nonode@nohost, แƒแƒœ แƒฎแƒ”แƒšแƒแƒ•แƒœแƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— test_cluster_task, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒฅแƒชแƒ”แƒ•แƒ แƒ›แƒ˜แƒœแƒ“แƒ docker-compose up --scale my_app=3 แƒ“แƒ แƒœแƒแƒฎแƒ”แƒ—, แƒ แƒแƒ’แƒแƒ  แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ˜แƒก แƒกแƒแƒ› แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒแƒก แƒ“แƒแƒ™แƒ”แƒ แƒจแƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ’แƒ•แƒแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒ˜แƒœแƒ“แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ mnesia - แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ, แƒ™แƒฃแƒšแƒ˜แƒกแƒ”แƒ‘แƒจแƒ˜ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒ”แƒœ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ”แƒ—แƒ”แƒ แƒจแƒ˜, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ“แƒแƒ แƒขแƒงแƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒกแƒแƒ›แƒงแƒฃแƒ แƒ แƒแƒ  แƒ˜แƒงแƒ แƒ’แƒแƒ›แƒ˜แƒ–แƒœแƒฃแƒšแƒ˜, แƒ แƒแƒ› แƒงแƒแƒคแƒ˜แƒšแƒ˜แƒงแƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒจแƒ”แƒ”แƒซแƒšแƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ, แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ— แƒงแƒแƒ•แƒ˜แƒก แƒ“แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒแƒ›แƒ“แƒ”. แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ•แƒ”แƒ แƒชแƒฎแƒšแƒ˜แƒก แƒขแƒงแƒ•แƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ–แƒœแƒแƒ“ แƒ˜แƒกแƒแƒฎแƒแƒ•แƒก แƒ“แƒแƒคแƒแƒ แƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ, แƒแƒœ แƒ˜แƒงแƒแƒก แƒแƒ™แƒแƒ“แƒ”แƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒกแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ แƒ˜แƒ› แƒ’แƒแƒ’แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› แƒ—แƒ”แƒแƒ แƒ”แƒขแƒ˜แƒ™แƒแƒกแƒ”แƒ‘แƒ˜ CS แƒฉแƒแƒกแƒ•แƒ˜แƒ— แƒแƒ› แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒจแƒ˜. แƒ”แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒแƒ“แƒ”แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒ™แƒแƒคแƒ˜แƒ แƒ›แƒ˜แƒ–แƒแƒœแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒแƒ“ แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒ“แƒ˜แƒ“ แƒกแƒแƒฅแƒ›แƒ”แƒก. แƒ”แƒก แƒ›แƒ˜แƒ–แƒแƒœแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒแƒ‘แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒกแƒ แƒ“แƒ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒš แƒ”แƒšแƒแƒกแƒขแƒ˜แƒฃแƒ  แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒจแƒแƒ แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒ•แƒกแƒ”แƒ แƒ›แƒขแƒ แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒแƒ แƒฉแƒ”แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ

แƒกแƒแƒ›แƒงแƒฃแƒ แƒ แƒ’แƒแƒœแƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒšแƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒ—แƒฃแƒ›แƒชแƒ แƒ›แƒแƒฌแƒ˜แƒœแƒแƒ•แƒ” แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒฎแƒ”แƒšแƒ˜แƒ— แƒ˜แƒ›แƒฃแƒจแƒแƒแƒœ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒแƒฌแƒงแƒแƒ‘แƒแƒกแƒ แƒ“แƒ แƒจแƒ”แƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒแƒ–แƒ”, แƒฃแƒจแƒฃแƒแƒšแƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒ— Cloister.Manager แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒ–แƒ”แƒ“แƒแƒ›แƒฎแƒ”แƒ“แƒ•แƒ”แƒšแƒ˜แƒก แƒฎแƒ”แƒจแƒ˜.

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒ”แƒงแƒ แƒ“แƒœแƒแƒ‘แƒ config, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ˜แƒก แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒก:

config :cloister,
  otp_app: :my_app,
  sentry: :"cloister.local", # or ~w|n1@foo n2@bar|a
  consensus: 3,              # number of nodes to consider
                             #    the cluster is up
  listener: MyApp.Listener   # listener to be called when
                             #    the ring has changed

แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒกแƒ˜แƒขแƒงแƒ•แƒแƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒ— แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒก: แƒกแƒแƒ›แƒงแƒฃแƒ แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ OTP แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก :my_app, แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก erlang แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› แƒกแƒแƒ›แƒ˜ แƒ“แƒ MyApp.Listener แƒ›แƒแƒ“แƒฃแƒšแƒ˜ (แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก @behaviour Cloister.Listener) แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“. แƒกแƒ แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒแƒฅ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ.

แƒแƒ› แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ—, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒกแƒแƒ›แƒงแƒฃแƒ แƒ แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ”แƒขแƒแƒžแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒกแƒ”แƒœแƒกแƒฃแƒกแƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒแƒ›แƒ“แƒ” (แƒกแƒแƒ›แƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜.) แƒ”แƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒก, แƒ แƒแƒ› แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒก แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ, แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ (แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒแƒ“), แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒ แƒ“แƒแƒ›แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ”แƒšแƒ˜. MyApp.Listener.on_state_change/2. แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก %Cloister.Monitor{status: :up}, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก: โ€žแƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ, แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜แƒโ€œ.

แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ consensus: 3 แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒšแƒ˜แƒ— แƒ›แƒ”แƒขแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒแƒก, แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ status: :rehashing โ†’ status: :up แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒแƒฎแƒšแƒแƒ“ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒš แƒแƒœ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒš แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”.

แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— consensus: 1 ะธ แƒกแƒแƒ›แƒงแƒฃแƒ แƒ แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒšแƒแƒ“แƒ˜แƒœแƒก, แƒ แƒแƒชแƒ แƒ“แƒแƒ˜แƒœแƒแƒฎแƒแƒ•แƒก :nonode@nohostแƒแƒœ :node@hostแƒแƒœ :[email protected] - แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ˜แƒงแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜ (:none | :shortnames | :longnames).

แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ›แƒ”แƒœแƒขแƒ˜

แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ•แƒแƒ™แƒฃแƒฃแƒ›แƒจแƒ˜, แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒš แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ mnesia. แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒ—แƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒ— on_state_change/2. แƒแƒฅ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒ แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ mnesia แƒคแƒ แƒ”แƒœแƒ˜แƒก แƒ“แƒ แƒแƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒกแƒแƒ›แƒงแƒฃแƒ แƒ.

แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ แƒกแƒแƒ›แƒงแƒฃแƒ แƒ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒแƒฆแƒกแƒแƒ“แƒ’แƒ”แƒœแƒแƒ“ แƒ™แƒแƒžแƒแƒขแƒ˜แƒก แƒฅแƒ•แƒ”แƒจ. แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒฃแƒ™แƒ•แƒ” แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜, แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒ•แƒแƒœแƒซแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ˜แƒ›แƒ˜แƒกแƒ“แƒ แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“, แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ•แƒ˜แƒชแƒ˜แƒ— IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜, แƒ—แƒฃ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒญแƒ”แƒ‘แƒฃแƒšแƒ˜/แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ˜. แƒ”แƒก แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒแƒ“ แƒแƒ  แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒก แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒกแƒ แƒ“แƒ แƒšแƒแƒ™แƒแƒšแƒฃแƒ  แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก แƒจแƒแƒ แƒ˜แƒก. :nonode@nohost. แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒ”แƒขแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒแƒฅ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ.

แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒกแƒฃแƒ แƒ˜ แƒ›แƒแƒ แƒ—แƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ–แƒ˜แƒ— MyApp.Listener, แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ”แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ™แƒ”แƒ แƒซแƒแƒ”แƒ‘แƒ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒฅแƒ•แƒแƒ™แƒฃแƒ—แƒฎแƒ”แƒ“แƒ˜. แƒแƒ แƒแƒฃแƒจแƒแƒ•แƒก, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ˜แƒฆแƒ” แƒ–แƒ”แƒ›แƒแƒ— libcluster, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒคแƒ แƒ แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ“แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒแƒ, แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ—แƒแƒ•แƒแƒ“ แƒ’แƒแƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒ— แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ“แƒแƒœแƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒก. แƒแƒ› แƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒแƒ แƒ แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜แƒก แƒ“แƒแƒคแƒแƒ แƒ•แƒ, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒ˜ แƒขแƒ™แƒ˜แƒ•แƒ˜แƒšแƒ˜แƒกแƒ แƒ“แƒ แƒฃแƒฎแƒ”แƒ แƒฎแƒฃแƒšแƒ˜ แƒ™แƒแƒžแƒ˜แƒ -แƒžแƒแƒกแƒขแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ: แƒแƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒจแƒ˜ แƒ˜แƒงแƒ แƒคแƒ แƒแƒ–แƒ "Happy Clustering!" แƒ“แƒ Yandex-แƒ›แƒ, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒ›แƒ” แƒ•แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ˜ (แƒ›แƒ” แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒแƒ  แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ•แƒšแƒ), แƒจแƒ”แƒ›แƒแƒ›แƒ—แƒแƒ•แƒแƒ–แƒ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ "Happy Clustering!" แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜ แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ แƒแƒšแƒ‘แƒแƒ— แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ›แƒ˜แƒ— แƒฃแƒ›แƒ”แƒขแƒ”แƒก, แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ”แƒแƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ