ಹಿಂದಿನ ಎರಡು ದಶಕಗಳಲ್ಲಿ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಆನ್ಲೈನ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಬಹಳ ದೂರ ಬಂದಿವೆ. ಈ ನಾವೀನ್ಯತೆಗಳು ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿಯ ನಮ್ಮ ಗ್ರಹಿಕೆಗಳನ್ನು ಬದಲಾಯಿಸಿವೆ. Facebook, Instagram ಮತ್ತು Twitter, ಉದಾಹರಣೆಗೆ, ಎಲ್ಲಾ ಸ್ಕೇಲೆಬಲ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಾಗಿವೆ.
ಪ್ರಪಂಚದಾದ್ಯಂತ ಶತಕೋಟಿ ಜನರು ಒಂದೇ ಸಮಯದಲ್ಲಿ ಅವುಗಳನ್ನು ಬಳಸುವುದರಿಂದ ಬೃಹತ್ ಪ್ರಮಾಣದ ಟ್ರಾಫಿಕ್ ಮತ್ತು ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸಲು ಈ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸಬೇಕು. ಇದು ಯಾವಾಗ ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸ ಚಿತ್ರವನ್ನು ಪ್ರವೇಶಿಸುತ್ತದೆ.
ನಿರ್ದಿಷ್ಟ ಮಾನದಂಡಗಳನ್ನು ಪೂರೈಸುವ ಸಿಸ್ಟಮ್ಗಾಗಿ ಆರ್ಕಿಟೆಕ್ಚರ್, ಇಂಟರ್ಫೇಸ್ಗಳು ಮತ್ತು ಡೇಟಾವನ್ನು ಸ್ಥಾಪಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಸುಸಂಘಟಿತ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ವ್ಯವಸ್ಥೆಗಳ ಮೂಲಕ, ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸವು ನಿಮ್ಮ ವ್ಯಾಪಾರ ಅಥವಾ ಸಂಸ್ಥೆಯ ಬೇಡಿಕೆಗಳನ್ನು ಪೂರೈಸುತ್ತದೆ.
ನಿಮ್ಮ ಕಂಪನಿ ಅಥವಾ ಸಂಸ್ಥೆಯು ಅದರ ಮಾನದಂಡಗಳನ್ನು ನಿರ್ಧರಿಸಿದ ನಂತರ, ನಿಮ್ಮ ಗ್ರಾಹಕರ ಬೇಡಿಕೆಗಳನ್ನು ಪೂರೈಸುವ ಭೌತಿಕ ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸದಲ್ಲಿ ನೀವು ಅವುಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಪ್ರಾರಂಭಿಸಬಹುದು.
ಬೆಸ್ಪೋಕ್ ಅಭಿವೃದ್ಧಿ, ವಾಣಿಜ್ಯ ಪರಿಹಾರಗಳು ಅಥವಾ ಎರಡರ ಸಂಯೋಜನೆಯೊಂದಿಗೆ ಹೋಗಲು ನೀವು ಆಯ್ಕೆ ಮಾಡಿಕೊಳ್ಳಿ, ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ಅನ್ನು ನೀವು ಹೇಗೆ ವಿನ್ಯಾಸಗೊಳಿಸುತ್ತೀರಿ ಎಂಬುದನ್ನು ನೀವು ಹೇಗೆ ನಿರ್ಮಿಸುತ್ತೀರಿ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.
ನಾವು ಈ ಪೋಸ್ಟ್ನಲ್ಲಿ ಟ್ವಿಟರ್ ಟೈಮ್ಲೈನ್ನ ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸವನ್ನು ವಿವರವಾಗಿ ನೋಡುತ್ತೇವೆ, ಟ್ಯುಟೋರಿಯಲ್ನೊಂದಿಗೆ ಪೂರ್ಣಗೊಳಿಸಿ. ನಾವೀಗ ಆರಂಭಿಸೋಣ.
ಹಂತ 1: ಬಳಕೆಯ ಸಂದರ್ಭ ಮತ್ತು ನಿರ್ಬಂಧಗಳ ರೂಪರೇಖೆ
ಕೇಸ್ ಬಳಸಿ
- ಬಳಕೆದಾರರು ಟ್ವೀಟ್ ಅನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡುತ್ತಾರೆ.
- ಈ ಸೇವೆಯು ಟ್ವೀಟ್ಗಳ ಅನುಯಾಯಿಗಳಿಗೆ ಪುಶ್ ಅಧಿಸೂಚನೆಗಳು ಮತ್ತು ಇಮೇಲ್ಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ.
- ಬಳಕೆದಾರರ ಟೈಮ್ಲೈನ್ ಅನ್ನು ವೀಕ್ಷಿಸಲಾಗಿದೆ (ಬಳಕೆದಾರರಿಂದ ಚಟುವಟಿಕೆ)
- ಬಳಕೆದಾರರು ಹೋಮ್ ಟೈಮ್ಲೈನ್ ಅನ್ನು ನೋಡುತ್ತಾರೆ (ಬಳಕೆದಾರರು ಅನುಸರಿಸುತ್ತಿರುವ ಜನರಿಂದ ಚಟುವಟಿಕೆ)
- ಬಳಕೆದಾರರಿಂದ ಕೀವರ್ಡ್ಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತದೆ.
- ಸೇವೆಯು ನಿಜವಾಗಿಯೂ ಪ್ರವೇಶಿಸಬಹುದಾಗಿದೆ.
ವ್ಯಾಪ್ತಿಯ ಹೊರಗೆ
- ಈ ಸೇವೆಯನ್ನು ಬಳಸಿಕೊಂಡು Twitter Firehose ಮತ್ತು ಇತರ ಸ್ಟ್ರೀಮ್ಗಳಿಗೆ ಟ್ವೀಟ್ಗಳನ್ನು ಕಳುಹಿಸಲಾಗುತ್ತದೆ.
- ಸೇವೆಯು ಬಳಕೆದಾರರ ಗೋಚರತೆಯ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಆಧರಿಸಿ ಟ್ವೀಟ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.
- ಪ್ರತ್ಯುತ್ತರ ನೀಡಿದ ವ್ಯಕ್ತಿಯನ್ನು ಬಳಕೆದಾರರು ಅನುಸರಿಸದಿದ್ದರೆ, ಪ್ರತ್ಯುತ್ತರವನ್ನು ಮರೆಮಾಡಿ.
- ರೀಟ್ವೀಟ್ಗಳನ್ನು ಮರೆಮಾಡಿ' ಆಯ್ಕೆಯನ್ನು ಗಮನಿಸಿ.
- ಅನಾಲಿಟಿಕ್ಸ್
ನಿರ್ಬಂಧಗಳು ಮತ್ತು ಊಹೆಗಳು
ರಾಜ್ಯ ಊಹೆಗಳು
- ಟ್ರಾಫಿಕ್ ಸಮನಾಗಿ ಹರಡಿಲ್ಲ.
- ಟ್ವೀಟ್ ಕಳುಹಿಸಲು ಸರಳವಾಗಿರಬೇಕು.
- ನೀವು ಲಕ್ಷಾಂತರ ಅನುಯಾಯಿಗಳನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ನಿಮ್ಮ ಎಲ್ಲಾ ಅನುಯಾಯಿಗಳಿಗೆ ಟ್ವೀಟ್ ಕಳುಹಿಸುವುದು ತ್ವರಿತವಾಗಿರಬೇಕು.
- 100 ಮಿಲಿಯನ್ ಸಕ್ರಿಯ ಬಳಕೆದಾರರಿದ್ದಾರೆ.
- ಪ್ರತಿ ತಿಂಗಳು 15 ಬಿಲಿಯನ್ ಟ್ವೀಟ್ಗಳು ಅಥವಾ ಪ್ರತಿದಿನ 500 ಮಿಲಿಯನ್ ಟ್ವೀಟ್ಗಳು
- ಪ್ರತಿ ಟ್ವೀಟ್ ಸರಾಸರಿ 10 ಡೆಲಿವರಿಗಳ ಅಭಿಮಾನಿಗಳನ್ನು ಹೊಂದಿದೆ.
- ಪ್ರತಿದಿನ, ಅಭಿಮಾನಿಗಳು 5 ಬಿಲಿಯನ್ ಟ್ವೀಟ್ಗಳನ್ನು ತಲುಪಿಸುತ್ತಾರೆ.
- ಫ್ಯಾನೌಟ್ ಪ್ರತಿ ತಿಂಗಳು 150 ಬಿಲಿಯನ್ ಟ್ವೀಟ್ಗಳನ್ನು ತಲುಪಿಸುತ್ತದೆ.
- 250 ಬಿಲಿಯನ್ ಮಾಸಿಕ ಓದುವ ವಿನಂತಿಗಳು
- 10 ಬಿಲಿಯನ್ ಮಾಸಿಕ ಹುಡುಕಾಟಗಳು
ಟೈಮ್ಲೈನ್
- ಟೈಮ್ಲೈನ್ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಸುಲಭವಾಗಿರಬೇಕು.
- ಟ್ವಿಟರ್ ಬರವಣಿಗೆಗಿಂತ ಓದುವುದೇ ಹೆಚ್ಚು.
- ತ್ವರಿತ ಟ್ವೀಟ್ ಓದುವಿಕೆಗಾಗಿ ಆಪ್ಟಿಮೈಜ್ ಮಾಡಿ
- ಟ್ವೀಟ್ ಬಳಕೆ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
ಹುಡುಕು
- ಹುಡುಕಾಟ ಪ್ರಕ್ರಿಯೆಯು ತ್ವರಿತವಾಗಿರಬೇಕು.
- ಹುಡುಕಲು ಇದು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
ಬಳಕೆಯ ಲೆಕ್ಕಾಚಾರ
ಪ್ರತಿ ಟ್ವೀಟ್ನ ಗಾತ್ರ:
- 8 ಬೈಟ್ಗಳ ಟ್ವೀಟ್ ಐಡಿ
- 32 ಬೈಟ್ಗಳು ಬಳಕೆದಾರ-ಐಡಿ
- ಪಠ್ಯದ 140 ಬೈಟ್ಗಳು
- ಮಾಧ್ಯಮ - ಸರಾಸರಿ 10 ಕೆಬಿ
- ಒಟ್ಟು: ~10 KB
ಪ್ರತಿ ತಿಂಗಳು, 150 TB ತಾಜಾ ಟ್ವೀಟ್ ವಿಷಯವನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ.
- * ಪ್ರತಿ ದಿನ 500 ಮಿಲಿಯನ್ ಟ್ವೀಟ್ಗಳು * ತಿಂಗಳಿಗೆ 30 ದಿನಗಳು * ಪ್ರತಿ ಟ್ವೀಟ್ಗೆ 10 ಕೆಬಿ
- ಮೂರು ವರ್ಷಗಳಲ್ಲಿ, 5.4 PB ತಾಜಾ ಟ್ವೀಟ್ ವಿಷಯವಿದೆ.
ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 100,000 ಓದಲು ವಿನಂತಿಗಳಿವೆ.
- * (ಸೆಕೆಂಡಿಗೆ 400 ವಿನಂತಿಗಳು / ತಿಂಗಳಿಗೆ 1 ಬಿಲಿಯನ್ ವಿನಂತಿಗಳು) ಪ್ರತಿ ತಿಂಗಳು 250 ಬಿಲಿಯನ್ ಓದುವ ವಿನಂತಿಗಳು
ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 6,000 ಟ್ವೀಟ್ಗಳಿವೆ.
- * (ಸೆಕೆಂಡಿಗೆ 400 ವಿನಂತಿಗಳು / ತಿಂಗಳಿಗೆ 1 ಬಿಲಿಯನ್ ವಿನಂತಿಗಳು) ಪ್ರತಿ ತಿಂಗಳು 15 ಬಿಲಿಯನ್ ಟ್ವೀಟ್ಗಳು
ಅಭಿಮಾನಿಗಳಲ್ಲಿ, ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 60 ಸಾವಿರ ಟ್ವೀಟ್ಗಳನ್ನು ಕಳುಹಿಸಲಾಗುತ್ತದೆ.
- Fanout ಪ್ರತಿ ತಿಂಗಳು 150 ಬಿಲಿಯನ್ ಟ್ವೀಟ್ಗಳನ್ನು ನೀಡುತ್ತದೆ* (ಸೆಕೆಂಡಿಗೆ 400 ವಿನಂತಿಗಳು / ತಿಂಗಳಿಗೆ 1 ಶತಕೋಟಿ ವಿನಂತಿಗಳು).
ಮಾಹಿತಿಗಾಗಿ ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 4,000 ವಿನಂತಿಗಳು
- * (ಸೆಕೆಂಡಿಗೆ 400 ವಿನಂತಿಗಳು / ತಿಂಗಳಿಗೆ 1 ಬಿಲಿಯನ್ ವಿನಂತಿಗಳು) ಪ್ರತಿ ತಿಂಗಳು 10 ಬಿಲಿಯನ್ ಹುಡುಕಾಟಗಳು
ಕೆಲವು ಉಪಯುಕ್ತ ಪರಿವರ್ತನೆ
- ಪ್ರತಿ ತಿಂಗಳು, 2.5 ಮಿಲಿಯನ್ ಸೆಕೆಂಡುಗಳು ಹಾದುಹೋಗುತ್ತವೆ.
- ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 2.5 ವಿನಂತಿಯಂತೆ ತಿಂಗಳಿಗೆ 1 ಮಿಲಿಯನ್ ವಿನಂತಿಗಳು
- ತಿಂಗಳಿಗೆ 100 ಮಿಲಿಯನ್ ವಿನಂತಿಗಳು x ಸೆಕೆಂಡಿಗೆ 40 ವಿನಂತಿಗಳು
- ತಿಂಗಳಿಗೆ 1 ಬಿಲಿಯನ್ ವಿನಂತಿಗಳು = ಸೆಕೆಂಡಿಗೆ 400 ವಿನಂತಿಗಳು
ಹಂತ 2: ಉನ್ನತ ಮಟ್ಟದ ರೇಖಾಚಿತ್ರ
ಹಂತ 3: ಪ್ರಮುಖ ಅಂಶಗಳನ್ನು ವಿವರಿಸುವುದು
ಅವರು ಟ್ವೀಟ್ ಅನ್ನು ಸಲ್ಲಿಸಿದರೆ ಸಂಬಂಧಿತ ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಬಳಕೆದಾರರ ಟೈಮ್ಲೈನ್ (ಬಳಕೆದಾರರಿಂದ ಚಟುವಟಿಕೆ) ಅನ್ನು ಜನಪ್ರಿಯಗೊಳಿಸಲು ಬಳಕೆದಾರರ ಸ್ವಂತ ಟ್ವೀಟ್ಗಳನ್ನು ನಾವು ಉಳಿಸಬಹುದು. ಟ್ವೀಟ್ಗಳನ್ನು ತಲುಪಿಸುವುದು ಮತ್ತು ಹೋಮ್ ಟೈಮ್ಲೈನ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದು ಹೆಚ್ಚು ಕಷ್ಟಕರವಾಗಿದೆ (ಬಳಕೆದಾರರು ಅನುಸರಿಸುವ ವ್ಯಕ್ತಿಗಳಿಂದ ಚಟುವಟಿಕೆ).
ಎಲ್ಲಾ ಅನುಯಾಯಿಗಳಿಗೆ (ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 60 ಸಾವಿರ ಟ್ವೀಟ್ಗಳನ್ನು ವಿತರಿಸಲಾಗುತ್ತದೆ) ಟ್ವೀಟ್ಗಳನ್ನು ಹೊರಹಾಕುವ ಮೂಲಕ ವಿಶಿಷ್ಟವಾದ ಸಂಬಂಧಿತ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಮುಳುಗಿಸಲಾಗುತ್ತದೆ. ನಾವು ಬಹುಶಃ NoSQL ಡೇಟಾಬೇಸ್ ಅಥವಾ ಮೆಮೊರಿ ಸಂಗ್ರಹದಂತಹ ವೇಗವಾಗಿ ಬರೆಯುವ ಡೇಟಾ ಸಂಗ್ರಹಣೆಯೊಂದಿಗೆ ಹೋಗಲು ಬಯಸುತ್ತೇವೆ.
ಮೆಮೊರಿಯಿಂದ 1 MB ಅನುಕ್ರಮವಾಗಿ ಓದುವುದು ಸರಿಸುಮಾರು 250 ಮೈಕ್ರೋಸೆಕೆಂಡ್ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಆದರೆ SSD ಯಿಂದ ಓದುವುದು 4 ಪಟ್ಟು ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಡಿಸ್ಕ್ನಿಂದ ಓದುವುದು 80 ಪಟ್ಟು ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
ಚಿತ್ರಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳಂತಹ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ಆಬ್ಜೆಕ್ಟ್ ಸ್ಟೋರ್ ಅನ್ನು ಬಳಸಬಹುದು.
- ರಿವರ್ಸ್ ಪ್ರಾಕ್ಸಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವ ವೆಬ್ ಸರ್ವರ್, ಕ್ಲೈಂಟ್ನಿಂದ ಟ್ವೀಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ.
- ವಿನಂತಿಯನ್ನು ವೆಬ್ ಸರ್ವರ್ ಮೂಲಕ ರೈಟ್ API ಸರ್ವರ್ಗೆ ಕಳುಹಿಸಲಾಗಿದೆ.
- ರೈಟ್ API ಟ್ವೀಟ್ ಅನ್ನು ಬಳಕೆದಾರರ ಟೈಮ್ಲೈನ್ನಲ್ಲಿ SQL ಡೇಟಾಬೇಸ್ಗೆ ಉಳಿಸುತ್ತದೆ.
ಫ್ಯಾನ್-ಔಟ್ ಸೇವೆಯನ್ನು ರೈಟ್ API ಮೂಲಕ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ ಮತ್ತು ಇದು ಈ ಕೆಳಗಿನ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.
- ಬಳಕೆದಾರರ ಗ್ರಾಫ್ ಸೇವೆಯನ್ನು ಪ್ರಶ್ನಿಸುವ ಮೂಲಕ ಮೆಮೊರಿ ಸಂಗ್ರಹದಲ್ಲಿ ಬಳಕೆದಾರರ ಅನುಯಾಯಿಗಳನ್ನು ಹುಡುಕುತ್ತದೆ.
- ಮೆಮೊರಿ ಸಂಗ್ರಹದಲ್ಲಿ, ಟ್ವೀಟ್ ಅನ್ನು ಬಳಕೆದಾರರ ಅನುಯಾಯಿಗಳ ಹೋಮ್ ಟೈಮ್ಲೈನ್ನಲ್ಲಿ ಉಳಿಸಲಾಗುತ್ತದೆ.
- 1,000 ಅನುಯಾಯಿಗಳು = 1,000 ಲುಕಪ್ಗಳು ಮತ್ತು ಒಳಸೇರಿಸುವಿಕೆಗಳು = O(n) ಕಾರ್ಯಾಚರಣೆ.
- ಟ್ವೀಟ್ ಅನ್ನು ತ್ವರಿತ ಹುಡುಕಾಟಕ್ಕಾಗಿ ಹುಡುಕಾಟ ಸೂಚ್ಯಂಕ ಸೇವೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ.
- ಆಬ್ಜೆಕ್ಟ್ ಸ್ಟೋರ್ ಅನ್ನು ಮಾಧ್ಯಮವನ್ನು ಸಂಗ್ರಹಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.
- ಅಧಿಸೂಚನೆ ಸೇವೆಯ ಮೂಲಕ ಅನುಯಾಯಿಗಳಿಗೆ ಪುಶ್ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ.
- ಎಚ್ಚರಿಕೆಗಳನ್ನು ಅಸಮಕಾಲಿಕವಾಗಿ ಕಳುಹಿಸಲು, ಇದು ಸರದಿಯನ್ನು ಬಳಸುತ್ತದೆ.
ನಮ್ಮ ಮೆಮೊರಿ ಸಂಗ್ರಹವು Redis ಆಗಿದ್ದರೆ ನಾವು ಈ ಕೆಳಗಿನ ರಚನೆಯೊಂದಿಗೆ ಸ್ಥಳೀಯ Redis ಪಟ್ಟಿಯನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು:
ಬಳಕೆದಾರರ ಹೋಮ್ ಟೈಮ್ಲೈನ್ ಅನ್ನು ಹೊಸ ಟ್ವೀಟ್ನೊಂದಿಗೆ ನವೀಕರಿಸಲಾಗುತ್ತದೆ, ಅದನ್ನು ಮೆಮೊರಿ ಸಂಗ್ರಹದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ನಾವು ಈ ಕೆಳಗಿನ ಸಾರ್ವಜನಿಕ REST API ಅನ್ನು ಬಳಸುತ್ತೇವೆ:
ಬಳಕೆದಾರರ ಟೈಮ್ಲೈನ್ ಅನ್ನು ಬಳಕೆದಾರರು ವೀಕ್ಷಿಸುತ್ತಾರೆ.
- ವೆಬ್ ಸರ್ವರ್ ಕ್ಲೈಂಟ್ನಿಂದ ಬಳಕೆದಾರರ ಟೈಮ್ಲೈನ್ ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ.
- ವಿನಂತಿಯನ್ನು ವೆಬ್ ಸರ್ವರ್ ಮೂಲಕ ರೀಡ್ API ಸರ್ವರ್ಗೆ ಕಳುಹಿಸಲಾಗಿದೆ.
- ರೀಡ್ API ಬಳಕೆದಾರರ ಕಾಲಾವಧಿಗಾಗಿ SQL ಡೇಟಾಬೇಸ್ ಅನ್ನು ಪ್ರಶ್ನಿಸುತ್ತದೆ.
REST API ಹೋಮ್ ಟೈಮ್ಲೈನ್ನಂತೆಯೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಎಲ್ಲಾ ಟ್ವೀಟ್ಗಳು ಅವರು ಅನುಸರಿಸುವ ಜನರಿಗಿಂತ ಹೆಚ್ಚಾಗಿ ಬಳಕೆದಾರರಿಂದ ಹುಟ್ಟಿಕೊಳ್ಳುತ್ತವೆ ಎಂಬುದನ್ನು ಹೊರತುಪಡಿಸಿ.
ಬಳಕೆದಾರರು ಕೀವರ್ಡ್ಗಳಿಗಾಗಿ ಹುಡುಕುತ್ತಾರೆ:
- ವೆಬ್ ಸರ್ವರ್ ಕ್ಲೈಂಟ್ನಿಂದ ಹುಡುಕಾಟ ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ.
- ವಿನಂತಿಯನ್ನು ವೆಬ್ ಸರ್ವರ್ನಿಂದ ಹುಡುಕಾಟ API ಸರ್ವರ್ಗೆ ಕಳುಹಿಸಲಾಗಿದೆ.
ಹಂತ 4: Twitter ಟೈಮ್ಲೈನ್
ಟೈಮ್ಲೈನ್ ರಚಿಸುವುದು ಕಷ್ಟದ ಕೆಲಸ. ವೆಬ್ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಸರ್ವರ್ಗಳಿಗೆ ಲಿಂಕ್ ಮಾಡುವ ಟೈಮ್ಲೈನ್ ಉತ್ಪಾದಿಸುವ ಸರ್ವರ್ ಅಗತ್ಯವಿದೆ.
ಪ್ರತಿ ಬಾರಿ ಬಳಕೆದಾರರು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, ಟೈಮ್ಲೈನ್ ಸೇವೆಯು ಅನುಯಾಯಿಗಳ ಕೋಷ್ಟಕದಲ್ಲಿ ಬಳಕೆದಾರರಿಂದ ಹೊಸ ಟ್ವೀಟ್ಗಳ ಟ್ರ್ಯಾಕ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರ ಟೈಮ್ಲೈನ್ ಅನ್ನು ನವೀಕರಿಸುತ್ತದೆ ಅಥವಾ ರಿಫ್ರೆಶ್ ಮಾಡುತ್ತದೆ.
ನಾವು ಇಲ್ಲಿ ಯಾವುದೇ ರೀತಿಯ ಶ್ರೇಯಾಂಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದಿಲ್ಲ; ಬದಲಿಗೆ, ಬಳಕೆದಾರರ ಅನುಯಾಯಿಗಳಿಂದ ಟಾಪ್ 5 ಟ್ವೀಟ್ಗಳನ್ನು ರಚಿಸುವ ಸಮಯದ ಕ್ರಮದಲ್ಲಿ ಟೈಮ್ಲೈನ್ನಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ. ನಾವು 50-ಟ್ವೀಟ್ ರಿಫ್ರೆಶ್ ಕಟ್ಆಫ್ ಅನ್ನು ನಿರ್ವಹಿಸಬಹುದು. ಬಳಕೆದಾರರು ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡುವವರೆಗೆ ಆ ಮಿತಿಯನ್ನು ತಲುಪಿದ ನಂತರ ನಾವು ರಿಫ್ರೆಶ್ ಮಾಡುವುದನ್ನು ಅಥವಾ ಟೈಮ್ಲೈನ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತೇವೆ.
ಹೆಚ್ಚಿನ ಸುಪ್ತತೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ಕಾಳಜಿಗಳು ಲೈವ್ ಬಳಕೆದಾರರ ಫೀಡ್ ರಚನೆಯಿಂದ ಬರುತ್ತವೆ. ಬದಲಿಗೆ, ತಕ್ಷಣವೇ ಪ್ರಸ್ತುತಪಡಿಸಬಹುದಾದ ಆಫ್ಲೈನ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ರಚಿಸುವುದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಉತ್ತಮ ಮಾರ್ಗವಾಗಿದೆ. ಫೀಡ್ ಅನ್ನು ರಚಿಸಿದ ಸಮಯದ ಆಧಾರದ ಮೇಲೆ ರಿಫ್ರೆಶ್ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್ ಸರ್ವರ್ ಅನ್ನು ನಿಯಮಿತವಾಗಿ ಪಿಂಗ್ ಮಾಡುವ ಮೀಸಲಾದ ಟೈಮ್ಲೈನ್ ಸರ್ವರ್ಗಳನ್ನು ರನ್ ಮಾಡಿ.
ಶ್ರೇಯಾಂಕದ ಅಲ್ಗಾರಿದಮ್ ನಿರ್ಣಾಯಕ ಸಂಕೇತಗಳನ್ನು ಪರಿಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕು ಮತ್ತು ಬಳಕೆದಾರರ ಟೈಮ್ಲೈನ್ ಅವರು ಅನುಸರಿಸುವ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಖಾತೆಗಳಿಂದ ವಸ್ತುಗಳಿಂದ ಪ್ರಾಬಲ್ಯ ಹೊಂದಿಲ್ಲ ಎಂದು ಖಾತರಿಪಡಿಸಲು ತೂಕವನ್ನು ಒದಗಿಸಬೇಕು.
ಹೆಚ್ಚು ನಿಖರವಾಗಿ, ಇಷ್ಟಗಳು, ಕಾಮೆಂಟ್ಗಳು, ಹಂಚಿಕೆಗಳು ಮತ್ತು ನವೀಕರಣ ಸಮಯದಂತಹ ಯಾವುದೇ ಫೀಡ್ ಐಟಂನ ಪ್ರಸ್ತುತತೆಗೆ ಸಂಬಂಧಿಸಿದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಾವು ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಈ ಪ್ರತಿಯೊಂದು ಮಾನದಂಡವನ್ನು ಟ್ವೀಟ್ ಅನ್ನು ರೇಟ್ ಮಾಡಲು ಬಳಸಬೇಕು ಮತ್ತು ನಂತರ ಟೈಮ್ಲೈನ್ನಲ್ಲಿ ಟ್ವೀಟ್ಗಳನ್ನು ತೋರಿಸಲು ಆ ಶ್ರೇಣಿಯನ್ನು ಬಳಸಬೇಕು.
ಅವರ ನ್ಯೂಸ್ಫೀಡ್ಗಾಗಿ ಹೊಸ ವಿಷಯ ಲಭ್ಯವಾದಾಗ ನಾವು ಬಳಕೆದಾರರನ್ನು ನಿರಂತರವಾಗಿ ಎಚ್ಚರಿಸಬೇಕೇ? ಹೊಸ ಡೇಟಾ ಲಭ್ಯವಾದಾಗ ಬಳಕೆದಾರರಿಗೆ ಎಚ್ಚರಿಕೆ ನೀಡುವುದು ಪ್ರಯೋಜನಕಾರಿಯಾಗಿದೆ. ಮೊಬೈಲ್ ಸಾಧನಗಳಲ್ಲಿ, ಆದಾಗ್ಯೂ, ಡೇಟಾ ಬಳಕೆ ಸಾಕಷ್ಟು ದುಬಾರಿಯಾದಾಗ, ಅದು ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಅನ್ನು ವ್ಯರ್ಥ ಮಾಡಬಹುದು.
ಪರಿಣಾಮವಾಗಿ, ನಾವು ಮೊಬೈಲ್ ಸಾಧನಗಳಿಗೆ ಡೇಟಾವನ್ನು ತಳ್ಳದಿರಲು ಆಯ್ಕೆ ಮಾಡಬಹುದು ಮತ್ತು ಬದಲಿಗೆ ಹೊಸ ಪೋಸ್ಟಿಂಗ್ಗಳಿಗಾಗಿ "ಪುಲ್ ಟು ರಿಫ್ರೆಶ್" ಮಾಡಲು ಬಳಕೆದಾರರನ್ನು ಅನುಮತಿಸಬಹುದು.
ಹಂತ 5: ಸ್ಕೇಲಿಂಗ್ ವಿನ್ಯಾಸ
ಸಂಭಾವ್ಯ ಅಡಚಣೆಯೆಂದರೆ ಫ್ಯಾನ್ಔಟ್ ಸೇವೆ. ಲಕ್ಷಾಂತರ ಅನುಯಾಯಿಗಳನ್ನು ಹೊಂದಿರುವ ಟ್ವಿಟರ್ ಬಳಕೆದಾರರು ತಮ್ಮ ಟ್ವೀಟ್ಗಳು ಹೊರಬರಲು ಹಲವಾರು ನಿಮಿಷಗಳ ಕಾಲ ಕಾಯಬೇಕಾಗುತ್ತದೆ. ಇದು ಟ್ವೀಟ್ಗೆ ಪ್ರತ್ಯುತ್ತರಗಳೊಂದಿಗೆ ರೇಸ್ಗೆ ಕಾರಣವಾಗಬಹುದು, ಸರ್ವ್ ಸಮಯದಲ್ಲಿ ಟ್ವೀಟ್ಗಳನ್ನು ಮರು-ಆರ್ಡರ್ ಮಾಡುವ ಮೂಲಕ ನಾವು ಇದನ್ನು ತಪ್ಪಿಸಬಹುದು.
ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಅನುಯಾಯಿಗಳನ್ನು ಹೊಂದಿರುವ ಜನರಿಂದ ಟ್ವೀಟ್ಗಳನ್ನು ಹರಡುವುದನ್ನು ನಾವು ತಡೆಯಬಹುದು. ಬದಲಿಗೆ, ನಾವು ಹೆಚ್ಚು ಅನುಸರಿಸುವ ವ್ಯಕ್ತಿಗಳಿಂದ ಟ್ವೀಟ್ಗಳಿಗಾಗಿ ಹುಡುಕಾಟವನ್ನು ಮಾಡಬಹುದು, ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ಬಳಕೆದಾರರ ಹೋಮ್ ಟೈಮ್ಲೈನ್ ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಬಹುದು ಮತ್ತು ನಂತರ ಸೇವೆಯ ಸಮಯದಲ್ಲಿ ಟ್ವೀಟ್ಗಳನ್ನು ಮರುಕ್ರಮಗೊಳಿಸಬಹುದು.
ಹೆಚ್ಚುವರಿ ವರ್ಧನೆಗಳು ಸೇರಿವೆ:
- ಪ್ರತಿ ಹೋಮ್ ಟೈಮ್ಲೈನ್ಗೆ ಕೆಲವು ನೂರು ಟ್ವೀಟ್ಗಳನ್ನು ಮೆಮೊರಿ ಸಂಗ್ರಹದಲ್ಲಿ ಇರಿಸಿ.
- ಮೆಮೊರಿ ಸಂಗ್ರಹದಲ್ಲಿ, ಸಕ್ರಿಯ ಬಳಕೆದಾರರ ಹೋಮ್ಲೈನ್ ಮಾಹಿತಿಯನ್ನು ಮಾತ್ರ ಉಳಿಸಲಾಗುತ್ತದೆ.
- ಹಿಂದಿನ 30 ದಿನಗಳಲ್ಲಿ ಬಳಕೆದಾರರು ಸಕ್ರಿಯವಾಗಿಲ್ಲದಿದ್ದರೆ ನಾವು SQL ಡೇಟಾಬೇಸ್ನಿಂದ ಕಾಲಗಣನೆಯನ್ನು ಪುನರ್ನಿರ್ಮಿಸಬಹುದು.
- ಬಳಕೆದಾರರು ಯಾರೆಂದು ಕಂಡುಹಿಡಿಯಲು, ಬಳಕೆದಾರರ ಗ್ರಾಫ್ ಸೇವೆಯನ್ನು ಬಳಸಿ.
- ಟ್ವೀಟ್ಗಳನ್ನು SQL ಡೇಟಾಬೇಸ್ನಿಂದ ಹಿಂಪಡೆಯುವ ಮೂಲಕ ಮೆಮೊರಿ ಸಂಗ್ರಹಕ್ಕೆ ಸೇರಿಸಿ.
- ಟ್ವೀಟ್ ಮಾಹಿತಿ ಸೇವೆಯು ಒಂದು ತಿಂಗಳ ಮೌಲ್ಯದ ಟ್ವೀಟ್ಗಳನ್ನು ಮಾತ್ರ ಉಳಿಸಬಹುದು.
- ಬಳಕೆದಾರ ಮಾಹಿತಿ ಸೇವೆಯಲ್ಲಿ, ಸಕ್ರಿಯ ಬಳಕೆದಾರರನ್ನು ಮಾತ್ರ ಉಳಿಸಲಾಗುತ್ತದೆ.
- ಸುಪ್ತತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು, ಹುಡುಕಾಟ ಕ್ಲಸ್ಟರ್ ಹೆಚ್ಚಾಗಿ ಟ್ವೀಟ್ಗಳನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ನಿರ್ವಹಿಸಬೇಕಾಗುತ್ತದೆ.
ತೀರ್ಮಾನ
ಟ್ವಿಟರ್ ದೊಡ್ಡ ಸಂಸ್ಥೆಯಾಗಿದ್ದರೂ, ಅದು ಉತ್ತಮವಾಗಿದೆ ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸದ ತಿಳುವಳಿಕೆ. Twitter ಟೈಮ್ಲೈನ್ನ ಉನ್ನತ ಮಟ್ಟದ ಅವಲೋಕನವನ್ನು ನಿಮಗೆ ಒದಗಿಸಲು ನಾನು ನನ್ನ ಕೈಲಾದಷ್ಟು ಮಾಡಿದ್ದೇನೆ.
ನೀವು ಅದರಿಂದ ಉಪಯುಕ್ತ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದೀರಿ ಮತ್ತು ಅದನ್ನು ಉತ್ತಮ ಬಳಕೆಗೆ ತರಬಹುದು ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.
ಪ್ರತ್ಯುತ್ತರ ನೀಡಿ