ವಿತರಿಸಿದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಬಿಲ್ಡಿಂಗ್ ಬ್ಲಾಕ್‌ಗಳು. ಶೂನ್ಯ ಅಂದಾಜು

ವಿತರಿಸಿದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಬಿಲ್ಡಿಂಗ್ ಬ್ಲಾಕ್‌ಗಳು. ಶೂನ್ಯ ಅಂದಾಜು

ಜಗತ್ತು ನಿಂತಿಲ್ಲ. ಪ್ರಗತಿಯು ಹೊಸ ತಾಂತ್ರಿಕ ಸವಾಲುಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಬದಲಾಗುತ್ತಿರುವ ಅಗತ್ಯತೆಗಳಿಗೆ ಅನುಗುಣವಾಗಿ, ಮಾಹಿತಿ ವ್ಯವಸ್ಥೆಗಳ ವಾಸ್ತುಶಿಲ್ಪವು ವಿಕಸನಗೊಳ್ಳಬೇಕು. ಇಂದು ನಾವು ಈವೆಂಟ್-ಚಾಲಿತ ವಾಸ್ತುಶಿಲ್ಪ, ಏಕಕಾಲಿಕತೆ, ಏಕಕಾಲಿಕತೆ, ಅಸಮಕಾಲಿಕತೆ ಮತ್ತು ಎರ್ಲಾಂಗ್‌ನಲ್ಲಿ ಈ ಎಲ್ಲದರೊಂದಿಗೆ ಹೇಗೆ ಶಾಂತಿಯುತವಾಗಿ ಬದುಕಬಹುದು ಎಂಬುದರ ಕುರಿತು ಮಾತನಾಡುತ್ತೇವೆ.

ಪರಿಚಯ

ವಿನ್ಯಾಸಗೊಳಿಸಿದ ಸಿಸ್ಟಮ್ನ ಗಾತ್ರ ಮತ್ತು ಅದರ ಅವಶ್ಯಕತೆಗಳನ್ನು ಅವಲಂಬಿಸಿ, ನಾವು, ಡೆವಲಪರ್ಗಳು, ಸಿಸ್ಟಮ್ನಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ವಿನಿಮಯ ಮಾಡುವ ವಿಧಾನವನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತೇವೆ. ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಸೇವೆಗಳ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು ಸಂಘಟಿಸಲು, ಕೆಲಸ ಮಾಡುವ ಆಯ್ಕೆಯು ಬ್ರೋಕರ್ನೊಂದಿಗೆ ಒಂದು ಯೋಜನೆಯಾಗಿರಬಹುದು, ಉದಾಹರಣೆಗೆ, RabbitMQ ಅಥವಾ kafka ಆಧರಿಸಿ. ಆದರೆ ಕೆಲವೊಮ್ಮೆ ಘಟನೆಗಳ ಹರಿವು, SLA ಮತ್ತು ಸಿಸ್ಟಮ್ ಮೇಲಿನ ನಿಯಂತ್ರಣದ ಮಟ್ಟವು ಸಿದ್ಧ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಯು ನಮಗೆ ಸೂಕ್ತವಲ್ಲ. ಸಹಜವಾಗಿ, ಸಾರಿಗೆ ಪದರ ಮತ್ತು ಕ್ಲಸ್ಟರ್ ರಚನೆಯ ಜವಾಬ್ದಾರಿಯನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಮೂಲಕ ನೀವು ವ್ಯವಸ್ಥೆಯನ್ನು ಸ್ವಲ್ಪ ಸಂಕೀರ್ಣಗೊಳಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ ZeroMQ ಅಥವಾ nanomsg ಬಳಸಿ. ಆದರೆ ಸಿಸ್ಟಮ್ ಪ್ರಮಾಣಿತ ಎರ್ಲಾಂಗ್ ಕ್ಲಸ್ಟರ್‌ನ ಸಾಕಷ್ಟು ಥ್ರೋಪುಟ್ ಮತ್ತು ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಹೆಚ್ಚುವರಿ ಘಟಕವನ್ನು ಪರಿಚಯಿಸುವ ವಿಷಯವು ವಿವರವಾದ ಅಧ್ಯಯನ ಮತ್ತು ಆರ್ಥಿಕ ಸಮರ್ಥನೆಯ ಅಗತ್ಯವಿರುತ್ತದೆ.

ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ವಿತರಣೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ವಿಷಯವು ಸಾಕಷ್ಟು ವಿಸ್ತಾರವಾಗಿದೆ. ಲೇಖನದ ಸ್ವರೂಪದಲ್ಲಿ ಇರಿಸಿಕೊಳ್ಳಲು, ಇಂದಿನ ಚರ್ಚೆಯ ವಿಷಯವು Erlang/Elixir ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಏಕರೂಪದ ಪರಿಸರವಾಗಿದೆ. ಎರ್ಲಾಂಗ್/ಒಟಿಪಿ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯು ನಿಮಗೆ ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಕನಿಷ್ಠ ಪ್ರಮಾಣದ ಪ್ರಯತ್ನದೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಆದರೆ ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ನಮಗೆ ಸಂದೇಶ ಕಳುಹಿಸುವ ಪದರದ ಅಗತ್ಯವಿದೆ.

