2017 ರಲ್ಲಿ, ನಾವು ಆಲ್ಫಾ-ಬ್ಯಾಂಕ್ನ ಹೂಡಿಕೆ ವ್ಯವಹಾರದ ವಹಿವಾಟಿನ ಕೋರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಸ್ಪರ್ಧೆಯನ್ನು ಗೆದ್ದಿದ್ದೇವೆ ಮತ್ತು ಕೆಲಸವನ್ನು ಪ್ರಾರಂಭಿಸಿದ್ದೇವೆ (ಹೈಲೋಡ್ ++ 2018 ನಲ್ಲಿ ಹೂಡಿಕೆ ವ್ಯವಹಾರದ ಮುಖ್ಯ ವರದಿಯೊಂದಿಗೆ
ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ, ಸಿಸ್ಟಮ್ ವಿಕಸನಗೊಂಡಿತು ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕತೆಯನ್ನು ಪಡೆದುಕೊಂಡಿತು, ಮತ್ತು ಕೆಲವು ಹಂತದಲ್ಲಿ ನಾವು ಕಟ್ಟುನಿಟ್ಟಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಶ್ರೇಣಿಯ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ರಚಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್ ಸಾಫ್ಟ್ವೇರ್ಗಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಸ್ಫಟಿಕೀಕರಣಗೊಳಿಸುತ್ತಿದ್ದೇವೆ ಎಂದು ನಾವು ಅರಿತುಕೊಂಡಿದ್ದೇವೆ: ನಾವು ಯಶಸ್ವಿಯಾಗಿದ್ದೇವೆ ನಿರಂತರ ಸಂಗ್ರಹಣೆಯೊಂದಿಗೆ ವಿತರಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸುವ ವ್ಯವಸ್ಥೆ. ನಾವು ಪಡೆದ ಅನುಭವವು ಹೊಸ ಉತ್ಪನ್ನದ ಆಧಾರವಾಗಿದೆ -
ನಾನು TDG ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ನಾವು ಬಂದ ಪರಿಹಾರಗಳ ಬಗ್ಗೆ ಮಾತನಾಡಲು ಬಯಸುತ್ತೇನೆ, ಮುಖ್ಯ ಕಾರ್ಯವನ್ನು ನಿಮಗೆ ಪರಿಚಯಿಸಲು ಮತ್ತು ಸಂಪೂರ್ಣ ಪರಿಹಾರಗಳನ್ನು ನಿರ್ಮಿಸಲು ನಮ್ಮ ಉತ್ಪನ್ನವು ಹೇಗೆ ಆಧಾರವಾಗಬಹುದು ಎಂಬುದನ್ನು ತೋರಿಸಲು ಬಯಸುತ್ತೇನೆ.
ವಾಸ್ತುಶಿಲ್ಪದ ಪ್ರಕಾರ, ನಾವು ವ್ಯವಸ್ಥೆಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ವಿಂಗಡಿಸಿದ್ದೇವೆ ಪಾತ್ರಗಳು, ಪ್ರತಿಯೊಂದೂ ಒಂದು ನಿರ್ದಿಷ್ಟ ಶ್ರೇಣಿಯ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಕಾರಣವಾಗಿದೆ. ಒಂದೇ ಚಾಲನೆಯಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ ನಿದರ್ಶನವು ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಪಾತ್ರ ಪ್ರಕಾರಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಒಂದು ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ ಒಂದೇ ರೀತಿಯ ಹಲವಾರು ಪಾತ್ರಗಳು ಇರಬಹುದು:
ಕನೆಕ್ಟರ್
ಕನೆಕ್ಟರ್ ಹೊರಗಿನ ಪ್ರಪಂಚದೊಂದಿಗೆ ಸಂವಹನಕ್ಕೆ ಕಾರಣವಾಗಿದೆ; ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸುವುದು, ಅದನ್ನು ಪಾರ್ಸ್ ಮಾಡುವುದು ಮತ್ತು ಇದು ಯಶಸ್ವಿಯಾದರೆ, ಇನ್ಪುಟ್ ಪ್ರೊಸೆಸರ್ಗೆ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಡೇಟಾವನ್ನು ಕಳುಹಿಸುವುದು ಇದರ ಕಾರ್ಯವಾಗಿದೆ. ನಾವು HTTP, SOAP, Kafka, FIX ಫಾರ್ಮ್ಯಾಟ್ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತೇವೆ. ಆರ್ಕಿಟೆಕ್ಚರ್ ನಿಮಗೆ ಹೊಸ ಸ್ವರೂಪಗಳಿಗೆ ಸರಳವಾಗಿ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, IBM MQ ಗೆ ಬೆಂಬಲ ಶೀಘ್ರದಲ್ಲೇ ಬರಲಿದೆ. ವಿನಂತಿಯನ್ನು ಪಾರ್ಸ್ ಮಾಡುವುದು ವಿಫಲವಾದರೆ, ಕನೆಕ್ಟರ್ ದೋಷವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ; ಇಲ್ಲದಿದ್ದರೆ, ವಿನಂತಿಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ, ಅದರ ಮುಂದಿನ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ದೋಷ ಸಂಭವಿಸಿದರೂ ಸಹ. ವಿನಂತಿಗಳನ್ನು ಹೇಗೆ ಪುನರಾವರ್ತಿಸಬೇಕು ಎಂದು ತಿಳಿದಿಲ್ಲದ ಸಿಸ್ಟಮ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಇದನ್ನು ನಿರ್ದಿಷ್ಟವಾಗಿ ಮಾಡಲಾಗಿದೆ - ಅಥವಾ, ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಅದನ್ನು ತುಂಬಾ ನಿರಂತರವಾಗಿ ಮಾಡಿ. ಡೇಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳದಿರಲು, ರಿಪೇರಿ ಕ್ಯೂ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ: ವಸ್ತುವು ಮೊದಲು ಅದರೊಳಗೆ ಪ್ರವೇಶಿಸುತ್ತದೆ ಮತ್ತು ಯಶಸ್ವಿ ಸಂಸ್ಕರಣೆಯನ್ನು ಅದರಿಂದ ತೆಗೆದುಹಾಕಿದ ನಂತರ ಮಾತ್ರ. ನಿರ್ವಾಹಕರು ದುರಸ್ತಿ ಸರದಿಯಲ್ಲಿ ಉಳಿದಿರುವ ವಸ್ತುಗಳ ಬಗ್ಗೆ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಪಡೆಯಬಹುದು ಮತ್ತು ಸಾಫ್ಟ್ವೇರ್ ದೋಷ ಅಥವಾ ಹಾರ್ಡ್ವೇರ್ ವೈಫಲ್ಯವನ್ನು ತೆಗೆದುಹಾಕಿದ ನಂತರ, ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.
ಇನ್ಪುಟ್ ಪ್ರೊಸೆಸರ್
ಇನ್ಪುಟ್ ಪ್ರೊಸೆಸರ್ ಸ್ವೀಕರಿಸಿದ ಡೇಟಾವನ್ನು ವಿಶಿಷ್ಟ ಲಕ್ಷಣಗಳ ಪ್ರಕಾರ ವರ್ಗೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಸೂಕ್ತವಾದ ಪ್ರೊಸೆಸರ್ಗಳನ್ನು ಕರೆಯುತ್ತದೆ. ಹ್ಯಾಂಡ್ಲರ್ಗಳು ಲುವಾ ಕೋಡ್ ಆಗಿದ್ದು ಅದು ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅವು ಸಿಸ್ಟಮ್ನ ಕಾರ್ಯನಿರ್ವಹಣೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. ಈ ಹಂತದಲ್ಲಿ, ಡೇಟಾವನ್ನು ಅಗತ್ಯವಿರುವ ರೂಪಕ್ಕೆ ಕಡಿಮೆ ಮಾಡಬಹುದು ಮತ್ತು ಅಗತ್ಯವಿದ್ದಲ್ಲಿ, ಅಗತ್ಯ ತರ್ಕವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಅನಿಯಂತ್ರಿತ ಸಂಖ್ಯೆಯ ಕಾರ್ಯಗಳನ್ನು ಪ್ರಾರಂಭಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, Tarantool ಡೇಟಾ ಗ್ರಿಡ್ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ MDM (ಮಾಸ್ಟರ್ ಡೇಟಾ ಮ್ಯಾನೇಜ್ಮೆಂಟ್) ಉತ್ಪನ್ನದಲ್ಲಿ, ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸುವಾಗ, ವಿನಂತಿಯ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಿಧಾನಗೊಳಿಸದಿರಲು, ನಾವು ಗೋಲ್ಡನ್ ರೆಕಾರ್ಡ್ ರಚನೆಯನ್ನು ಪ್ರತ್ಯೇಕ ಕಾರ್ಯವಾಗಿ ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ. ಡೇಟಾವನ್ನು ಓದುವ, ಬದಲಾಯಿಸುವ ಮತ್ತು ಸೇರಿಸುವ ವಿನಂತಿಗಳನ್ನು ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ಬೆಂಬಲಿಸುತ್ತದೆ, ಶೇಖರಣಾ ಪ್ರಕಾರದ ಎಲ್ಲಾ ಪಾತ್ರಗಳಲ್ಲಿ ಕೆಲವು ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಫಲಿತಾಂಶದ ಒಟ್ಟುಗೂಡಿಸುವಿಕೆ (ನಕ್ಷೆ/ಕಡಿಮೆ).
ಹ್ಯಾಂಡ್ಲರ್ಗಳನ್ನು ಫೈಲ್ಗಳಲ್ಲಿ ವಿವರಿಸಬಹುದು:
sum.lua
local x, y = unpack(...)
return x + y
ತದನಂತರ, ಸಂರಚನೆಯಲ್ಲಿ ಘೋಷಿಸಲಾಗಿದೆ:
functions:
sum: { __file: sum.lua }
ಏಕೆ ಲುವಾ? ಲುವಾ ತುಂಬಾ ಸರಳವಾದ ಭಾಷೆ. ನಮ್ಮ ಅನುಭವದ ಆಧಾರದ ಮೇಲೆ, ಅದನ್ನು ತಿಳಿದುಕೊಂಡ ಒಂದೆರಡು ಗಂಟೆಗಳ ನಂತರ, ಜನರು ತಮ್ಮ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುವ ಕೋಡ್ ಅನ್ನು ಬರೆಯಲು ಪ್ರಾರಂಭಿಸುತ್ತಾರೆ. ಮತ್ತು ಇವು ವೃತ್ತಿಪರ ಅಭಿವರ್ಧಕರು ಮಾತ್ರವಲ್ಲ, ಉದಾಹರಣೆಗೆ, ವಿಶ್ಲೇಷಕರು. ಜೊತೆಗೆ, ಜಿಟ್ ಕಂಪೈಲರ್ಗೆ ಧನ್ಯವಾದಗಳು, ಲುವಾ ಬಹಳ ಬೇಗನೆ ಚಲಿಸುತ್ತದೆ.
ಶೇಖರಣಾ
ಸಂಗ್ರಹಣೆಯು ನಿರಂತರ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಉಳಿಸುವ ಮೊದಲು, ಡೇಟಾ ಸ್ಕೀಮಾದ ವಿರುದ್ಧ ಡೇಟಾವನ್ನು ಮೌಲ್ಯೀಕರಿಸಲಾಗುತ್ತದೆ. ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ವಿವರಿಸಲು ನಾವು ವಿಸ್ತೃತ ಸ್ವರೂಪವನ್ನು ಬಳಸುತ್ತೇವೆ
{
"name": "User",
"type": "record",
"logicalType": "Aggregate",
"fields": [
{ "name": "id", "type": "string"},
{"name": "first_name", "type": "string"},
{"name": "last_name", "type": "string"}
],
"indexes": ["id"]
}
ಈ ವಿವರಣೆಯನ್ನು ಆಧರಿಸಿ, DDL (ಡೇಟಾ ಡೆಫಿನಿಷನ್ ಲಾಂಗ್ವೇಜ್) ಅನ್ನು ಟಾರಂಟುಲಾ DBMS ಗಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು
ಅಸಮಕಾಲಿಕ ಡೇಟಾ ಪುನರಾವರ್ತನೆಯನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ (ಸಿಂಕ್ರೊನಸ್ ಒಂದನ್ನು ಸೇರಿಸಲು ಯೋಜನೆಗಳಿವೆ).
ಔಟ್ಪುಟ್ ಪ್ರೊಸೆಸರ್
ಕೆಲವೊಮ್ಮೆ ಹೊಸ ಡೇಟಾದ ಆಗಮನದ ಬಗ್ಗೆ ಬಾಹ್ಯ ಗ್ರಾಹಕರಿಗೆ ತಿಳಿಸಲು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ; ಈ ಉದ್ದೇಶಕ್ಕಾಗಿ, ಔಟ್ಪುಟ್ ಪ್ರೊಸೆಸರ್ ಪಾತ್ರವಿದೆ. ಡೇಟಾವನ್ನು ಉಳಿಸಿದ ನಂತರ, ಅದನ್ನು ಸರಿಯಾದ ಹ್ಯಾಂಡ್ಲರ್ಗೆ ರವಾನಿಸಬಹುದು (ಉದಾಹರಣೆಗೆ, ಅದನ್ನು ಗ್ರಾಹಕರು ಅಗತ್ಯವಿರುವ ಫಾರ್ಮ್ಗೆ ತರಲು) - ಮತ್ತು ನಂತರ ಕಳುಹಿಸಲು ಕನೆಕ್ಟರ್ಗೆ ರವಾನಿಸಬಹುದು. ದುರಸ್ತಿ ಸರದಿಯನ್ನು ಸಹ ಇಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ: ಯಾರೂ ವಸ್ತುವನ್ನು ಸ್ವೀಕರಿಸದಿದ್ದರೆ, ನಿರ್ವಾಹಕರು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಬಹುದು.
ಸ್ಕೇಲಿಂಗ್
ಕನೆಕ್ಟರ್, ಇನ್ಪುಟ್ ಪ್ರೊಸೆಸರ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಪ್ರೊಸೆಸರ್ ಪಾತ್ರಗಳು ಸ್ಟೇಟ್ಲೆಸ್ ಆಗಿದ್ದು, ಅಪೇಕ್ಷಿತ ರೋಲ್ ಪ್ರಕಾರವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಹೊಸ ಅಪ್ಲಿಕೇಶನ್ ನಿದರ್ಶನಗಳನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಸಿಸ್ಟಮ್ ಅನ್ನು ಅಡ್ಡಲಾಗಿ ಅಳೆಯಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಶೇಖರಣೆಯನ್ನು ಸಮತಲ ಸ್ಕೇಲಿಂಗ್ಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ
ಡೇಟಾ ಗುಣಲಕ್ಷಣಗಳು
ವಸ್ತುಗಳು ತುಂಬಾ ದೊಡ್ಡದಾಗಿರಬಹುದು ಮತ್ತು ಇತರ ವಸ್ತುಗಳನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಒಂದು ವರ್ಚುವಲ್ ಬಕೆಟ್ನಲ್ಲಿ ಎಲ್ಲಾ ಅವಲಂಬನೆಗಳೊಂದಿಗೆ ವಸ್ತುವನ್ನು ಸಂಗ್ರಹಿಸುವ ಮೂಲಕ ಡೇಟಾವನ್ನು ಸೇರಿಸುವ ಮತ್ತು ನವೀಕರಿಸುವ ಪರಮಾಣುತ್ವವನ್ನು ನಾವು ಖಚಿತಪಡಿಸುತ್ತೇವೆ. ಇದು ಹಲವಾರು ಭೌತಿಕ ಸರ್ವರ್ಗಳಲ್ಲಿ ವಸ್ತುವನ್ನು "ಹರಡದಂತೆ" ತಡೆಯುತ್ತದೆ.
ಆವೃತ್ತಿಯನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ: ಆಬ್ಜೆಕ್ಟ್ನ ಪ್ರತಿಯೊಂದು ಅಪ್ಡೇಟ್ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ನಾವು ಯಾವಾಗಲೂ ಟೈಮ್ ಸ್ಲೈಸ್ ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಮತ್ತು ಜಗತ್ತು ಹೇಗೆ ಕಾಣುತ್ತದೆ ಎಂಬುದನ್ನು ನೋಡಬಹುದು. ದೀರ್ಘ ಇತಿಹಾಸದ ಅಗತ್ಯವಿಲ್ಲದ ಡೇಟಾಕ್ಕಾಗಿ, ನಾವು ಆವೃತ್ತಿಗಳ ಸಂಖ್ಯೆಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು ಅಥವಾ ಒಂದನ್ನು ಮಾತ್ರ ಸಂಗ್ರಹಿಸಬಹುದು - ಇತ್ತೀಚಿನದು - ಅಂದರೆ, ನಿರ್ದಿಷ್ಟ ಪ್ರಕಾರದ ಆವೃತ್ತಿಯನ್ನು ಮೂಲಭೂತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು. ನೀವು ಸಮಯದ ಮೂಲಕ ಇತಿಹಾಸವನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು: ಉದಾಹರಣೆಗೆ, 1 ವರ್ಷಕ್ಕಿಂತ ಹಳೆಯದಾದ ನಿರ್ದಿಷ್ಟ ಪ್ರಕಾರದ ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಅಳಿಸಿ. ಆರ್ಕೈವಿಂಗ್ ಸಹ ಬೆಂಬಲಿತವಾಗಿದೆ: ನಾವು ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ ಜಾಗವನ್ನು ಮುಕ್ತಗೊಳಿಸಿ, ನಿಗದಿತ ಸಮಯಕ್ಕಿಂತ ಹಳೆಯದಾದ ವಸ್ತುಗಳನ್ನು ಅನ್ಲೋಡ್ ಮಾಡಬಹುದು.
ಕಾರ್ಯಗಳನ್ನು
ಆಸಕ್ತಿದಾಯಕ ವೈಶಿಷ್ಟ್ಯಗಳ ಪೈಕಿ, ವೇಳಾಪಟ್ಟಿಯಲ್ಲಿ, ಬಳಕೆದಾರರ ಕೋರಿಕೆಯ ಮೇರೆಗೆ ಅಥವಾ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಿಂದ ಪ್ರೋಗ್ರಾಮ್ಯಾಟಿಕ್ನಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಪ್ರಾರಂಭಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಗಮನಿಸುವುದು ಯೋಗ್ಯವಾಗಿದೆ:
ಇಲ್ಲಿ ನಾವು ಇನ್ನೊಂದು ಪಾತ್ರವನ್ನು ನೋಡುತ್ತೇವೆ - ರನ್ನರ್. ಈ ಪಾತ್ರವು ಸ್ಥಿತಿಯಿಲ್ಲ, ಮತ್ತು ಈ ಪಾತ್ರದೊಂದಿಗೆ ಹೆಚ್ಚುವರಿ ಅಪ್ಲಿಕೇಶನ್ ನಿದರ್ಶನಗಳನ್ನು ಅಗತ್ಯವಿರುವಂತೆ ಕ್ಲಸ್ಟರ್ಗೆ ಸೇರಿಸಬಹುದು. ಕಾರ್ಯಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದು ಓಟಗಾರನ ಜವಾಬ್ದಾರಿಯಾಗಿದೆ. ಹೇಳಿದಂತೆ, ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಿಂದ ಹೊಸ ಕಾರ್ಯಗಳನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಿದೆ; ಅವುಗಳನ್ನು ಶೇಖರಣೆಯಲ್ಲಿ ಸರದಿಯಲ್ಲಿ ಉಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ ರನ್ನರ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಈ ರೀತಿಯ ಕೆಲಸವನ್ನು ಜಾಬ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ನಾವು ಟಾಸ್ಕ್ ಎಂಬ ಕಾರ್ಯ ಪ್ರಕಾರವನ್ನು ಸಹ ಹೊಂದಿದ್ದೇವೆ - ಇವುಗಳು ವೇಳಾಪಟ್ಟಿಯಲ್ಲಿ (ಕ್ರಾನ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಬಳಸಿ) ಅಥವಾ ಬೇಡಿಕೆಯ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯಗಳಾಗಿವೆ. ಅಂತಹ ಕಾರ್ಯಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲು ಮತ್ತು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು, ನಾವು ಅನುಕೂಲಕರ ಕಾರ್ಯ ನಿರ್ವಾಹಕವನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಈ ಕಾರ್ಯವು ಲಭ್ಯವಾಗಲು, ನೀವು ಶೆಡ್ಯೂಲರ್ ಪಾತ್ರವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು; ಈ ಪಾತ್ರವು ಒಂದು ಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿದೆ, ಆದ್ದರಿಂದ ಇದು ಅಳೆಯುವುದಿಲ್ಲ, ಆದಾಗ್ಯೂ, ಅಗತ್ಯವಿಲ್ಲ; ಅದೇ ಸಮಯದಲ್ಲಿ, ಎಲ್ಲಾ ಇತರ ಪಾತ್ರಗಳಂತೆ, ಮಾಸ್ಟರ್ ಇದ್ದಕ್ಕಿದ್ದಂತೆ ನಿರಾಕರಿಸಿದರೆ ಕೆಲಸ ಮಾಡಲು ಪ್ರಾರಂಭಿಸುವ ಪ್ರತಿಕೃತಿಯನ್ನು ಹೊಂದಬಹುದು.
ಲಾಗರ್
ಮತ್ತೊಂದು ಪಾತ್ರವನ್ನು ಲಾಗರ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಇದು ಕ್ಲಸ್ಟರ್ನ ಎಲ್ಲಾ ಸದಸ್ಯರಿಂದ ಲಾಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ವೆಬ್ ಇಂಟರ್ಫೇಸ್ ಮೂಲಕ ಅವುಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ವೀಕ್ಷಿಸಲು ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಸೇವೆಗಳು
ಸಿಸ್ಟಮ್ ಸೇವೆಗಳನ್ನು ರಚಿಸಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ ಎಂದು ನಮೂದಿಸುವುದು ಯೋಗ್ಯವಾಗಿದೆ. ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ನಲ್ಲಿ, ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಲ್ಲಿ ರನ್ ಆಗುವ ಬಳಕೆದಾರ-ಲಿಖಿತ ಹ್ಯಾಂಡ್ಲರ್ಗೆ ಯಾವ ವಿನಂತಿಗಳನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಈ ಹ್ಯಾಂಡ್ಲರ್ನಲ್ಲಿ, ನೀವು ಕೆಲವು ರೀತಿಯ ವಿಶ್ಲೇಷಣಾತ್ಮಕ ಪ್ರಶ್ನೆಯನ್ನು ಚಲಾಯಿಸಬಹುದು ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು.
ಸೇವೆಯನ್ನು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ನಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ:
services:
sum:
doc: "adds two numbers"
function: sum
return_type: int
args:
x: int
y: int
GraphQL API ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಉತ್ಪತ್ತಿಯಾಗುತ್ತದೆ ಮತ್ತು ಸೇವೆಯು ಕರೆ ಮಾಡಲು ಲಭ್ಯವಾಗುತ್ತದೆ:
query {
sum(x: 1, y: 2)
}
ಇದು ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಕರೆಯುತ್ತದೆ sum
ಇದು ಫಲಿತಾಂಶವನ್ನು ನೀಡುತ್ತದೆ:
3
ಪ್ರಶ್ನೆ ಪ್ರೊಫೈಲಿಂಗ್ ಮತ್ತು ಮೆಟ್ರಿಕ್ಸ್
ಸಿಸ್ಟಮ್ ಮತ್ತು ಪ್ರೊಫೈಲಿಂಗ್ ವಿನಂತಿಗಳ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ನಾವು OpenTracing ಪ್ರೋಟೋಕಾಲ್ಗೆ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಿದ್ದೇವೆ. ಈ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬೆಂಬಲಿಸುವ ಸಾಧನಗಳಿಗೆ ಸಿಸ್ಟಮ್ ಬೇಡಿಕೆಯ ಮಾಹಿತಿಯನ್ನು ಕಳುಹಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ ಜಿಪ್ಕಿನ್, ಇದು ವಿನಂತಿಯನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ:
ಸ್ವಾಭಾವಿಕವಾಗಿ, ವ್ಯವಸ್ಥೆಯು ಆಂತರಿಕ ಮೆಟ್ರಿಕ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಅದನ್ನು ಪ್ರೊಮೀಥಿಯಸ್ ಬಳಸಿ ಸಂಗ್ರಹಿಸಬಹುದು ಮತ್ತು ಗ್ರಾಫಾನಾವನ್ನು ಬಳಸಿಕೊಂಡು ದೃಶ್ಯೀಕರಿಸಬಹುದು.
ನಿಯೋಜಿಸಿ
Tarantool ಡೇಟಾ ಗ್ರಿಡ್ ಅನ್ನು RPM ಪ್ಯಾಕೇಜ್ಗಳು ಅಥವಾ ಆರ್ಕೈವ್ನಿಂದ ನಿಯೋಜಿಸಬಹುದು, ವಿತರಣೆ ಅಥವಾ ಅನ್ಸಿಬಲ್ನಿಂದ ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸಿ, ಕುಬರ್ನೆಟ್ಸ್ಗೆ ಬೆಂಬಲವೂ ಇದೆ (
ವ್ಯಾಪಾರ ತರ್ಕವನ್ನು (ಕಾನ್ಫಿಗರೇಶನ್, ಹ್ಯಾಂಡ್ಲರ್ಗಳು) ಕಾರ್ಯಗತಗೊಳಿಸುವ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು UI ಮೂಲಕ ಆರ್ಕೈವ್ ರೂಪದಲ್ಲಿ ನಿಯೋಜಿಸಲಾದ Tarantool ಡೇಟಾ ಗ್ರಿಡ್ ಕ್ಲಸ್ಟರ್ಗೆ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಅಥವಾ ನಾವು ಒದಗಿಸಿದ API ಮೂಲಕ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.
ಮಾದರಿ ಅಪ್ಲಿಕೇಶನ್ಗಳು
Tarantool ಡೇಟಾ ಗ್ರಿಡ್ ಬಳಸಿ ಯಾವ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ರಚಿಸಬಹುದು? ವಾಸ್ತವವಾಗಿ, ಹೆಚ್ಚಿನ ವ್ಯವಹಾರ ಕಾರ್ಯಗಳು ಹೇಗಾದರೂ ಡೇಟಾ ಹರಿವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು, ಸಂಗ್ರಹಿಸಲು ಮತ್ತು ಪ್ರವೇಶಿಸಲು ಸಂಬಂಧಿಸಿವೆ. ಆದ್ದರಿಂದ, ನೀವು ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಬೇಕಾದ ಮತ್ತು ಪ್ರವೇಶಿಸಬೇಕಾದ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ಹೊಂದಿದ್ದರೆ, ನಮ್ಮ ಉತ್ಪನ್ನವು ನಿಮಗೆ ಸಾಕಷ್ಟು ಅಭಿವೃದ್ಧಿ ಸಮಯವನ್ನು ಉಳಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ವ್ಯಾಪಾರ ತರ್ಕದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ.
ಉದಾಹರಣೆಗೆ, ನಾವು ರಿಯಲ್ ಎಸ್ಟೇಟ್ ಮಾರುಕಟ್ಟೆಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಲು ಬಯಸುತ್ತೇವೆ, ಇದರಿಂದ ಭವಿಷ್ಯದಲ್ಲಿ, ಉದಾಹರಣೆಗೆ, ನಾವು ಉತ್ತಮ ಕೊಡುಗೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರುತ್ತೇವೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು ಈ ಕೆಳಗಿನ ಕಾರ್ಯಗಳನ್ನು ಹೈಲೈಟ್ ಮಾಡುತ್ತೇವೆ:
- ತೆರೆದ ಮೂಲಗಳಿಂದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುವ ರೋಬೋಟ್ಗಳು ನಮ್ಮ ಡೇಟಾ ಮೂಲಗಳಾಗಿರುತ್ತವೆ. ಯಾವುದೇ ಭಾಷೆಯಲ್ಲಿ ರೆಡಿಮೇಡ್ ಪರಿಹಾರಗಳು ಅಥವಾ ಬರವಣಿಗೆ ಕೋಡ್ ಬಳಸಿ ನೀವು ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಬಹುದು.
- ಮುಂದೆ, Tarantool ಡೇಟಾ ಗ್ರಿಡ್ ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಉಳಿಸುತ್ತದೆ. ವಿಭಿನ್ನ ಮೂಲಗಳಿಂದ ಡೇಟಾ ಸ್ವರೂಪವು ವಿಭಿನ್ನವಾಗಿದ್ದರೆ, ನೀವು ಲುವಾದಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಬರೆಯಬಹುದು ಅದು ಒಂದೇ ಸ್ವರೂಪಕ್ಕೆ ಪರಿವರ್ತನೆಯನ್ನು ಮಾಡುತ್ತದೆ. ಪೂರ್ವ-ಸಂಸ್ಕರಣೆ ಹಂತದಲ್ಲಿ, ನೀವು ನಕಲಿ ಕೊಡುಗೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲು ಅಥವಾ ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಏಜೆಂಟ್ಗಳ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಹೆಚ್ಚುವರಿಯಾಗಿ ನವೀಕರಿಸಲು ಸಹ ಸಾಧ್ಯವಾಗುತ್ತದೆ.
- ಈಗ ನೀವು ಈಗಾಗಲೇ ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ ಸ್ಕೇಲೆಬಲ್ ಪರಿಹಾರವನ್ನು ಹೊಂದಿರುವಿರಿ ಅದನ್ನು ಡೇಟಾದಿಂದ ತುಂಬಿಸಬಹುದು ಮತ್ತು ಡೇಟಾ ಆಯ್ಕೆಗಳನ್ನು ಮಾಡಬಹುದು. ನಂತರ ನೀವು ಹೊಸ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಡೇಟಾಕ್ಕಾಗಿ ವಿನಂತಿಯನ್ನು ಮಾಡುವ ಸೇವೆಯನ್ನು ಬರೆಯಿರಿ ಮತ್ತು ದಿನಕ್ಕೆ ಹೆಚ್ಚು ಅನುಕೂಲಕರ ಕೊಡುಗೆಯನ್ನು ನೀಡುತ್ತದೆ - ಇದಕ್ಕೆ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ನಲ್ಲಿ ಕೆಲವು ಸಾಲುಗಳು ಮತ್ತು ಸ್ವಲ್ಪ ಲುವಾ ಕೋಡ್ ಅಗತ್ಯವಿರುತ್ತದೆ.
ಮುಂದಿನ ಏನು?
ಬಳಸಿಕೊಂಡು ಅಭಿವೃದ್ಧಿಯ ಸುಲಭತೆಯನ್ನು ಸುಧಾರಿಸುವುದು ನಮ್ಮ ಆದ್ಯತೆಯಾಗಿದೆ
ಸುರಕ್ಷತಾ ವಿಷಯಗಳ ಬಗ್ಗೆಯೂ ನಾವು ಹೆಚ್ಚಿನ ಗಮನ ಹರಿಸುತ್ತೇವೆ. ಇದೀಗ ನಾವು ಉನ್ನತ ಮಟ್ಟದ ಭದ್ರತೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ವೈಯಕ್ತಿಕ ಡೇಟಾ ಮಾಹಿತಿ ವ್ಯವಸ್ಥೆಗಳು ಮತ್ತು ಸರ್ಕಾರಿ ಮಾಹಿತಿ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಬಳಸುವ ಸಾಫ್ಟ್ವೇರ್ ಉತ್ಪನ್ನಗಳ ಪ್ರಮಾಣೀಕರಣದ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸಲು ರಷ್ಯಾದ FSTEC ಯಿಂದ ಪ್ರಮಾಣೀಕರಣಕ್ಕೆ ಒಳಗಾಗುತ್ತಿದ್ದೇವೆ.
ಮೂಲ: www.habr.com