เด•เตเดฒเต‹เดฏเดฟเดธเตเดฑเตเดฑเตผ โ†’ เดฒเดณเดฟเดคเดฎเดพเดฏ OTP เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต

เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพ เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏ เดฌเดฟเดธเดฟเดจเดธเตเดธเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เดคเดพเดฎเดธเดฟเดฏเดพเดคเต† เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดฟเดจเตเดจเต€เดŸเต เดคเดฟเดฐเดถเตเดšเต€เดจ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เด’เดฐเต เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเดฟเด•เตเด• เด•เต‡เดธเตเด•เดณเดฟเดฒเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดชเตเดคเดฟเดฏ เด‰เดฆเดพเดนเดฐเดฃเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเดจเตเด‚ เดฒเต‹เดกเต เดถเดฐเดพเดถเดฐเดฟ เด•เตเดฑเดฏเตเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดŽเดจเตเดจเดพเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดจเต‹เดกเตเด•เตพ เดชเดฐเดธเตเดชเดฐเด‚ เด…เดฑเดฟเดฏเตเด•เดฏเตเด‚ เดœเต‹เดฒเดฟเดญเดพเดฐเด‚ เดถเตเดฐเดฆเตเดงเดพเดชเต‚เตผเดตเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เต‡เดฃเตเดŸ เดจเดฟเดธเตเดธเดพเดฐเดฎเดพเดฏ เด•เต‡เดธเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเต.

เด•เตเดฒเต‹เดฏเดฟเดธเตเดฑเตเดฑเตผ โ†’ เดฒเดณเดฟเดคเดฎเดพเดฏ OTP เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต

เด…เดคเต เดตเดณเดฐเต† เดญเดพเด—เตเดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ เดŽเตผเดฒเดพเด™เต, เด…เดคเดฟเดจเตเดฑเต† เดฎเดจเต‹เดนเดฐเดฎเดพเดฏ เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเตเด•เตเด•เตเด‚ เดšเตเดฑเตเดฑเตเดฎเตเดณเตเดณ เดนเตˆเดชเตเดชเดฟเดจเตเดฎเดพเดฏเดฟ เดžเด™เตเด™เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเดคเดฟเดจเต เด’เดฐเต เดซเดธเตเดฑเตเดฑเต เด•เตเดฒเดพเดธเต เด‰เดฃเตเดŸเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ. เดธเดฟเดฆเตเดงเดพเดจเตเดคเดคเตเดคเดฟเตฝ, เด‡เดคเต เดคเดฟเด•เดšเตเดšเตเด‚ เดจเดฟเดธเตเดธเดพเดฐเดฎเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต:

เดตเตเดฏเดคเตเดฏเดธเตเดค เดจเต‹เดกเตเด•เดณเดฟเดฒเต† เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเดฒเตเด‚ เดฒเดฟเด™เตเด•เตเด•เตพเด•เตเด•เตเด‚ เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเตเด•เตพเด•เตเด•เตเดฎเดฟเดŸเดฏเดฟเตฝ เดธเดจเตเดฆเต‡เดถเด‚ เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเดคเต เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฃเต [โ€ฆ]

เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ, เดŽเดฒเตเดฒเดพเด‚ เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต. เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดคเต เดŽเตผเดฒเดพเด™เต "เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ" เดŽเดจเตเดจเดคเต เดทเดฟเดชเตเดชเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฒเดฟเดฏ เด‡เดฐเตเดฎเตเดชเต เดชเต†เดŸเตเดŸเดฟ เดŽเดจเตเดจ เด…เตผเดคเตเดฅเดคเตเดคเดฟเดฒเดพเดฃเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเดคเต, เด•เต‚เดŸเดพเดคเต† "เดกเต‹เด•เตเด•เตผ" เดŽเดจเตเดจเดคเต เดฒเต‹เด‚เด—เตโ€Œเดทเต‹เตผเดฎเดพเตป เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เดชเดฐเตเดฏเดพเดฏเดชเดฆเดฎเดพเดฃเต. IN IP4 เดจเดฟเดฐเดตเดงเดฟ เด†เดณเดฟเดฒเตเดฒเดพเดคเตเดค เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดŽเดฒเดฟเด•เตพ เด•เต‡เดฌเดฟเดณเดฟเดฒเต‚เดŸเต† เดšเดตเดšเตเดšเดฐเดšเตเดšเดคเดพเดฃเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดฌเตเดฐเต‡เด•เตเด•เตเด•เตพเด•เตเด•เต เด•เดพเดฐเดฃเด‚, เด•เต‚เดŸเดพเดคเต† เด‰เตฝเดชเดพเดฆเดจ เดธเด‚เดตเดฟเดงเดพเดจเดคเตเดคเดฟเดจเตเดฑเต† เดถเดฐเดพเดถเดฐเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดธเดฎเดฏเด‚ เดชเดคเดฟเดฑเตเดฑเดพเดฃเตเดŸเตเด•เดณเดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เดฟ.