ಸೈದ್ಧಾಂತಿಕ ಆಧಾರ

ವಿನ್ಯಾಸವು ಗುರಿಗಳು ಮತ್ತು ನಿರ್ಬಂಧಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವುದರೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಅಭಿವೃದ್ಧಿಯ ಸಲುವಾಗಿ ಅಭಿವೃದ್ಧಿಯ ಕ್ಷೇತ್ರದಲ್ಲಿ ಮುಖ್ಯ ಗುರಿ ಇಲ್ಲ. ನಾವು ಸುರಕ್ಷಿತ ಮತ್ತು ಸ್ಕೇಲೆಬಲ್ ಪರಿಕರವನ್ನು ಪಡೆಯಬೇಕು, ಅದರ ಆಧಾರದ ಮೇಲೆ ನಾವು ರಚಿಸಬಹುದು ಮತ್ತು, ಮುಖ್ಯವಾಗಿ, ವಿವಿಧ ಹಂತಗಳ ಆಧುನಿಕ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಬಹುದು: ಏಕ-ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಂದ ಪ್ರಾರಂಭಿಸಿ ಸಣ್ಣ ಪ್ರೇಕ್ಷಕರಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸುತ್ತದೆ, ಅದು ನಂತರ 50 ವರೆಗೆ ಕ್ಲಸ್ಟರ್‌ಗಳಾಗಿ ಬೆಳೆಯಬಹುದು. -60 ನೋಡ್‌ಗಳು, ಕ್ಲಸ್ಟರ್ ಫೆಡರೇಶನ್‌ಗಳೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ. ಹೀಗಾಗಿ, ಅಂತಿಮ ವ್ಯವಸ್ಥೆಯ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಮಾಲೀಕತ್ವದ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ಲಾಭವನ್ನು ಹೆಚ್ಚಿಸುವುದು ಮುಖ್ಯ ಗುರಿಯಾಗಿದೆ.