เด‡เดชเตเดชเต‹เตพ เดจเดพเดฎเต†เดฒเตเดฒเดพเดตเดฐเตเด‚ เด…เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเด‚เดตเดฟเดงเด‚ เดธเตเดตเดฏเด‚เดชเดฐเตเดฏเดพเดชเตเดคเดฐเดพเดฃเต, เดชเดพเด•เตเด•เต‡เดœเตเดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต เดŽเตผเดฒเดพเด™เต เดตเดฒเดฟเดฏ เด•เตเดฐเดฎเดฐเดนเดฟเดคเดค เดŽเดจเตเดจ เดคเดคเตเดตเดคเตเดคเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดเดชเดฟ เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจ เด’เดฐเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ, เดทเต†เดกเตเดฏเต‚เดณเดฑเตเดŸเต† เด‡เดŸเดคเต เด•เตเดคเดฟเด•เดพเตฝ เด‡เดทเตเดŸเดพเดจเตเดธเดฐเดฃเด‚ เดจเต‹เดกเตเด•เตพ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เด…เดชเตเดฐเดคเตเดฏเด•เตเดทเดฎเดพเดตเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเดฒเตเด‚ เดฌเต‹เดฏเดฟเดฒเตผ เดชเตเดฒเต‡เดฑเตเดฑเต เด•เต‹เดกเดฟเดจเตเดฑเต† เด•เต‚เดฎเตเดชเดพเดฐเด™เตเด™เตพ เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป เดŽเตผเดฒเดพเด™เต, เดถเดคเตเดฐเตเดคเดพเดชเดฐเดฎเดพเดฏ เด…เดจเตเดคเดฐเต€เด•เตเดทเดคเตเดคเต† เดšเต†เดฑเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดธเดนเดพเดฏเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•: เด‰เดฃเตเดŸเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เดฑเดฟเดฏเดพเด‚ libcluster. เด‡เดคเต เดถเดฐเดฟเด•เตเด•เตเด‚ เดฐเดธเด•เดฐเดฎเดพเดฃเต, เด‡เดคเดฟเดจเต เด†เดฏเดฟเดฐเดคเตเดคเดฟเดฒเดงเดฟเด•เด‚ เดจเด•เตเดทเดคเตเดฐเด™เตเด™เดณเตเดฃเตเดŸเต, เดฐเดšเดฏเดฟเดคเดพเดตเต เดธเดฎเต‚เดนเดคเตเดคเดฟเตฝ เดชเตเดฐเดถเดธเตเดคเดจเดพเดฃเต, เด…เดคเต†เดฒเตเดฒเดพเด‚. เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดˆ เดชเดพเด•เตเด•เต‡เดœเต เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเด•เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดคเดฟเดฏเต†เด™เตเด•เดฟเตฝ, เดžเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเดจเตเดคเต‹เดทเดตเดพเดจเดพเดฃเต. เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เดŽเดจเดฟเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดชเตเดจเดƒเดธเด‚เด˜เดŸเดจเดฏเตเดŸเต† เดคเต€เดฏเดฑเตเดฑเดฑเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฃเด‚ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดชเตเดฑเดคเตเดคเตเดณเตเดณ เด•เดพเดดเตเดšเด•เตเด•เดพเดฐเดจเดพเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เด†เดตเดถเตเดฏเด•เดคเด•เตพ

เดŽเดจเดฟเด•เตเด•เต เดตเตเดฏเด•เตเดคเดฟเดชเดฐเดฎเดพเดฏเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเดคเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดฎเดพเดจเต‡เดœเตโ€Œเดฎเต†เดจเตเดฑเต เดเดฑเตเดฑเต†เดŸเตเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดพเดฃเต, เด…เดคเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด—เตเดฃเด™เตเด™เดณเตเดณเตเดณเดคเดพเดฃเต:

  • เดจเต‹เดกเตเด•เดณเตเดŸเต† เดนเดพเตผเดกเต-เด•เต‹เดกเดกเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏ เดœเต‹เดฒเดฟเดฏเตเด‚ เดธเต‡เดตเดจเด™เตเด™เดณเดฟเดฒเต‚เดŸเต† เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏ เด•เดฃเตเดŸเต†เดคเตเดคเดฒเตเด‚ เดŽเตผเดฒเดพเด™เต;
  • เดŽเดฒเตเดฒเดพ เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟ เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเดฏ เด•เต‹เตพเดฌเดพเด•เตเด•เต (เดจเต‹เดกเต, เด‡เดตเดฟเดŸเต† เดจเต‹เดกเต, เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด…เดธเตเดฅเดฟเดฐเดค, เดตเดฟเดญเดœเดจเด‚);
  • เดฆเต€เตผเด˜เดตเตเด‚ เดนเตเดฐเดธเตเดตเดตเตเดฎเดพเดฏ เดชเต‡เดฐเตเด•เดณเตเดณเตเดณ เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏ เด‡เดจเตเดฑเตผเดซเต‡เดธเต :nonode@nohost;
  • เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เด•เต‹เดกเต เดŽเดดเตเดคเดพเดคเต† เดคเดจเตเดจเต† เดกเต‹เด•เตเด•เตผ เดชเดฟเดจเตเดคเตเดฃ เดฌเต‹เด•เตเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต.

เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เดžเดพเตป เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•เดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚ เดŽเดจเตเดจเดพเดฃเต :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, เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดŽเตผเดฒเดพเด™เต เดธเตผเดตเต€เดธเต เด•เดฃเตเดŸเต†เดคเตเดคเตฝ เดจเต‹เดกเตเด•เตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด•เตเดฑเดžเตเดžเดคเต เดฎเต‚เดจเตเดจเต, เด’เดชเตเดชเด‚ 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, เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เดชเตŠเดคเตเดตเดพเดฏ เด‰เดฆเตเดฆเต‡เดถเตเดฏเดฎเดพเดฃเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเตเดณเตเดณ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดธเตเดตเดฏเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเด•. เดˆ เด•เต‹เดกเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดŸเต† เดฒเด•เตเดทเตเดฏเด‚ เดธเดพเดงเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเตเด‚ เดฎเดฑเดฏเตเด•เตเด•เตเด•เดฏเดฒเตเดฒ, เดฎเดฑเดฟเดšเตเดšเต เด…เดจเดพเดตเดถเตเดฏเดฎเดพเดฏ เดตเต‡เดฆเดจเดฏเตเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เต‹เดชเตเดชเดฟ-เดชเต‡เดธเตเดฑเตเดฑเตเด‚ เด•เต‚เดŸเดพเดคเต† เดเดฑเตเดฑเดตเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต.

เด•เตเดฑเดฟเดชเตเดชเต: เด’เดฑเดฟเดœเดฟเดจเดฒเดฟเตฝ เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ โ€œเดนเดพเดชเตเดชเดฟ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต!โ€ เดŽเดจเตเดจ เดตเดพเดšเด•เด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดžเดพเตป เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดฏเดพเตปเดกเต†เด•เตเดธเต (เดŽเดจเดฟเด•เตเด•เต เดจเดฟเด˜เดฃเตเดŸเตเด•เดณเดฟเดฒเต‚เดŸเต† เดชเต‹เด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ), โ€œเดนเดพเดชเตเดชเดฟ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต!โ€ เดŽเดจเตเดจ เด“เดชเตเดทเตป เดŽเดจเดฟเด•เตเด•เต เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดคเต. เด’เดฐเต เดฎเดฟเด•เดšเตเดš เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด• เด’เดฐเตเดชเด•เตเดทเต‡ เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เดจเดฟเดฒเดตเดฟเดฒเต† เดœเดฟเดฏเต‹เดชเตŠเดณเดฟเดฑเตเดฑเดฟเด•เตเด•เตฝ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดตเต†เดณเดฟเดšเตเดšเดคเตเดคเดฟเตฝ.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•