ಅಂತಿಮ ವ್ಯವಸ್ಥೆಗೆ 4 ಮುಖ್ಯ ಅವಶ್ಯಕತೆಗಳನ್ನು ನಾವು ಹೈಲೈಟ್ ಮಾಡೋಣ:

  • Сಈವೆಂಟ್-ಆಧಾರಿತ.
    ಘಟನೆಗಳ ಹರಿವಿನ ಮೂಲಕ ಹಾದುಹೋಗಲು ಮತ್ತು ಅಗತ್ಯ ಕ್ರಮಗಳನ್ನು ನಿರ್ವಹಿಸಲು ವ್ಯವಸ್ಥೆಯು ಯಾವಾಗಲೂ ಸಿದ್ಧವಾಗಿದೆ;
  • Мಸ್ಕೇಲೆಬಿಲಿಟಿ.
    ಪ್ರತ್ಯೇಕ ಬ್ಲಾಕ್ಗಳನ್ನು ಲಂಬವಾಗಿ ಮತ್ತು ಅಡ್ಡಡ್ಡಲಾಗಿ ಅಳೆಯಬಹುದು. ಸಂಪೂರ್ಣ ವ್ಯವಸ್ಥೆಯು ಅನಂತ ಸಮತಲ ಬೆಳವಣಿಗೆಗೆ ಸಮರ್ಥವಾಗಿರಬೇಕು;
  • Оದೋಷಸಹಿಷ್ಣುತೆ.
    ಎಲ್ಲಾ ಹಂತಗಳು ಮತ್ತು ಎಲ್ಲಾ ಸೇವೆಗಳು ವೈಫಲ್ಯಗಳಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ;
  • Гಖಾತರಿಪಡಿಸಿದ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯ.
    ಸಮಯವು ಮೌಲ್ಯಯುತವಾಗಿದೆ ಮತ್ತು ಬಳಕೆದಾರರು ಹೆಚ್ಚು ಸಮಯ ಕಾಯಬಾರದು.

"ಸಾಧ್ಯವಾದ ಚಿಕ್ಕ ಎಂಜಿನ್" ಬಗ್ಗೆ ಹಳೆಯ ಕಾಲ್ಪನಿಕ ಕಥೆಯನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳಿ? ವಿನ್ಯಾಸಗೊಳಿಸಿದ ವ್ಯವಸ್ಥೆಯು ಮೂಲಮಾದರಿಯ ಹಂತದಿಂದ ಯಶಸ್ವಿಯಾಗಿ ನಿರ್ಗಮಿಸಲು ಮತ್ತು ಪ್ರಗತಿಪರವಾಗಲು, ಅದರ ಅಡಿಪಾಯವು ಕನಿಷ್ಟ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸಬೇಕು SMOG.

ಮೂಲಸೌಕರ್ಯ ಸಾಧನವಾಗಿ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಗೆ ಇನ್ನೂ ಒಂದು ಅಂಶವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು ಎಲ್ಲಾ ಸೇವೆಗಳಿಗೆ ಆಧಾರವಾಗಿದೆ: ಪ್ರೋಗ್ರಾಮರ್‌ಗಳಿಗೆ ಬಳಕೆಯ ಸುಲಭ.

ಈವೆಂಟ್-ಆಧಾರಿತ

ಅಪ್ಲಿಕೇಶನ್ ಒಂದೇ ಸರ್ವರ್‌ನಿಂದ ಕ್ಲಸ್ಟರ್‌ಗೆ ಬೆಳೆಯಲು, ಅದರ ಆರ್ಕಿಟೆಕ್ಚರ್ ಸಡಿಲವಾದ ಜೋಡಣೆಯನ್ನು ಬೆಂಬಲಿಸಬೇಕು. ಅಸಮಕಾಲಿಕ ಮಾದರಿಯು ಈ ಅಗತ್ಯವನ್ನು ಪೂರೈಸುತ್ತದೆ. ಅದರಲ್ಲಿ, ಕಳುಹಿಸುವವರು ಮತ್ತು ಸ್ವೀಕರಿಸುವವರು ಸಂದೇಶದ ಮಾಹಿತಿ ಲೋಡ್ ಬಗ್ಗೆ ಕಾಳಜಿ ವಹಿಸುತ್ತಾರೆ ಮತ್ತು ಸಿಸ್ಟಂನಲ್ಲಿ ಪ್ರಸರಣ ಮತ್ತು ರೂಟಿಂಗ್ ಬಗ್ಗೆ ಚಿಂತಿಸಬೇಡಿ.

ಸ್ಕೇಲೆಬಿಲಿಟಿ

ಸ್ಕೇಲೆಬಿಲಿಟಿ ಮತ್ತು ಸಿಸ್ಟಮ್ ದಕ್ಷತೆಯು ಪರಸ್ಪರ ಪಕ್ಕದಲ್ಲಿದೆ. ಲಭ್ಯವಿರುವ ಎಲ್ಲಾ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ಅಪ್ಲಿಕೇಶನ್ ಘಟಕಗಳು ಸಮರ್ಥವಾಗಿರಬೇಕು. ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಾವು ಸಾಮರ್ಥ್ಯವನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು ಮತ್ತು ಹೆಚ್ಚು ಸೂಕ್ತವಾದ ನಮ್ಮ ಸಂಸ್ಕರಣಾ ವಿಧಾನಗಳು, ನಾವು ಉಪಕರಣಗಳಿಗೆ ಕಡಿಮೆ ಹಣವನ್ನು ಖರ್ಚು ಮಾಡುತ್ತೇವೆ.

ಒಂದೇ ಯಂತ್ರದೊಳಗೆ, ಎರ್ಲಾಂಗ್ ಹೆಚ್ಚು ಸ್ಪರ್ಧಾತ್ಮಕ ವಾತಾವರಣವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಎರ್ಲಾಂಗ್ ವಿಎಮ್‌ಗೆ ಲಭ್ಯವಿರುವ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಥ್ರೆಡ್‌ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಮತ್ತು ಈ ಥ್ರೆಡ್‌ಗಳನ್ನು ಬಳಸುವ ಶೆಡ್ಯೂಲರ್‌ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಮೂಲಕ ಏಕಕಾಲಿಕತೆ ಮತ್ತು ಸಮಾನಾಂತರತೆಯ ನಡುವಿನ ಸಮತೋಲನವನ್ನು ಹೊಂದಿಸಬಹುದು.
ಎರ್ಲಾಂಗ್ ಪ್ರಕ್ರಿಯೆಗಳು ಸ್ಥಿತಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದಿಲ್ಲ ಮತ್ತು ತಡೆರಹಿತ ಕ್ರಮದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಇದು ಸಾಂಪ್ರದಾಯಿಕ ನಿರ್ಬಂಧಿಸುವ-ಆಧಾರಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಿಂತ ತುಲನಾತ್ಮಕವಾಗಿ ಕಡಿಮೆ ಸುಪ್ತತೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಥ್ರೋಪುಟ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. ಎರ್ಲಾಂಗ್‌ನ ಶೆಡ್ಯೂಲರ್ CPU ಮತ್ತು IO ನ ನ್ಯಾಯೋಚಿತ ಹಂಚಿಕೆಯನ್ನು ಖಾತ್ರಿಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ಬಂಧಿಸುವಿಕೆಯ ಅನುಪಸ್ಥಿತಿಯು ಗರಿಷ್ಠ ಲೋಡ್‌ಗಳು ಅಥವಾ ವೈಫಲ್ಯಗಳ ಸಮಯದಲ್ಲಿಯೂ ಸಹ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ಕ್ಲಸ್ಟರ್ ಮಟ್ಟದಲ್ಲಿ, ವಿಲೇವಾರಿ ಸಮಸ್ಯೆಯೂ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. ಕ್ಲಸ್ಟರ್‌ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಯಂತ್ರಗಳು ಸಮವಾಗಿ ಲೋಡ್ ಆಗಿರುವುದು ಮತ್ತು ನೆಟ್‌ವರ್ಕ್ ಓವರ್‌ಲೋಡ್ ಆಗದಿರುವುದು ಮುಖ್ಯವಾಗಿದೆ. ನಾವು ಪರಿಸ್ಥಿತಿಯನ್ನು ಊಹಿಸೋಣ: ಒಳಬರುವ ಬ್ಯಾಲೆನ್ಸರ್‌ಗಳ ಮೇಲೆ ಬಳಕೆದಾರರ ದಟ್ಟಣೆ ಇಳಿಯುತ್ತದೆ (ಹ್ಯಾಪ್ರಾಕ್ಸಿ, ಎನ್‌ಜಿಎನ್‌ಎಕ್ಸ್, ಇತ್ಯಾದಿ), ಅವರು ಲಭ್ಯವಿರುವ ಬ್ಯಾಕೆಂಡ್‌ಗಳ ಗುಂಪಿನ ನಡುವೆ ಸಂಸ್ಕರಣಾ ವಿನಂತಿಗಳನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ಸಮವಾಗಿ ವಿತರಿಸುತ್ತಾರೆ. ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ, ಅಗತ್ಯವಿರುವ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸೇವೆಯು ಕೇವಲ ಕೊನೆಯ ಮೈಲಿಯಾಗಿದೆ ಮತ್ತು ಆರಂಭಿಕ ವಿನಂತಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು ಹಲವಾರು ಇತರ ಸೇವೆಗಳನ್ನು ವಿನಂತಿಸಬೇಕಾಗುತ್ತದೆ. ಆಂತರಿಕ ವಿನಂತಿಗಳಿಗೆ ರೂಟಿಂಗ್ ಮತ್ತು ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಅಗತ್ಯವಿರುತ್ತದೆ.
ಡೇಟಾ ಹರಿವುಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು, ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಯು ಡೆವಲಪರ್‌ಗಳಿಗೆ ರೂಟಿಂಗ್ ಮತ್ತು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸಬೇಕು. ಇದಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ಡೆವಲಪರ್‌ಗಳು ಮೈಕ್ರೊ ಸರ್ವಿಸ್ ಪ್ಯಾಟರ್ನ್‌ಗಳನ್ನು (ಅಗ್ರಿಗೇಟರ್, ಪ್ರಾಕ್ಸಿ, ಚೈನ್, ಬ್ರಾಂಚ್, ಇತ್ಯಾದಿ) ಬಳಸಿಕೊಂಡು ಪ್ರಮಾಣಿತ ಸಮಸ್ಯೆಗಳನ್ನು ಮತ್ತು ಅಪರೂಪವಾಗಿ ಉದ್ಭವಿಸುವ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

ವ್ಯವಹಾರದ ದೃಷ್ಟಿಕೋನದಿಂದ, ಸ್ಕೇಲೆಬಿಲಿಟಿ ಅಪಾಯ ನಿರ್ವಹಣಾ ಸಾಧನಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಸಲಕರಣೆಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿ ಬಳಸುವ ಮೂಲಕ ಗ್ರಾಹಕರ ವಿನಂತಿಗಳನ್ನು ಪೂರೈಸುವುದು ಮುಖ್ಯ ವಿಷಯ:

  • ಪ್ರಗತಿಯ ಪರಿಣಾಮವಾಗಿ ಸಲಕರಣೆಗಳ ಶಕ್ತಿಯು ಹೆಚ್ಚಾದಾಗ. ಅಪೂರ್ಣ ಸಾಫ್ಟ್‌ವೇರ್‌ನಿಂದಾಗಿ ಇದು ನಿಷ್ಕ್ರಿಯವಾಗಿರುವುದಿಲ್ಲ. ಎರ್ಲಾಂಗ್ ಲಂಬವಾಗಿ ಚೆನ್ನಾಗಿ ಮಾಪಕವಾಗುತ್ತದೆ ಮತ್ತು ಯಾವಾಗಲೂ ಎಲ್ಲಾ CPU ಕೋರ್‌ಗಳು ಮತ್ತು ಲಭ್ಯವಿರುವ ಮೆಮೊರಿಯನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ;
  • ಕ್ಲೌಡ್ ಪರಿಸರದಲ್ಲಿ, ಪ್ರಸ್ತುತ ಅಥವಾ ಊಹಿಸಲಾದ ಲೋಡ್ ಮತ್ತು ಗ್ಯಾರಂಟಿ SLA ಅನ್ನು ಅವಲಂಬಿಸಿ ನಾವು ಸಲಕರಣೆಗಳ ಪ್ರಮಾಣವನ್ನು ನಿರ್ವಹಿಸಬಹುದು.

ದೋಷಸಹಿಷ್ಣುತೆ

ಎರಡು ಮೂಲತತ್ವಗಳನ್ನು ಪರಿಗಣಿಸೋಣ: "ವೈಫಲ್ಯಗಳು ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲ" ಮತ್ತು "ಯಾವಾಗಲೂ ವೈಫಲ್ಯಗಳು ಇರುತ್ತವೆ." ವ್ಯವಹಾರಕ್ಕಾಗಿ, ಸಾಫ್ಟ್‌ವೇರ್ ವೈಫಲ್ಯ ಎಂದರೆ ಹಣದ ನಷ್ಟ, ಮತ್ತು ಕೆಟ್ಟದಾಗಿದೆ, ಖ್ಯಾತಿಯ ನಷ್ಟ. ಸಂಭವನೀಯ ನಷ್ಟಗಳು ಮತ್ತು ದೋಷ-ಸಹಿಷ್ಣು ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ವೆಚ್ಚದ ನಡುವಿನ ಸಮತೋಲನವನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ರಾಜಿ ಕಾಣಬಹುದು.

ಅಲ್ಪಾವಧಿಯಲ್ಲಿ, ದೋಷ ಸಹಿಷ್ಣುತೆಯನ್ನು ಸಂಯೋಜಿಸುವ ವಾಸ್ತುಶಿಲ್ಪವು ಆಫ್-ದಿ-ಶೆಲ್ಫ್ ಕ್ಲಸ್ಟರಿಂಗ್ ಪರಿಹಾರಗಳನ್ನು ಖರೀದಿಸಲು ಹಣವನ್ನು ಉಳಿಸುತ್ತದೆ. ಅವು ದುಬಾರಿ ಮತ್ತು ದೋಷಗಳನ್ನು ಸಹ ಹೊಂದಿವೆ.
ದೀರ್ಘಾವಧಿಯಲ್ಲಿ, ದೋಷ-ಸಹಿಷ್ಣು ವಾಸ್ತುಶಿಲ್ಪವು ಅಭಿವೃದ್ಧಿಯ ಎಲ್ಲಾ ಹಂತಗಳಲ್ಲಿ ಅನೇಕ ಬಾರಿ ಪಾವತಿಸುತ್ತದೆ.
ಕೋಡ್ ಬೇಸ್‌ನಲ್ಲಿ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಯು ಅಭಿವೃದ್ಧಿ ಹಂತದಲ್ಲಿ ಸಿಸ್ಟಮ್‌ನೊಳಗಿನ ಘಟಕಗಳ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು ವಿವರವಾಗಿ ಕೆಲಸ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ವೈಫಲ್ಯಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ಕಾರ್ಯವನ್ನು ಇದು ಸರಳಗೊಳಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಎಲ್ಲಾ ನಿರ್ಣಾಯಕ ಘಟಕಗಳು ವೈಫಲ್ಯಗಳನ್ನು ನಿಭಾಯಿಸುತ್ತವೆ ಮತ್ತು ವಿನ್ಯಾಸದ ಮೂಲಕ ವೈಫಲ್ಯದ ನಂತರ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹೇಗೆ ಸಾಮಾನ್ಯ ಸ್ಥಿತಿಗೆ ಮರಳುವುದು ಎಂದು ಪರಿಣಾಮವಾಗಿ ವ್ಯವಸ್ಥೆಯು ತಿಳಿದಿದೆ.

ಸ್ಪಂದಿಸುವಿಕೆ

ವೈಫಲ್ಯಗಳ ಹೊರತಾಗಿಯೂ, ಅಪ್ಲಿಕೇಶನ್ ವಿನಂತಿಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಬೇಕು ಮತ್ತು SLA ಅನ್ನು ಭೇಟಿ ಮಾಡಬೇಕು. ವಾಸ್ತವವೆಂದರೆ ಜನರು ಕಾಯಲು ಬಯಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ವ್ಯವಹಾರಗಳು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಹೊಂದಿಕೊಳ್ಳಬೇಕು. ಹೆಚ್ಚು ಹೆಚ್ಚು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಹೆಚ್ಚು ಸ್ಪಂದಿಸುವ ನಿರೀಕ್ಷೆಯಿದೆ.
ರೆಸ್ಪಾನ್ಸಿವ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ನೈಜ ಸಮಯದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಎರ್ಲಾಂಗ್ VM ಸಾಫ್ಟ್ ರಿಯಲ್-ಟೈಮ್ ಮೋಡ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಸ್ಟಾಕ್ ಟ್ರೇಡಿಂಗ್, ಮೆಡಿಸಿನ್ ಮತ್ತು ಕೈಗಾರಿಕಾ ಉಪಕರಣಗಳ ನಿಯಂತ್ರಣದಂತಹ ಕೆಲವು ಕ್ಷೇತ್ರಗಳಿಗೆ ಹಾರ್ಡ್ ರಿಯಲ್-ಟೈಮ್ ಮೋಡ್ ಮುಖ್ಯವಾಗಿದೆ.
ರೆಸ್ಪಾನ್ಸಿವ್ ಸಿಸ್ಟಮ್‌ಗಳು UX ಅನ್ನು ಸುಧಾರಿಸುತ್ತದೆ ಮತ್ತು ವ್ಯಾಪಾರಕ್ಕೆ ಪ್ರಯೋಜನವನ್ನು ನೀಡುತ್ತದೆ.

ಪ್ರಾಥಮಿಕ ಸಾರಾಂಶ

ಈ ಲೇಖನವನ್ನು ಯೋಜಿಸುವಾಗ, ಮೆಸೇಜಿಂಗ್ ಬ್ರೋಕರ್ ಅನ್ನು ರಚಿಸುವ ಮತ್ತು ಅದರ ಆಧಾರದ ಮೇಲೆ ಸಂಕೀರ್ಣ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸುವ ನನ್ನ ಅನುಭವವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ನಾನು ಬಯಸುತ್ತೇನೆ. ಆದರೆ ಸೈದ್ಧಾಂತಿಕ ಮತ್ತು ಪ್ರೇರಕ ಭಾಗವು ಸಾಕಷ್ಟು ವಿಸ್ತಾರವಾಗಿದೆ.
ಲೇಖನದ ಎರಡನೇ ಭಾಗದಲ್ಲಿ, ಎಕ್ಸ್ಚೇಂಜ್ ಪಾಯಿಂಟ್ಗಳು, ಮೆಸೇಜಿಂಗ್ ಮಾದರಿಗಳು ಮತ್ತು ಅವುಗಳ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸಗಳ ಬಗ್ಗೆ ನಾನು ಮಾತನಾಡುತ್ತೇನೆ.
ಮೂರನೇ ಭಾಗದಲ್ಲಿ ನಾವು ಸೇವೆಗಳನ್ನು ಸಂಘಟಿಸುವ, ರೂಟಿಂಗ್ ಮತ್ತು ಸಮತೋಲನದ ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಗಣಿಸುತ್ತೇವೆ. ವ್ಯವಸ್ಥೆಗಳ ಸ್ಕೇಲೆಬಿಲಿಟಿ ಮತ್ತು ದೋಷ ಸಹಿಷ್ಣುತೆಯ ಪ್ರಾಯೋಗಿಕ ಭಾಗದ ಬಗ್ಗೆ ಮಾತನಾಡೋಣ.

ಮೊದಲ ಭಾಗದ ಅಂತ್ಯ.

ಛಾಯಾಗ್ರಹಣ @ಲುಕಾಬ್ರಾವೊ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