Ultimate System Design Learning Playlist Overview
- Target audience: software engineers, students, developers aiming for FAANG
- Covers theory plus real-world scalable system builds like BookMyShow, Amazon, IRCTC, Spotify
- Focus on practical code, concurrency, order placement, HLD & LLD concepts
Phase 1: Foundational Concepts
- Monolithic vs Microservice Architectures and conversion strategies
- Microservices communication, API Gateway vs Load Balancer distinctions
- Load balancer types & algorithms (round robin, IP hashing), proxy & reverse proxy concept and differentiation
- Deployment sequencing, concurrency maintenance techniques
For a detailed analogy on designing scalable systems, refer to Scalable System Design Explained Using a Restaurant Analogy.
Phase 2: Networking Protocols & API Design
- TCP, UDP protocols with focus on transport layer
- HTTP, HTTPS, WebSockets, WebRTC under application layer
- REST APIs vs gRPC: building APIs using gRPC
- CDN functionality & its importance for global platforms like Netflix
- Caching principles and request rate limiting techniques
Explore fundamentals and tools for effective API testing in Comprehensive Introduction to API Testing Fundamentals and Tools.
Phase 3: Distributed Systems & Databases
- Distributed systems overview; CAP theorem explained (Consistency, Availability, Partition Tolerance)
- Database choice criteria based on data structure, query patterns, scalability needs
- SQL vs NoSQL use cases; Indexing, sharding (including name-based & regional sharding)
- Consistent hashing mechanism for load and data distribution among servers
- Distributed transactions management using two-phase & three-phase commits
- Event-driven architecture, messaging queues like Kafka & RabbitMQ
Gain deeper architectural insights in Understanding Hexagonal Architecture: Transforming MVC Applications.
Phase 4: Containerization & Cloud Services
- Containerization essentials with Docker
- Serverless vs EC2 architectures on AWS
- Deploying scalable applications using cloud-native tools
Learn about key AWS services in Top AWS Services Explained for Beginners: EC2, S3, IAM & More.
Additional Topics Covered
- Authentication, authorization, encryption (end-to-end with private/public keys)
- Cron jobs for efficient long-term data management
- Polling mechanisms, file uploads, pre-signed URLs, and handling media storage
- Practical coding examples and migration from monolith to microservices
- Load balancer vs API gateway placement in high availability environments
- Real world scalability from zero to millions of users
For implementation examples and migration strategies, see Unlocking Microservices in the Browser with Single-SPA.
Key Takeaways
- System design is crucial for building scalable and reliable real-world systems
- Microservice architecture solves issues with monolithic systems like single points of failure
- API Gateways abstract and simplify client-service communication
- Load balancing and caching are vital for performance and reliability
- Consistency and fault-tolerance in distributed systems are achieved through CAP theorem trade-offs
- Proper database choice and sharding strategies are essential for handling large scale data
- Messaging queues enable asynchronous communication solving availability and decoupling challenges
- Security through SSL certificates, authentication, and encryption is foundational for safe communications
- Cloud and containerization modernize deployment and scalability
For Beginners and Advanced Engineers
- The playlist is structured week-wise for progressive learning
- Theoretical concepts paired with coding; real system designs like Amazon & Spotify
- Interview question preparation included
- Emphasizes understanding system trade-offs and practical solutions
Summary
This comprehensive system design series walks learners through essential modern architecture concepts, practical coding implementations, and key infrastructure components. It targets building highly scalable, resilient, and efficient real-world software systems, blending theory with realistic projects to prepare engineers for industry challenges and interviews.
[संगीत] [संगीत] [संगीत]
[संगीत] अगर आप सॉफ्टवेयर इंजीनियर हो चाहे आप कॉलेज स्टूडेंट हो या फैंग इंटरव्यूज के
लिए प्रिपेयर कर रहे हो या फिर आप एक ऐसे डेवलपर हो जो खुद का रियल वर्ल्ड स्केलेबल सिस्टम सिस्टम बनाना चाहता हो या फिर आप
खुद का एक स्टार्टअप बिल्ड करना चाहते हो तो सिस्टम डिजाइन इज मस्ट फॉर यू। तो हम आ रहे हैं एक ऐसी सीरीज के साथ जिसमें ना
सिर्फ हम थ्योरी सारे सिस्टम डिजाइन टॉपिक्स कवर कर रहे होंगे। उसके साथ ही साथ हम रियल वर्ल्ड स्केलेबल सिस्टम्स भी
बना रहे होंगे यूजिंग ऑल द एचएलडी एंड एलएलडी कांसेप्ट्स। तो हम कवर कर रहे होंगे बुक माय शो जैसा सिस्टम, Amazon
जैसा सिस्टम, iआरसीटीc स्पॉटfाई। सो ये चारों सिस्टम बिल्ड कर रहे होंगे यूजिंग ऑल द एचएलडी एंड एलएलडी कांसेप्ट्स। हम
इनका कोड लिख रहे होंगे और देखेंगे हम कैसे ककरेंसी को मेंटेन करेंगे। कैसे हमारा ऑर्डर प्लेस होगा। सो वी आर गोइंग
टू कवर एवरीथिंग इन दिस प्लेलिस्ट। अब देखते हैं कि कौन-कौन से ऐसे थ्योरी टॉपिक्स हैं जो हम इस प्लेलिस्ट में कवर
करने वाले हैं। तो सबसे पहले आ जाते हैं हमारे फाउंडेशनल कांसेप्ट्स जिसमें हम देख रहे होंगे व्हाट इज़ मोनोलेथ आर्किटेक्चर,
व्हाट इज़ माइक्रो सर्विस आर्किटेक्चर एंड व्हाट्स द डिफरेंस बिटवीन देम। सो वी विल बी कवरिंग दिस। हम देख रहे होंगे कि कैसे
हम एक मोनोलिथ एप्लीकेशन को माइक्रो सर्विस एप्लीकेशन में कन्वर्ट कर सकते हैं। हम देख रहे होंगे कैसे माइक्रो
सर्विसेज आपस में कम्युनिकेट करती हैं। हम देख रहे होंगे कि एपीआई गेटवे क्या होता है? लोड बैलेंसर क्या होता है? एपीआई
गेटवे और लोड बैलेंसर में क्या डिफरेंस होता है? और एक रियल वर्ल्ड प्रोजेक्ट में रियल वर्ल्ड सिस्टम में कौन पहले आता है?
एपीआई गेटवे और लोड बैलेंसर। सो वी विल बी कवरिंग ऑल दिस थिंग। फिर हम देख रहे होंगे लोड बैलेंसर के डिफरेंट टाइप्स एंड व्हाट
आर ऑल लोड बैलेंसर एल्गोरिदम्स जिसमें हम कवर कर रहे होंगे राउंड रबिन आईपी#श। सो वी आर गोइंग टू कवर ऑल सच थिंग्स इन दिस
लोड बैलेंसर टाइप। फिर हम देख रहे होंगे प्रॉक्सी क्या होता है? रिवर्स प्रॉक्सी क्या होता है? दोनों में डिफरेंस क्या है?
एंड हाउ रिवर्स प्रॉक्सी इज़ डिफरेंट फ्रॉम लोड बैलेंसर्स। सो दीज़ आर द काइंड ऑफ टॉपिक्स दैट वी आर गोइंग टू कवर इन दिस
फाउंडेशनल कांसेप्ट्स जो कि हमारा फेज वन होने वाला है जो हम एक वीक में कवर करेंगे। उसके बाद नेक्स्ट वीक
में हम देख रहे होंगे डिफरेंट नेटवर्किंग प्रोटोकॉल्स जिसमें हम सारे टीसीपी टीसीपी प्रोटोकॉल्स और यूडीपी प्रोटोकॉल्स कवर कर
रहे होंगे। हम देख रहे होंगे http https वेब सॉकेट्स वेब आरटीसी अ इनमें डिफरेंस हम देख रहे होंगे उसके बाद हम देखेंगे
रेस्ट एपीआई जीआरपीसी हाउ वी कैन बिल्ड एपीआई यूजिंग जीआरपीसी सो वी विल बी कवरिंग दिस फिर हम देख रहे
होंगे कि सीडीएन क्या होता है एंड व्हाट इज द नीड ऑफ़ सीडीएन इन अ रियल वर्ल्ड प्रोजेक्ट स्पेशली जब हम एक ग्लोबल
प्लेटफार्म बना रहे होते Netflix जैसा। तो, सीडीएन की कहां पे नीड आती है। तो, हम यह भी कवर कर रहे होंगे। हम देख रहे होंगे
कि व्हाई कैशिंग इज़ेंट? व्हाट इज़ कैशिंग। सो, वी विल बी कवरिंग दिस। एंड हाउ वी कैन कैश डेटा यूजिंग सीडीएन। हम यह भी देख रहे
होंगे। उसके बाद हम देखेंगे हम कैसे रिक्वेस्ट को यूजर की रिक्वेस्ट को रेट लिमिट कर सकते हैं। लेट्स से आप किसी
वेबसाइट पे जाते हैं एंड आप कंटिन्यू अ 20-25 टाइम्स रिफ्रेश बटन हिट करते हैं। तो हाउ वी विल हैंडल दिस थिंग इन बैक एंड।
सो वी विल बी कवरिंग दिस। उसके बाद हम देख रहे होंगे कि कैसे हम एक सिस्टम को फ्रॉम ज़ीरो टू मिलियन यूज़र्स तक स्केल कर सकते
हैं इन अ रियल वर्ल्ड प्रोजेक्ट। हम देख रहे होंगे डिफरेंट टाइप्स ऑफ स्केलिंग। व्हाट इज हॉरिजॉन्टल स्केलिंग? व्हाट इज
वर्टिकल स्केलिंग। तो हम सेकंड वीक में यह हमारा टारगेट होने वाला है। उसके बाद थर्ड वीक में हम आ जाते हैं डिस्ट्रीब्यूटेड
सिस्टम्स की तरफ। जहां हम देख रहे होंगे व्हाट इज़ डिस्ट्रीब्यूटेड सिस्टम्स। क्योंकि अब हम मिलियन यूज़र्स तक जा चुके
हैं। तो हमें इस डिस्ट्रीब्यूटेड सिस्टम्स की नीड होगी। सो वी विल बी कवरिंग द बेसिक्स ऑफ डिस्ट्रीब्यूटेड सिस्टम्स। हम
देख रहे होंगे कैप थ्योरम जो कि जिसका जिसको मैंने काफी बार मेरी सिस्टम डिज़ाइन प्लेलिस्ट में मेंशन किया है व्हेयर वी
डिस्कस्ड Netflix सिस्टम डिज़ाइन, Amazon सिस्टम डिज़ाइन, स्पॉटिफाई सिस्टम डिज़ाइन। सो, आई हैव डिस्कस्ड अ लॉट अबाउट दिस CP
थ्योरम इन ऑल दोज़ वीडियोस। सो, आई हाइली रिकमेंड यू टू वॉच दोज़ वीडियोस फर्स्ट। इट विल गिव यू अ बेटर ओवरव्यू हाउ वी आर
गोइंग टू डू इन इन दिस प्लेलिस्ट। उसके बाद हम देख रहे होंगे डेटाबेस चॉइस। क्योंकि हमारे पास सीक्वल डेटाबेस होते
हैं। नो सीक्वल डेटाबेस होते हैं। सो अकॉर्डिंग टू द रिक्वायरमेंट वी विल बी सेलेक्टिंग डेटाबेस। हम देख रहे होंगे कि
कहां पर हमें सीक्वल डेटाबेस यूज करना है। कहां पर हमें नो सीक्वल डेटाबेस यूज करना है। उसके बाद हम देख रहे होंगे कि
इंडेक्सिंग का डेटाबेस में क्या रोल होता है। एंड कैसे इंडेक्सिंग का यूज़ करके हम डेटाबेस क्वेरीज़ को फास्ट बना सकते हैं।
सो वी विल बी कवरिंग दिस। उसके बाद हम देख रहे होंगे शार्डिंग वर्सेस पार्टीशनिंग। शार्डिंग क्या होती है? शार्डिंग कैसे की
जाती है? वी विल बी कवरिंग दिस। उसके बाद हम देख रहे होंगे कंसिस्टेंट हैशिंग। कंसिस्टेंट हैशिंग की क्या नीड है और कैसे
हम इसे अचीव कर सकते हैं। उसके बाद हम देख रहे होंगे डिस्ट्रीब्यूटेड ट्रांजैक्शंस। टू फेस कमिट क्या होता है? थ्री फेस कमिट
क्या होता है। हम देख रहे होंगे ककरेंसी कंट्रोल जिसमें हम ऑप्टिमिस्टिक पैसिमिस्टिक लॉक देख रहे होंगे। हम
देखेंगे कि कैसे दो यूज़र्स एक सिस्टम पे आते हैं। वह अपनी टिकट बुक बुक करते हैं। लेट्स से दे ट्राई टू बुक द सेम टिकट।
लेकिन केवल एक ही यूजर उस टिकट को बुक कर पाता है। सो वी विल बी कवरिंग दिस कि कैसे हम यह मैनेज और मेंटेन कर सकते हैं। उसके
बाद हम देख रहे होंगे इवेंट ड्रिवन आर्किटेक्चर के बारे में। इसके बेसिक्स हम देख रहे होंगे मैसेजिंग कज़। मैसेजिंग कज़
की क्या जरूरत होती है? मैसेजिंग क्यूज़ इज़ आल्सो वन ऑफ़ द थिंग दैट आई डिस्कस्ड अ लॉट अह इन माय सिस्टम डिज़ाइन प्लेलिस्ट वेयर
वी डिस्कस्ड Netflix सिस्टम डिज़ाइन ब्लिंकिट सिस्टम डिज़ाइन। सो यस गो एंड वॉच दोज़ वीडियोस फर्स्ट। उसके बाद अह सो यस
दिस फज़ थ्री विल बी द टारगेट ऑफ़ थर्ड वीक। तो ये सारी चीजें हम थर्ड वीक में कवर कर रहे होंगे। उसके बाद हमारा आ जाता है फज़
फोर जहां पे हम डॉकर और कंटेनराइजेशन देख रहे होंगे कि डॉकर की हमें नीड क्या है हमारे सिस्टम में और कैसे हम चीजों को
कंटेनराइज करेंगे। सो वी विल बी कवरिंग दिस। उसके बाद हम देख रहे होंगे EC2 वर्सेस AWS लैम्ब्डा। एडब्ल्यूएस लैम्ब्डा
जो कि हमारा सर्वरस आर्किटेक्चर होने वाला है। तो इसे भी हम कोड करके देख रहे होंगे कि कैसे हम
AWS लैम्ब्डा का यूज़ कर सकते हैं। हमारे एप्लीकेशन में हमारे रियल वर्ल्ड प्रोजेक्ट में हम देख रहे होंगे कि कैसे
हम EC2 का यूज़ कर रहे होंगे। उसके बाद हम आ जाते हैं हमारे कुछ रियल वर्ल्ड ऐड ऑन्स में जहां हम देख रहे होंगे कि कैसे हम
ऑथेंटिकेशन एंड ऑथराइजेशन को मेंटेन करेंगे हमारे सिस्टम में। हम देखेंगे अ कुछ सिक्योरिटी फीचर्स जहां हम एंड टू एंड
इंक्रिप्शन के बारे में डिस्कस कर रहे होंगे यूजिंग प्राइवेट की एंड पब्लिक की कांसेप्ट। सो वी आर गोइंग टू कवर दिस।
उसके बाद हम क्रोन जॉब्स डिस्कस कर रहे होंगे। क्योंकि एक एक माय सीक्वल डेटाबेस पे जहां पे मिलियंस ऑफ यूजर हो जहां पे
मिलियंस ऑफ रिकॉर्ड स्टोर कर रहे होंगे। वी जस्ट कैन नॉट पुट टू मच लोड ऑन दैट माय सीक्वल डेटाबेस। तो हम देख रहे होंगे कि
कैसे हम क्रोन जॉब्स का यूज करके अ उस माय सीक्वल डेटाबेस में से कंप्लीटेड रिकॉर्ड्स को या अनयूज्ड रिकॉर्ड्स को फैच
करेंगे और उसके बाद हम उसे कैसेंडर डेटाबेस जो कि हमारा नो सीक्वल डेटाबेस है वहां हम उसे पुट कर देंगे। सो वी विल बी
कवरिंग दिस। उसके बाद हम देख रहे होंगे पोलिंग, लॉन्ग पोलिंग, वेब हुक्स। फिर हम देख रहे होंगे फाइल अपलोड्स। क्योंकि जब
हम Netflix जैसा सिस्टम बनाते हैं तो हम इमेजेस वीडियोस स्टोर कर रहे होते हैं। तो हम देखेंगे कि कैसे हम हमारी वीडियोस और
इमेजेस को S3 स्टोरेज व्हिच इज़ गोइंग टू बी आवर ब्लॉब स्टोरेज। तो का कैसे हम हमारे इमेजेस वीडियोस को व्हिच इज़ आवर
स्टैटिक डेटा। तो कैसे हम इन्हें स्टोर करते हैं। हम कैसे प्रीसाइन यूआरएल का यूज कर रहे होंगे। तो हम यह भी कवर करने वाले
हैं। उसके बाद यह सब कवर करने के बाद हम आ जाएंगे हमारे रियल वर्ल्ड प्रोजेक्ट्स में जहां हम फर्स्ट वीक में बना रहे होंगे बुक
माय शो जैसा क्लोन। इट विल बी बैक एंड ओरिएंटेड सिस्टम। क्योंकि हम हमारा मेनली फोकस बैक एंड पे होने वाला है। हम देख रहे
होंगे कि कैसे हम टू यूज़र्स की रिक्वेस्ट को सेम टाइम पे कंट्रोल कर रहे होंगे। हम देख रहे होंगे कैसे कैसे हम डेटाबेस लॉक
का इस्तेमाल करेंगे। हम पैसिमिस्टिक लॉक ऑप्टिमिस्टिक लॉक यूज कर रहे होंगे। Amazon सिस्टम डिज़ Amazon सिस्टम में भी
हम देख रहे होंगे कि कैसे हम कैसे एक यूजर ऑर्डर प्लेस करेगा। कैसे वो कैसे माइक्रो सर्विसेज आपस में कम्युनिकेट करेंगी। उसके
बाद हम देख रहे होंगे कि कैसे रिक्वेस्ट डिलीवरी को जाएगी। कैसे रिक्वेस्ट डिलीवरी एजेंट को जाएगी। कैसे रिक्वेस्ट उस
रेस्टोर में जाएगी। तो यह सब हम कवर कर रहे होंगे। हम आईआरसीटीसी कवर कर रहे होंगे। आईआरसीटीc में भी हम ककरेंसी देख
रहे होंगे। कैसे हम ककरेंट बुकिंग्स को मेंटेन करेंगे। सीट अलॉटमेंट हम डिस्कस करेंगे और आईआरसीटीc सिस्टम में यू वुड
हैव सीन कि वहां पे पार्शियल बुकिंग होती है। तो हम पार्शियल बुकिंग मैनेज कर रहे होंगे। स्पॉटिफाई सिस्टम
डिज़ाइन स्पॉटिफाई के सिस्टम में हम देख रहे होंगे कि कैसे हम हमारे ऑडियोज़ को S3 स्टोरेज में स्टोर कर रहे होंगे। कैसे हम
सीडीए का यूज़ कर रहे होंगे। तो आफ्टर कवरिंग ऑल द थ्योरी टॉपिक्स हम ये चारों सिस्टम बैठ के बनाने वाले हैं। सो स्टे
ट्यूंड विद मी। एंड वन वेरीेंट थिंग कि इन सिस्टम्स का कोड लिखने से पहले हमें आईडिया होना चाहिए कि इनका एक हाई लेवल
ओवरव्यू कैसा होता है। कैसे ये सिस्टम्स काम करते हैं। कैसे आपस में माइक्रो सर्विसेस कम्युनिकेट करती हैं। अ कैसे
डेटा का फ्लो होता है इन सिस्टम्स में। तो उसके लिए मैंने एक अलग से सिस्टम डिजाइन प्लेलिस्ट बनाई है। जहां मैंने इन सारे के
सारे सिस्टम्स का हाई लेवल डिजाइन डिस्कस किया है। सो वंस यू विल स्टार्ट दिस प्लेलिस्ट आई हाइली रिकमेंड यू टू वॉच दोज़
वीडियोस एज वेल पैरेलली। क्योंकि उसके बाद जब हम यह रियल वर्ल्ड प्रोजेक्ट्स का कोड लिख रहे होंगे तो एक आपको ओवरव्यू मिल मिल
चुका होगा कि कैसे यह सिस्टम्स काम करते हैं। तो आपको कोड करने में बहुत हेल्प होगी। तो
सो यस दिस इज़ ऑल फॉर दिस वीडियो एंड वी विल बी स्टार्टिंग विद आवर फर्स्ट वीक कांसेप्ट्स। सो स्टे ट्यूंड विद मी एंड शो
सम लव। थैंक्स। बाय बाय। [संगीत] हे एवरीवन वेलकम बैक वेलकम टू दिस
अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। तो यह वीडियो इस सीरीज का पहला वीडियो होने वाला है। जहां हम देखेंगे मोनोलिथ वर्सेस
माइक्रो सर्विसेस और हम देखेंगे कि हम कैसे एक मोनोलिथ एप्लीकेशन को एक माइक्रो सर्विस एप्लीकेशन में कन्वर्ट कर सकते
हैं। तो स्टार्ट करते हैं और समझते हैं इसे एक एग्जांपल की हेल्प से। तो लेट्स से कि आप एक स्टार्टअप काइंड ऑफ बिल्ड कर रहे
हैं। लेट्स से यूमी काइंड ऑफ एप्लीकेशन और उस एप्लीकेशन में आपके पास आपने सब कुछ सारे के सारे मॉड्यूल्स को एक सिंगल कोड
बेस में रखा हुआ है। लेट्स से एक आपका कोर्स मॉड्यूल होगा जहां पे आप डिफरेंट-डिफरेंट कोर्सेज क्रिएट कर रहे
होंगे। एक आपका ऑथ मॉड्यूल होगा जिसके थ्रू यूजर ऑथेंटिकेट करेगा। लॉग इन साइनअप फ्लो प्रोवाइड करेगा। एक हमारे पास
कार्ट मॉड्यूल होगा। एक हमारे पास पेमेंट मॉड्यूल होगा। एक हमारे पास ऑर्डर मॉड्यूल होगा जिसके
थ्रू हम अपनी बुकिंग को कंफर्म करेंगे। तो हमारे पास ऐसे डिफरेंट-डिफरेंट मॉड्यूल्स होंगे। अब मोनोलिथ आर्किटेक्चर में हम
क्या करते हैं? हम सारे के सारे मॉड्यूल्स को एक सिंगल कोड बेस में रखते हैं। सिंगल कोड बेस में रखते हैं। अब हमने बहुत जगह
सुना है कि ये सिंगल कोड बेस होता है। मोनोलिथ का मतलब पर एक्चुअल में ये सिंगल कोड बेस दिखता कैसा है? ये हम देखते हैं।
तो ये एक हमारा मोनोलिथ एप्लीकेशन है। जहां पे ये हमारे सारे के सारे कंट्रोलर्स अह कंट्रोल इज़ नथिंग बट अ हैंडलर। तो
हमारा ऑथ हैंडलर जहां हमने लॉग इन साइन अप डिफाइन किया है। हमारा अह कैटेगरी जो कोर्स की कैटेगरी डिफाइन करेगा वो एक
हमारा हैंडलर होगा। हमारे पास एक पेमेंट का हैंडलर होगा। एक प्रोफाइल का हैंडलर होगा। एक रेटिंग रिव्यू सेक्शन का हैंडलर
होगा। तो ऐसे हमारे पास डिफरेंट-डि डिफरेंट-डिफरेंट हैंडलर्स हैं। तो ये सारे के सारे जो मॉड्यूल्स हैं, यह हमने एक ही
कोड बेस में डिफाइन किए हैं। अब हमारे पास इस पूरे कोड बेस में एक केवल एक इंडेक्स डॉट जेS है जिसके थ्रू हम अपने एप्लीकेशन
को रन करेंगे। तो अभी यह एप्लीकेशन ऑलरेडी रनिंग है। तो यदि मैं इसे कंट्रोल सेव करता हूं तो आप वापस देखेंगे कि दिस ऐप इज
रनिंग एट 4000 पोर्ट और हमारा डेटाबेस कनेक्शन भी सक्सेसफुली एस्टैब्लिश हो गया है। तो सिंगल कोड बेस का मतलब है कि हमारा
सब कुछ सारे के सारे मॉड्यूल्स टाइटली कपल्ड होंगे और ये सारे के सारे मॉड्यूल्स एक साथ ही रन होंगे। हम सारे के सारे
मॉड्यूल्स को हम सारे के सारे मॉड्यूल्स को एक साथ बिल्ड करेंगे। हम सारे के सारे मॉड्यूल्स को एक साथ रन करेंगे।
टेस्ट करेंगे और डिप्लॉय करेंगे। तो इस कोड में हमारे पास केवल एक इंडेक्स
फाइल है जो कि हमारा एंट्री पॉइंट होगा और जब हम अपने एप्लीकेशन को रन करेंगे तो सबसे पहले इंडेक्स फाइल ट्रिगर होगी। दैट
मींस कि अब इस पूरे के पूरे कोड में पूरे के पूरे कोड बेस में यदि कहीं पर भी हमारा इशू आता है तो पूरा का पूरा एप्लीकेशन
क्रैश हो जाएगा। दैट मींस कि ये पूरा का पूरा सिस्टम सारे के सारे मॉड्यूल्स आपस में टाइटली कपल्ड हैं। हम सारे के सारे
मॉड्यूल्स को एक साथ बिल्ड कर रहे हैं। सारे के सारे मॉड्यूल्स एक साथ रन होंगे थ्रू दिस इंडेक्स डॉट जेएस फाइल। सारे के
सारे मॉड्यूल्स हम एक साथ डिप्लॉय भी कर रहे होंगे। तो पूरा का पूरा एप्लीकेशन और सारे मॉड्यूल्स आपस में टाइटली कपल्ड हैं।
दिस इज़ कॉल्ड आवर मोनोलिथिक आर्किटेक्चर। अब इस मोनोलिथ आर्किटेक्चर में प्रॉब्लम क्या है? तो हम पहले प्रॉब्लम्स को समझते
हैं। तो जो सबसे पहली प्रॉब्लम है कि सिंगल पॉइंट ऑफ फेलियर।
सिंगल पॉइंट ऑफ फेलियर। अब इसका मतलब क्या है? सिंगल पॉइंट ऑफ फेलियर। तो इस सिंगल पॉइंट
ऑफ फेलियर का मतलब है कि पूरे के पूरे एप्लीकेशन में इस पूरे के पूरे एप्लीकेशन में हमने कोई भी गड़बड़ की हमने चाहे वो
लॉग इन साइन अप फंक्शनैलिटी में गड़बड़ की या हमने कोर्स क्रिएट करने में मिस्टेक कर दिया पेमेंट सेक्शन में हमसे गलती हो गई
तो इस पूरे के पूरे कोड बेस में यदि हमसे कहीं पर भी कुछ भी गलती होती है तो पूरा का पूरा सिस्टम क्रैश हो जाएगा। दैट मींस
यहां पर हमारा सिंगल पॉइंट ऑफ फेलियर है। अब इसे एक एग्जांपल के थ्रू समझते हैं। लेट्स से कि हमारे पास डिफरेंट-डिफरेंट
मॉड्यूल्स हैं। ऑथ मॉड्यूल है, हमारे पास कार्ट मॉड्यूल है, हमारे पास हमारे पास ऑर्डर मॉड्यूल है। ऐसे हमारे पास
डिफरेंट-डिफरेंट मॉड्यूल्स हैं एप्लीकेशन में। नाउ लेट्स से कि इनिशियली जब हमारे सिस्टम
में 100 यूज़र्स थे हमारा सिस्टम इट वाज़ वर्किंग फाइन। उसके बाद हमारे सिस्टम में 10,000 यूज़र्स आए तब भी हमारा सिस्टम सही
से काम कर रहा था। हमारे सिस्टम में 1 लाख यूज़र्स आए तब भी हमारा सिस्टम सही से काम कर रहा था। लेकिन जैसे ही हमारे सिस्टम
में 1 मिलियन यूज़र्स आए, हमारा पेमेंट मॉड्यूल क्रैश हो गया। तो हमारा पेमेंट मॉड्यूल क्रैश हो गया। अब मोनोलिथ में यदि
हमारा पेमेंट मॉड्यूल क्रैश हो गया तो उसकी वजह से ना अब हमारा ऑथेंटिकेशन यह ऑथ मॉड्यूल काम करेगा। मतलब यूजर साइन
अप लॉग इन कुछ नहीं कर पाएगा। ना हमारा कार्ट काम करेगा। ना हमारा यह ऑर्डर मॉड्यूल काम करेगा। कहने का मतलब है कि
पेमेंट मॉड्यूल अकेले के फेल होने की वजह से हमारा सारा का सारा सिस्टम क्रैश हो गया और अब हमारी कोई भी फंक्शनैलिटी काम
नहीं कर रही है। तो दिस इज कॉल्ड मोनोलिथ सिस्टम जहां पे सारे के सारे सारे के सारे मॉड्यूल्स टाइटली कपल्ड होते हैं और
सिस्टम में कहीं भी एरर आने की वजह से या सिस्टम का कोई भी पार्ट क्रैश हो जाने की वजह से हमारा पूरा का पूरा सिस्टम क्रैश
हो जाता है। तो वही हमने एक प्रॉब्लम देखी हमारे मोनोलिथ सिस्टम की कि इट इज़ अ सिंगल पॉइंट ऑफ़ फ़ेलियर।
अब जो एक और प्रॉब्लम आती है मोनोलिथ सिस्टम में वो है डिप्लॉयमेंट की। कि यहां पे डिप्लॉयमेंट बॉटल नेक्स होते हैं।
डिप्लॉयमेंट बेसिकली डिप्लॉयमेंट इज अ बॉटल नेक हियर। डिप्लॉयमेंट
बॉटल नेक। अब इसका क्या मतलब होता है? तो लेट्स से कि फिर से हम वही पेमेंट मॉड्यूल का एग्जांपल लेते हैं। हमारे पास एक
पेमेंट मॉड्यूल है और अभी ये पेमेंट मॉड्यूल डिफरेंट-डिफरेंट फंक्शनैलिटीज यूज़ कर रहा है। अब हम हमें उसमें एक और फीचर
ऐड करना है। वो है क्रेडिट कार्ड का फीचर। क्रेडिट कार्ड का फीचर। दैट मींस हमको यह पेमेंट मॉड्यूल में कुछ
चेंजेस करने पड़ेंगे। ठीक है? पेमेंट मॉड्यूल में हमें चेंज करना है। दैट मींस अ यह सिर्फ एक छोटा सा पार्ट हमें चेंज
करना है। पर मोनोलिथ सिस्टम्स में क्या होता है कि लेट्स से हमने पूरा का पूरा सिस्टम यह पूरा का पूरा हमारा ऐप ऑलरेडी
डिप्लॉयड है। अब हमें इसमें एक छोटी सी फीचर छोटा सा फंक्शनैलिटी और ऐड करना है क्रेडिट कार्ड का कि यूजर अब क्रेडिट
कार्ड के थ्रू भी अपने पेमेंट्स कर पाएंगे। तो हमें एक छोटी सी फंक्शनैलिटी और ऐड करनी है। तो जो कि हम पेमेंट
मॉड्यूल में ऐड करेंगे। तो अब इस छोटी सी फंक्शनैलिटी को ऐड करने के लिए भी हमें पूरे के पूरे सिस्टम को दोबारा से डिप्लॉय
करना पड़ता है। तो ये एक बड़ी प्रॉब्लम होती है मोनोलिथ सिस्टम्स के साथ। क्योंकि हमारे पास डिफरेंट-डिफरेंट मॉड्यूल्स हैं।
हमारे पास पेमेंट का मॉड्यूल है। हमारे पास कार्ट एक मॉड्यूल है और हमारे पास ऑथेंटिकेशन का एक मॉड्यूल है। हमारे पास
ऑर्डर एक मॉड्यूल है। अब हमारे पास ऐसे डिफरेंट-डिफरेंट मॉड्यूल्स हैं। चेंज हमें सिर्फ इसमें करना है। वो भी छोटा सा और
उसकी वजह से हमें सारे के सारे सिस्टम को पूरे के पूरे इस सिस्टम को दोबारा से डिप्लॉय करना पड़ता है। तो यह एक बड़ी
प्रॉब्लम होती है मोनोलिथ सिस्टम्स के साथ। तो यस डिप्लॉयमेंट इज अ बॉटल नेक हियर। तो यह दूसरी प्रॉब्लम है जो हम फेस
करते हैं मोनोलिथ सिस्टम्स में। जो एक और प्रॉब्लम हम फेस करते हैं वो होती है इंडिविजुअल स्केलिंग।
इंडिविजुअल स्केलिंग। अब इसका क्या मतलब होता है? तो इसे भी हम
एक एग्जांपल के थ्रू समझते हैं। लेट्स से कि हमारे पास डिफरेंट-डिफरेंट मॉड्यूल्स हैं और जो हमारा पेमेंट मॉड्यूल
है वो उस पे बहुत ज्यादा ट्रैफिक आ रहा है।
लेट्स से उस पे डेली के 20 मिलियन प्लस यूज़र्स आ रहे हैं। और बाकी के बाकी के डिफरेंट-डिफरेंट मॉड्यूल्स हैं उस पे बाकी
के जो डिफरेंट-डिफरेंट मॉड्यूल्स हैं उनको बहुत ज्यादा यूज़ नहीं किया जा रहा है। लेकिन पेमेंट मॉड्यूल वो बहुत ज्यादा
यूज़र्स के द्वारा एक्सेस किया जा रहा है। तो इस केस में हम ये समझ जाएंगे कि यदि हमने इसको इस मॉड्यूल को स्केल नहीं किया
तो हमारा सिस्टम क्रैश हो सकता है। पर मोनोलिथ सिस्टम्स के साथ प्रॉब्लम क्या है कि हम एक इंडिविजुअल कॉम्पोनेंट को
इंडिविजुअल मो मॉड्यूल को अकेला स्केल नहीं कर सकते। हमें पूरे के पूरे सिस्टम को स्केल करना पड़ेगा। तो लेट्स से कि
यहां पर 20 मिलियन का ट्रैफिक आ रहा है और ऑथ और बाकी के बाकी के मॉड्यूल्स में मिला के 2 मिलियन का भी ट्रैफिक नहीं आ रहा है।
2 मिलियन से भी कम का ट्रैफिक आ रहा है। मतलब यहां पे हमें स्केल करने की नीड नहीं है। स्केल की नीड यहां पे नहीं है। पर
हमारा क्योंकि पूरा का पूरा सिस्टम सारे के सारे मॉड्यूल्स टाइटली कपल्ड हैं। तो यदि हम पेमेंट मॉड्यूल को स्केल करना चाह
रहे हैं तो हमें पूरा का पूरा सिस्टम ही स्केल करना पड़ेगा। यह एक बड़ी प्रॉब्लम होती है मोनोलिथ में। अब यहां ऑथेंटिकेशन
वाले मॉड्यूल में हमें स्केल करने की नीड नहीं थी। लेकिन तब भी हमें स्केल करना पड़ा। तो ये हमारे साथ पूरे सिस्टम के
कॉस्ट को बढ़ा देता है। इसकी वजह से कॉस्ट इनक्रीस हो जाती है। क्योंकि यहां पे स्केल करने की जरूरत नहीं थी। लेकिन फिर
भी हमें एक नई मशीन अपने सिस्टम में लगानी पड़ी। कहने का मतलब है कि नीड सिर्फ पेमेंट मॉड्यूल को स्केल करने की थी।
लेकिन हमें सारे के सारे मॉड्यूल्स को स्केल करना पड़ा। पूरे के पूरे सिस्टम को स्केल करना पड़ा। तो हमारा एक छोटी सी
छोटी मशीन में छोटे कंप्यूटर में एक और दूसरे सिस्टम में काम हो सकता था। जहां हम सिर्फ पेमेंट मॉड्यूल को स्केल कर देते।
लेकिन अब हमें सारे के सारे सारे के सारे सिस्टम को ही स्केल करना है। तो हमें एक बड़ी बड़ा सर्वर या बड़ी मशीन की नीड
होगी। तो इसीलिए हमारी कॉस्ट इनक्रीस हो जाती है। तो इंडिविजुअल कंपोनेंट्स को इंडिविजुअल मॉड्यूल्स को मोनोलेथ
आर्किटेक्चर में स्केल करना बहुत ही मुश्किल होता है। क्यों वो हमने देख ही लिया। अब ये सारी प्रॉब्लम्स ये तीनों
प्रॉब्लम्स को सॉल्व कौन करता है? तो ये हमारी तीनों प्रॉब्लम्स को चाहे वो सिंगल पॉइंट ऑफ फेलियर हो, चाहे वो डिप्लॉयमेंट
बॉटल नेक हो, चाहे वो इंडिविजुअल स्केलिंग हो। ये सारी की सारी प्रॉब्लम्स को सॉल्व करता है हमारा माइक्रो सर्विस
आर्किटेक्चर। अब माइक्रो सर्विस आर्किटेक्चर में क्या होता है कि हम हमने देखा हमारे पास डिफरेंट-डिफरेंट मॉड्यूल्स
हैं। हमारे पास एक ऑथ का मॉड्यूल है। हमारे पास हमारे पास एक कार्ड का मॉड्यूल है। हमारे पास हमारे पास ऑर्डर का एक
मॉड्यूल है। हमारे पास पेमेंट का मॉड्यूल है। तो हम क्या करते हैं? माइक्रो सर्विस आर्किटेक्चर में हम इन मॉड्यूल्स की
मॉड्यूल्स को सर्विसेज बना देते हैं। और ये सर्विसेस आपस में लूजली कपल्ड होती है। दैट मींस इनकी आपस में डिप आपस में एक
दूसरे पर डिपेंडेंसी नहीं होती है। और ये सर्विज आपस में ना तो टाइटली कपल्ड होती हैं और इन सर्विसेस को हम इंडिविजुअली
बिल्ड करते हैं। तो हम बिल्ड इन्हें इंडिविजुअली करते हैं। हम इन्हें रन भी इंडिविजुअली करेंगे। इनकी
टेस्टिंग भी इंडिविजुअली होगी और हमें हम इन्हें डिप्लॉय भी इंडिविजुअली कर सकते हैं।
तो ये होता है हमारे माइक्रो सर्विस आर्किटेक्चर में। इसे थोड़ा डिटेल से समझते हैं कि सबसे पहले हमने क्या किया कि
हमारे जो जो भी मॉड्यूल्स हमें समझ आ रहे थे उन सारे मॉड्यूल्स को हमने सर्विसेस बना दिया। लेट्स से ऑथेंटिकेशन जो हमारा
लॉग इन साइन अप फंक्शनैलिटी प्रोवाइड करेगा उसे हमने एक डिफरेंट सर्विस बना दिया। हमने कार्ड को एक डिफरेंट सर्विस
बना दिया। ऑर्डर को एक डिफरेंट सर्विस बना दिया। पेमेंट को एक डिफरेंट सर्विस बना दिया। तो अब हमारे पास ऐसे हमने एक हर एक
टास्क को स्मालसाल सर्विज में बना दिया। इसीलिए इसे बोलते हैं माइक्रो सर्विसेस। तो अब हमारे पास एक लेट्स से S1 सर्विस हो
गई, एक S2 सर्विस हो गई। एक हमारे पास S3 सर्विस हो गई। अब क्या होता है कि यह सर्विज जो होती हैं वो आपस में लूजली
कपल्ड होती हैं। मतलब वी कैन बिल्ड देम इंडिविजुअली, वी कैन रन देम इंडिविजुअली, टेस्ट देम इंडिविजुअली, डिप्लॉय देम
इंडिविजुअली। तो यह आपस में लूजली कपल्ड होती हैं। आपस में एक दूसरे पे डिपेंडेंट नहीं होती हैं। तो इस वजह से माइक्रो
सर्विसेस हमारी ये तीनों प्रॉब्लम्स को जो मोनोलिथ में आ रही थी उन तीनों प्रॉब्लम्स को सॉल्व कर देता है।
अब एक बार इसका कोड देखना जरूरी है कि कैसे हमारी सर्विज आपस में इंडिपेंडेंट होती
हैं। तो यह हमारा एक माइक्रो सर्विज डिफरेंट-डिफरेंट माइक्रो सर्विसेस वाला कोड हमारे पास जहां एक इनबाउंड सर्विस है
हमारे पास एक प्रोडक्ट सर्विस है। अ बेसिकली इट इज़ अ इट इज़ अ कोड फॉर Amazon काइंड ऑफ़ एप्लीकेशन। तो यहां पर हमारा एक
अलग से यूजर सर्विस है और अब आप देखोगे कि हर एक सर्विस में एक अलग से सेपरेट इंडेक्स डॉट जेएस फाइल है। हमने हमने
डिस्कस किया है कि इंडेक्स डॉट जेएस फाइल वुड बी अ वुड बी ओनली सिंगल एंट्री पॉइंट फॉर दिस एप्लीकेशन बेसिकली इस बैक एंड को
रन करने के लिए। तो इस इनबाउंड सर्विस का एक अलग से इंडेक्स है। इस यूजर सर्विस का एक अलग से इंडेक्स है। और हां एक चीज और
कि जो मोनोलिथ सिस्टम हम बना रहे थे उसमें लेट्स से ये हमारा पूरा का पूरा एप्लीकेशन
है। ये पूरा का पूरा हमारा एक ऐप है। और मोनोलिथ सिस्टम में सारे के सारे मॉड्यूल्स के लिए एक शेयर्ड
डेटाबेस हो सकता है। तो यह हमारा एक डेटाबेस है। अब इसमें हमारे पास एक पेमेंट की अलग से टेबल होगी। हमारे पास यूजर की
एक अलग से टेबल होगी। ऑर्डर की अलग से टेबल होगी। कोर्सेज की अलग से टेबल होगी। तो हम एक शेयरर्ड डेटाबेस यूज़ कर सकते
हैं। कहां पे? मोनोलिथ सिस्टम में। तो डिफरेंट-डिफरेंट मॉड्यूल्स होंगे और डेटाबेस हमारा एक ही होगा। और हमारे पास
उस डेटाबेस में डिफरेंट-डिफरेंट टेबल्स होंगी। लेट्स से पेमेंट के लिए अलग टेबल, यूज़र्स के लिए अलग टेबल, ऑर्डर्स के लिए
अलग टेबल। लेकिन माइक्रो सर्विसेस में हर सर्विस का एक अपना खुद का डेटाबेस हो सकता है। इट्स ओन डेडिकेटेड डेटाबेस। लेट्स से
सर्विस वन का अलग से डेटाबेस है। सर्विस टू का अलग से डेटाबेस है। सर्विस थ्री का अलग-अलग डेटाबेस है। और सर्विस की
फंक्शनैलिटी के हिसाब से हम डेटाबेस को सेलेक्ट कर सकते हैं। लेट्स से कि यह जो सर्विस टू है, यह यूजर रिलेटेड डेटा को
मैनेज कर रही है। तो, हम यहां पे आरडीबीएमएस डेटाबेस यूज़ कर सकते हैं। ये जो S1 सर्विस है, यह हमारी कार्ट की
फंक्शनैलिटी को मैनेज कर रही है। यहां पे हम नो सीक्वल डेटाबेस यूज़ कर सकते हैं। क्योंकि हर लेट्स से हम कोर्स कोर्स बाय
करने वाला यूमी वाला एग्जांपल लेते हैं। तो हर एक कोर्स की अपने एक अलग-अलग फीचर्स होंगे। अलग-अलग फंक्शनैलिटीज होंगी। उसमें
अलग-अलग की कॉमोनेंट्स होंगे। तो यहां पे हम की वैल्यू काइंड ऑफ़ डेटाबेस चाहेंगे कि हमारे कार्ट में क्योंकि हम कोर्सेज
डालेंगे। तो हर कोर्स के डिफरेंट फीचर्स हो सकते हैं। तो हम यहां पे की वैल्यू काइंड ऑफ़ डेटाबेस चाहेंगे। तो इसलिए हम
यहां पे नो सीक्वल डेटाबेस ले सकते हैं। तो ऐसे ही हम माइक्रो सर्विस आर्किटेक्चर में हर सर्विस का एक अपना ओन डेडिकेटेड
डेटाबेस हो सकता है। ये सब मैंने हमारे सिस्टम डिज़ाइन प्लेलिस्ट में ऑलरेडी डिस्कस किया है। जहां हमने Netflix सिस्टम
डिज़ाइन, स्विगी सिस्टम डिज़ाइन और ऐसे बहुत सारे अलग-अलग जॉइंट सिस्टम्स का डिज़ आर्किटेक्चर डिस्कस किया है। तो वहां हमने
ये सारी चीजें डिस्कस की हैं। तो इफ यू वांट टू लर्न मोर अबाउट दी सिस्टम्स प्लीज गो एंड वॉच दोज़ वीडियोस। तो
हमने देख लिया कि इन सर्विज का अपना खुद का डेटाबेस हो सकता है। तो इसीलिए इस कोड में आप देखेंगे कि इस यूजर सर्विस के लिए
हमने यहां पे पोस्ट ग्रेस इक्वल डेटाबेस यूज़ किया है और हमने यहां पे प्रिज़्मा का यूज़ किया है। वि इज़ आवर ओआरएम मॉडल। तो यह
एक हमारे पास एक अलग से यूजर सर्विस है और इस यूजर सर्विस में हमारे पास इंडेक्स जेएस फाइल है। इसका मतलब है कि हम इस यूजर
सर्विस को अलग से इंडिविजुअली रन कर सकते हैं और जो कि रन हो भी रही है। आप देख सकते हैं कि यूजर सर्विसेस इज़ रनिंग एट
पोर्ट नंबर 4002। तो हम इन सर्विज को अलग-अलग बिल्ड कर सकते हैं। अलग-अलग हम इन्हें रन कर सकते हैं।
जैसा कि आप देख रहे हैं ये इंडेक्स इस यूजर सर्विस को रन कर रहा है। ऐसे ही हर सर्विस का एक अपना इंडेक्स जेस है जो
उस सर्विस को रन करेगा। और ऐसे ही हम इन सर्विसेज को टेस्ट कर सकते हैं और इंडिपेंडेंटली
डिप्लॉय कर सकते हैं। तो आपने कोड बेस दोनों का देख लिया। आपने माइक्रो सर्विज का भी कोड देख कोड बेस देख लिया। अब आपको
आईडिया लग गया होगा कि कैसे इनके दोनों का कोड बेस डिफर करता है। आपने मोनोलिथ का भी कोड बेस देख लिया। तो अब देखते हैं हम कि
कैसे यह माइक्रो सर्विस आर्किटेक्चर हमारी मोनोलिथ्स की प्रॉब्लम को सॉल्व करता है। तो सबसे पहला जो प्रॉब्लम था हमारा वो था
सिंगल पॉइंट ऑफ फेलियर। मतलब कि पूरे कोड में यदि कहीं भी प्रॉब्लम आ जा रहा है। लेट्स से कि हमारा पेमेंट मॉड्यूल क्रैश
हो गया। पेमेंट मॉड्यूल क्रैश हो गया। तो मोनोलिथ में क्या हो रहा था कि इस मॉड्यूल के क्रैश होने की वजह से ना अब ऑथेंटिकेशन
काम कर रहा था। ना अब कोर्स वाला फीचर काम कर रहा था, ना कार्ट वाला फीचर काम कर रहा था। कुछ नहीं कर रहा था काम।
तो ना कार्ट काम कर रहा है ना लॉग इन साइन अप काम कर रहा है ना कोर्स काम कर रहा है लेकिन यदि हमारे माइक्रो सर्विस
आर्किटेक्चर में बेसिकली क्या होगा कि हम एक पेमेंट को एक अलग से माइक माइक्रो सर्विस बना देंगे और यह जो पेमेंट माइक्रो
सर्विस होगी यह सारी की सारी पेमेंट्स को ये क्रेडिट कार्ड पेमेंट्स को PayPal पेमेंट्स को सारी के सारे डिफरेंट-डिफरेंट
पेमेंट्स को मैनेज करेगी। लेट्स से कि ये पेमेंट मॉड्यूल जो है पेमेंट माइक्रो सर्विस बेसिकली ये अब हमारा क्रैश हो गया।
तो अब इस केस में हमारी यूजर सर्विस पे कुछ इंपैक्ट नहीं आएगा। यूजर सर्विस पे कुछ इंपैक्ट नहीं पड़ेगा।
क्यों? क्योंकि दोनों ही सर्विज जो हैं, वह आपस में लूजली कपल्ड है, इंडिपेंडेंट हैं। और एक का फेल होने से दूसरे पे कोई
इफ़ेक्ट नहीं पड़ेगा। क्योंकि अब हमने जो टाइटली कपल्ड वाली डिपेंडेंसी थी उसको हटा दिया। तो एक मॉड्यूल या एक हमारा माइक्रो
सर्विस यदि फेल होती है तो दूसरे माइक्रो सर्विस पे उसका कोई असर नहीं दिखेगा। तो यह होता है हमारा पहला प्रॉब्लम सॉल्व
माइक माइक्रो सर्विसेस की मदद से जो कि था सिंगल पॉइंट ऑफ फेलियर। अब हम आ जाते हैं दूसरे दूसरे प्रॉब्लम दूसरे प्रॉब्लम पे
जो कि था डिप्लॉयमेंट बॉटल नेक। तो डिप्लॉयमेंट में क्या हो रहा था कि यदि हम कहीं भी कुछ भी एक छोटा सा फीचर नया भी
लाते हैं मोनोलिथ्स में तो हमें पूरे के पूरे सिस्टम को दोबारा से डिप्लॉय करना पड़ रहा था। लेकिन माइक्रो सर्विसेस के
केस में ऐसा नहीं होता है। लेट्स से कि अब आप सेम पेमेंट का एग्जांपल लेते हैं जो हमने वहां भी लिया था कि अब हमें क्रेडिट
कार्ड पेमेंट्स को ऐड करना है। क्रेडिट कार्ड तो हमें ये नई एक नया फीचर छोटा सा फीचर
ऐड करना है। तो अब यदि हमें इसको इसमें कुछ चेंजेस करना है तो हम सिर्फ पेमेंट मॉड्यूल को दोबारा से डिप्लॉय करेंगे। हम
यह चेंज करेंगे और फिर हम पेमेंट मॉड्यूल को दोबारा से डिप्लॉय करेंगे। तो यह हमारा दूसरा प्रॉब्लम भी सॉल्व होता है थ्रू
माइक्रो सर्विस आर्किटेक्चर। अब जो तीसरा प्रॉब्लम हमारा आता है अ वो आता है हमारा कि इंडिविजुअल स्केलिंग पॉसिबल नहीं
थी मोनोलिथ सिस्टम्स में कि हमें सिर्फ पेमेंट मॉड्यूल को यदि स्केल करना था तो वो हम नहीं कर पा रहे थे क्योंकि सब कुछ
टाइटली कपल्ड था। एक दूसरे से डिपेंडेंट था। लेकिन अब हमने वह डिपेंडेंसी हटा दी है। सब कुछ लूजली कपल्ड है। सर्विज आपस
में एक दूसरे पर डिपेंडेंट नहीं है। तो हम कंपोनेंट्स को इंडिविजुअली स्केल कर सकते हैं। लेट्स से कि हमारे पेमेंट माइक्रो
सर्विस पे बहुत ज्यादा ट्रैफिक आ रहा है। लेट्स से 20 मिलियन। तो हम क्या करेंगे कि हम हमारी जो पेमेंट सर्विस है पेमेंट
सर्विस है उसको हम इंडिविजुअली स्केल कर देंगे। हम ज्यादा मशीनें लगा देंगे यहां पर पेमेंट सर्विस के लिए तो हम इसे
इंडिविजुअली स्केल कर देंगे। तो अब हमें पूरे के पूरे सिस्टम को स्केल नहीं करना पड़ा। हमने सिर्फ एक जो जिस पे
हमारा ज्यादा ट्रैफिक आ रहा था सिर्फ हमने उस सर्विस को स्केल कर दिया। तो आप देख सकते हैं कि माइक्रो सर्विस ने हमारी
तीनों की तीनों प्रॉब्लम्स को अ जो कि बड़ी प्रॉब्लम्स थी उन तीनों प्रॉब्लम्स को सॉल्व कर दिया। तो ये होता है हमारा
मोनोलिथ सिस्टम वर्सेस माइक्रो सर्विस सिस्टम्स। अब हम आ जाते हैं अपने दूसरे पार्ट में कि हम कैसे एक मोनोलिथ सिस्टम
को एक माइक्रो सर्विस सिस्टम में कन्वर्ट कर सकते हैं। लेकिन उससे पहले हम देखते हैं कुछ मिसकंसेप्शंस जो लोगों को हैं
रिगार्डिंग मोनोलिथ एंड माइक्रो सर्विसेस। तो मोनोलिथ को लोग ऐसा समझते हैं कि एवरीथिंग रंस ऑन अ वन सिंगल मशीन। कि सब
कुछ जो है वो एक केवल सिंगल मशीन पर रन कर रहा है। मतलब केवल एक मशीन पर रन कर रहा है। पर हमने देखा जब हमने स्केल वाला
पॉइंट डिस्कस किया कि यदि हमें केवल एक मॉड्यूल को लेट्स से पेमेंट मॉड्यूल को स्केल करना है तो मोनोलिथ्स में हम क्या
करते हैं कि हम पूरे के पूरे सिस्टम को ही स्केल कर देते हैं। दैट मींस कि हमने एक और ऐप सर्वर लिया होगा। हमारे पास एक और
ऐप सर्वर आया होगा। लेट्स से यह ऐप सर्वर वन है। यह ऐप सर्वर टू है। तो जो मिसकसेप्शन है रिगार्डिंग मोनोलिथ कि
एवरीथिंग रंस ऑन अ वन सिंगल मशीन। तो ऐसा बिल्कुल भी नहीं है। हम ऑलरेडी डिस्कस कर चुके हैं कि यदि हमें मोनोलिथ्स को स्केल
करना होता है तो हम कर लेते हैं। इंडिविजुअल कंपोनेंट्स को हम स्केल नहीं कर पाते हैं। मतलब इट्स वेरी हार्ड। पर हम
हां पूरे के पूरे सिस्टम को वी कैन स्केल। क्योंकि आप खुद सोचिए कि यदि कोई सिस्टम है वो मोनोलिथ आर्किटेक्चर को फॉलो कर रहा
है और वहां पे 20-30 मिलियन यूज़र्स हैं और लेट्स से वन ऐप सर्वर इज़ नॉट एबल टू हैंडल दिस अमाउंट ऑफ ट्रैफिक। तो ऑब्वियसली हमें
स्केल करना ही पड़ेगा। तो यह जो मिसकंसेप्शन है यह कि मोनोलिथ के में सब कुछ केवल एक सिंगल मशीन पर काम करता है।
तो ऐसा बिल्कुल भी नहीं है। वी कैन स्केल मोनोलिथ सिस्टम्स इंडिविजुअली। इंडिविजुअल मॉड्यूल्स हम स्केल नहीं कर
सकते। लेकिन हां, हम पूरे के पूरे सिस्टम को स्केल कर सकते हैं। तो ये होता है हमारा मिसकंसेप्शन रिगार्डिंग मोनोलिथ्स।
अब माइक्रो सर्विसेस के केस में ज्यादातर लोगों को यह लगता है कि एवरीथिंग रंस ऑन मतलब जो सर्विसेस होती हैं वो
एव्री सर्विस रंस ऑन टाइनी टाइनी मशीनंस। कि जैसे यह यूजर सर्विस है कि यह यूजर सर्विस है तो यह यूजर सर्विस एक अलग से
स्मॉल मशीन पर चल रही होगी। लेट्स से M1 मशीन यह हमारी कार्ट वाली सर्विस है। यह अलग से चल रही होगी M2 मशीन पे। तो ऐसा
नहीं होता है। अ यह हम कब करते हैं? जब हमें स्केल करना होता है। लेट्स से कि हमें कार्ट वाली
सर्विस को स्केल करना होता है। तो हम है कि कार्ट के लिए हमने एक अलग से मशीन लगा ली। पर लेट्स से हमारे सिस्टम में यूज़र्स
कम है और एक हमारा अलग से सिंगल सिस्टम सारे के सारे माइक्रो सर्विसेस को हैंडल कर पा रहा है। तो हमें एक सिंगल मशीन में
ही हमारा काम हो जाता है। लेट्स से एक हमारी एक सिंगल मशीन है। और इस सिंगल मशीन में हमारी कार्ड सर्विस भी चल रही है।
हमारी यूजर सर्विस भी चल रही है और हमारी अलग-अलग पेमेंट सर्विस और अदर सर्विज वो सारी रन कर रही हैं। हमें नीड कब पड़ेगी?
अलग-अलग मशीनंस की या अलग-अलग सिस्टम्स की। जब हमारे पास ट्रैफिक बढ़ेगा और जब हमें लगेगा
कि इट माइट क्रैश तो हम अलग से अपनी इंडिविजुअल सर्विज को स्केल कर सकते हैं। तो ये मिसकंसेप्शंस होते हैं लोगों को
रिगार्डिंग माइक्रो सर्विस एंड मोनोलिथ्स। तो वो भी हमने कवर कर लिए। अब हम देखते हैं कि कैसे हम एक मोनोलिथ सिस्टम को एक
माइक्रो सर्विस सिस्टम में कन्वर्ट कर सकते हैं। फ्रॉम मोनोलिथ टू मोनोलिथ टू माइक्रो सर्विसेस।
माइक्रो सर्विसेस। तो सबसे पहले यह जानना जरूरी है कि इट्स नॉट अ वन डे एक्टिविटी।
इट्स नॉट अ वन डे एक्टिविटी कि आप एक ही दिन में सारा का सारा माइग्रेशन कर दोगे। ऐसा बिल्कुल भी
नहीं होता है। तो इट्स नॉट अ वन डे एक्टिविटी। और जो दूसरा पॉइंट यह है कि हम सारे के
सारे सिस्टम को मतलब पूरे के पूरे सिस्टम को एक बार में माइग्रेट नहीं करते। लेट्स से अगेन सेम एग्जांपल जो हम इतने टाइम से
डिस्कस कर रहे हैं कि हमारे पास एक मोनोलिथ सिस्टम है जहां पे एक ऑथेंटिकेशन वाला मॉड्यूल है। एक पेमेंट वाला मॉड्यूल
है। एक कार्ट वाला मॉड्यूल है। अ एक है हमारे पास कोर्स वाला मॉड्यूल। तो ऐसा नहीं होगा कि हम एक साथ सारे के सारे ये
मॉड्यूल्स को एक साथ माइग्रेट कर देंगे। एक साथ हम इनको माइक्रो सर्विस बना देंगे और सारा का सारा ट्रैफिक हम वहां मूव कर
देंगे। तो ऐसा बिल्कुल भी नहीं होता। हम स्मालस्मॉल सर्विसेस से या स्माल मॉड्यूल्स से स्टार्ट करते हैं। लेट्स से
हमें पेमेंट्स में प्रॉब्लम जा रही है। तो हम क्या करेंगे कि हम पहले पेमेंट मॉड्यूल उठाएंगे और हम इस पेमेंट मॉड्यूल को
माइग्रेट करने का ट्राई करेंगे माइक्रो सर्विसेस में। तो ऐसे हम माइग्रेशन करते हैं। तो ऐसा बिल्कुल भी नहीं होता कि हम
एक ही बार में पूरे के पूरे सिस्टम को माइग्रेट कर देते हैं टू माइक्रो सर्विस। जो तीसरा पॉइंट है जो हमें ध्यान में रखना
है वो है कि हम लेट्स से हमने पेमेंट पेमेंट मॉड्यूल जो था हमारा उसको हमने एक माइक्रो सर्विस बना दिया। तो पेमेंट
मॉड्यूल का बेसिकली काम क्या है? पेमेंट को प्रोसेस करना यूज़र्स की पेमेंट को कलेक्ट करना। तो ऑब्वियसली इस पेमेंट
सर्विस पे ट्रैफिक जा रहा होगा। तो हमने लेट्स से कि हमारा यह मोनोलथ सिस्टम है। यहां पे भी हमारा पेमेंट की फंक्शनैलिटी
है। बेसिकली पेमेंट मॉड्यूल है और यह हमने पेमेंट माइक्रो सर्विस भी बना दी। तो हम ऐसा बिल्कुल भी नहीं करेंगे कि हम पूरे के
पूरे ट्रैफिक को जैसे ही हमारा यह पेमेंट सर्विस बनके तैयार हुई तो हम पूरे के पूरे ट्रैफिक को इस माइक्रो सर्विस पे ट्रांसफर
कर देंगे। हम ऐसा बिल्कुल भी नहीं करेंगे। तो ये तीनों पॉइंट्स आपको ध्यान में रखने हैं। पहला कि इट्स नॉट अ वन डे एक्टिविटी।
दूसरा कि हम एक ही बार में पूरे के पूरे सिस्टम को माइग्रेट नहीं करेंगे। वी आर नॉट गोइंग टू माइग्रेट द एंटायर सिस्टम इन
अ सिंगल गो। और तीसरा पॉइंट कि वी आर नॉट गोइंग टू अह वी आर नॉट गोइंग टू ट्रांसफर 100% ट्रैफिक अह टू माइक्रो सर्विस इन अ
सिंगल गो। भले ही वह बनके तैयार हो गई। जैसे इस केस में भी हमारा पेमेंट माइक्रो सर्विस बनके तो रेडी हो गई है लेकिन हम
पूरे के पूरे ट्रैफिक को यहां पे एक बार में माइग्रेट नहीं करेंगे या राउट नहीं करेंगे। तो अब देखते हैं कि एक Amazon का
एग्जांपल लेते हैं और देखते हैं कि कैसे हम एक मोनोलिथ सिस्टम को माइक्रो सर्विस सिस्टम में कन्वर्ट कर सकते हैं। तो जो
सबसे पहला पॉइंट होता है वह होता है अंडरस्टैंड अंडरस्टैंड योर मोनोलिथ।
अंडरस्टैंड योर मोनोलिथ। अब यहां पर हम Amazon का एग्जांपल ले रहे हैं। तो हमें समझना होगा कि जो हमारा Amazon का मोनोलिथ
सिस्टम है उसमें कौन-कौन से मॉड्यूल्स होंगे। तो हम एक हमारा ऑथेंटिकेशन का ऑथ मॉड्यूल होगा। एक हमारा सर्च वाला मॉड्यूल
होगा। जिसके थ्रू यूजर डिफरेंट-डिफरेंट प्रोडक्ट्स को सर्च करेगा। एक हमारे पास कार्ड का मॉड्यूल होगा। एक हमारे पास
पेमेंट का मॉड्यूल होगा, एक हमारे पास ऑर्डर का मॉड्यूल होगा। ऐसे हमारे पास डिफरेंट-डिफरेंट मॉड्यूल्स होंगे। तो जो
हमारा पहला पॉइंट होता है अ पहला स्टेप होता है वो होता है कि हमें पहले अपने मोनोलिथ को समझना है। अंडरस्टैंड योर
मोनोलिथ। अब उसके बाद उसके बाद जो दूसरा पॉइंट आता है वो यह होता है कि आइडेंटिफाई करो हाई इंपैक्ट एरियाज को। आइडेंटिफाई
आइडेंटिफाई हाई इंपैक्ट एरियाज हाई इंपैक्ट
एरियाज अब इसका मतलब क्या होता है कि लेट्स से हमने पहले भी देखा कि लेट्स से पेमेंट
सर्विस जो था पेमेंट मॉड्यूल जो था इस पे बहुत ट्रैफिक आ रहा था और यह आगे जाके क्रैश हो सकता है। हमने यह फिगर आउट कर
लिया। तो हम क्या करेंगे कि हम हमने यह समझ लिया कि हां यह हमारा हाई इंपैक्ट एरिया हो सकता है। यहां पर हम
क्रैश कर सकते हैं आगे चलके नियर फ्यूचर में। तो हम क्या करेंगे कि हम सबसे पहले इस पेमेंट मॉड्यूल को उठाएंगे और हम इसको
एक अलग से पेमेंट सर्विस में बनाने का ट्राई करेंगे। तो ये हमारा हो जाएगा पेमेंट सर्विस। तो
ये होता है हमारा दूसरा पॉइंट जहां हम आइडेंटिफाई करते हैं हाई इंपैक्ट एरियाज को। तो हमने डिसाइड कर लिया कि ठीक है
पहले हम हमारी पेमेंट माइक्रो सर्विस को डिजाइन करेंगे। उसके बाद जो थर्ड पॉइंट होता है वो हमारा होता है कि हम एपीआई
कॉन्ट्रैक्ट्स को बिल्ड करते हैं। बिल्ड एपीआई कॉन्ट्रैक्ट्स एपीआई
कॉन्ट्रैक्ट्स एंड वी विल आल्सो सेट अप कम्युनिकेशन। सेटअप कम्युनिकेशन। अब यह जो माइक्रो
सर्विज होती हैं, यह इनका आपस में कम्युनिकेशन दो टाइप का होता है। एक सिंक्रोनस कम्युनिकेशन, एक एसिंक्रोनस
कम्युनिकेशन। जो सिंक्रोनस कम्युनिकेशन होता है, वो रेस्ट एपीआई के थ्रू होता है। जीआरपीसी के थ्रू होता है। एसिंक्रोनस
कम्युनिकेशन के लिए हम डिफरेंट मैसेजिंग क्यूज़ होते हैं हमारे पास अ काफ का, रैबिट एमक्यू। तो इन माइक्रो सर्विसेस का
कम्युनिकेशन हमें आपस में डिफाइन करना होता है। तो इसके लिए हम एपीआई कॉन्ट्रैक्ट्स बिल्ड करेंगे और
कम्युनिकेशन सेटअप करेंगे। डिसाइड करेंगे कि कौन सा मैसेजिंग क्यों हमें यूज करना है। यदि हम एसिंक कम्युनिकेशन रख रहे हैं
हमारे सिस्टम में तो तो ये सारी चीजें हमें डिफाइन करनी होती है। तो ये हो जाता है हमारा थर्ड पॉइंट। उसके बाद हम क्या
करते हैं? मॉड्यूल बाय मॉड्यूल माइग्रेट करते हैं। तो हम सबसे पहले एक छोटा सा मॉड्यूल
लेंगे। वही सेम लेट्स से पेमेंट मॉड्यूल। तो टेक मॉड्यूल एंड वर्क ऑन इट।
बेसिकली हियर वी आर गोइंग मॉड्यूल बाय मॉड्यूल। पहले हम एक मॉड्यूल पे काम करेंगे। फिर दूसरे फिर तीसरे। ऐसे करके हम
पूरे के पूरे सिस्टम को स्लोली फ्रॉम मोनोलिथ टू माइक्रो सर्विस में माइग्रेट करते हैं। तो टेक मॉड्यूल एंड वर्क ऑन इट।
तो सबसे पहले हमने पेमेंट मॉड्यूल लिया और हम उस पर काम करेंगे। तो यह हो जाता है हमारा चौथा पॉइंट। अब इसके बाद यह जानना
बहुत ही जरूरी है कि कैसे हम इसे कोड में माइग्रेट कर रहे होंगे। तो यह हमारा एक माइक्रो सर्विस आर्किटेक्चर है। तो हम
यहां पे एक नई सर्विस डिफाइन करेंगे व्हिच इज़ आवर पेमेंट सर्विस। और फिर हम क्या करेंगे कि उस पेमेंट सर्विस में उस कोड को
लेकर आएंगे जो हमने मोनोलिथ में लिखा था। हम सिमिलर टू दिस यूजर सर्विस हम डिफरेंट-डिफरेंट उसका उस पेमेंट सर्विस
में हम जो डेटाबेस यूज़ करने वाले हैं हम वो डिफाइन कर रहे होंगे। लेट्स से हम कोई माय सीक्वल डेटाबेस यूज़ कर रहे हैं। तो हम
पहले इस पेमेंट सर्विस के लिए डेटाबेस चॉइस करेंगे। डेटाबेस सेलेक्ट करेंगे। तो लेट्स से कि हम माय सीक्वल डेटाबेस यूज कर
रहे हैं। तो पहले हम ये डिसाइड करेंगे। उसके बाद हम माय सीक्वल डेटाबेस यहां पे सेटअप करेंगे। हमारे पास ऐसे डिफरेंट हम
डॉकर को सेटअप करेंगे हमारे सिस्टम में इस माइक्रो सर्विस के लिए। उसके बाद हमारी खुद की एक इंडेक्स डॉट जेएस फाइल होगी
जिसके थ्रू हम पेमेंट सर्विस को रन करेंगे। से डिफरेंट-डिफरेंट हमारे पास अ फोल्डर स्ट्रक्चर होगा उस पर्टिकुलर
माइक्रो सर्विस के लिए और वो सारी चीजें हम माइग्रेट करेंगे जो हमारे मोनोलिथ सिस्टम में थी। तो इस मोनोलिथ सिस्टम में
पेमेंट के लिए हमने जोज जोज हमने पेमेंट ऑप्शंस रखे हुए थे वो सारे फीचर्स हम इस माइक्रो सर्विस में भी लेके आएंगे। ऐसे
करके हम स्लोली मॉड्यूल बाय मॉड्यूल माइग्रेट करेंगे। अब सक्सेसफुली माइग्रेशन होने हो जाने के बाद हम ऑब्वियसली टेस्ट
करेंगे। हम उसे डिप्लॉय करेंगे और फिर हम उसका उस पे उस सर्विस की मॉनिटरिंग भी करेंगे। बिकॉज़
इट इज़ वेरीेंट कि हम देख रहे हैं कि वह सही से काम कर रही है या नहीं और हम चीजें ऑब्जर्व करेंगे कि यह सही से ट्रैफिक को
हैंडल कर पा रही है या नहीं या इस पे कोई ट्रैफिक आ रहा है तो यह क्रैश तो नहीं हो जा रही। तो ये सारी चीजें भी हम डिस्कस ये
सारी चीजें भी हम मेंटेन करेंगे। तो ये जो हो जाता है हमारा फिफ्थ पॉइंट कि हम मॉनिटरिंग करेंगे।
मॉनिटरिंग एंड ऑब्जरवेबिलिटी। तो ये सारी चीजें भी हम यहां पे मेंटेन करेंगे। उसके बाद जो होता है हमारा वो
होता है सिक्स्थ पॉइंट व्हिच इज़ स्केलिंग। स्केलिंग एंड ऑप्टिमाइजेशन। तो अब इस फज़ में हम क्या करते हैं कि अब
हमने सक्सेसफुली माइग्रेट तो कर लिया। हमने हमारी माइक्रो सर्विस को डिजाइन कर लिया है। अब हम इसको लेट्स से स्केल करने
की नीड है। तो वो हम कैसे स्केल करेंगे? तो हम लेट्स से ये हमारी पेमेंट सर्विस है। तो अब हम इस पेमेंट सर्विस को
इंडिविजुअली स्केल कर सकते हैं। हम नंबर ऑफ मशीनंस बढ़ा देंगे। नंबर ऑफ मशीनंस इनक्रीस कर सकते हैं। लेट्स से कि ये जो
पेमेंट माइक्रो सर्विस है, यह बहुत ज्यादा लोड ले रहा है और हम फिगर आउट कर सकते हैं कि आगे चलके ये माइक्रो सर्विस क्रैश कर
सकती है। तो वी कैन इंक्रीस नंबर ऑफ मशीनंस इस पेमेंट माइक्रो सर्विस के लिए। तो ऐसे करके हम हॉरिजॉन्टली स्केल कर सकते
हैं इंडिविजुअल कॉमोनेंट्स को। हम ऑप्टिमाइजेशन भी परफॉर्म कर रहे होंगे। लेट्स से कि इस पेमेंट माइक्रो सर्विस को
हाई सर्वर सीपीयू की नीड है तो हम इसे वो असाइन कर देंगे। तो ऐसे करके हम स्केलिंग और ऑप्टिमाइजेशन को मेंटेन करेंगे। अब जो
हमारा पेमेंट मॉड्यूल का कोड है वह हमारे मोनोलिथ सिस्टम में भी है। अभी यह हमारा मोनोलिथ सिस्टम है। तो ये जो हमारा पेमेंट
मॉड्यूल का कोड है यह अभी मोनोलिथ में भी है। और हमने एक अलग से पेमेंट माइक्रो सर्विस भी डिफाइन कर दी। पेमेंट माइक्रो
सर्विस भी बिल्ड कर दी। तो क्या अब हम यह पेमेंट मॉड्यूल को जो मोनोलिथ में लिखा हुआ है तो क्या अब हम इसे रिमूव कर देंगे
या डीकमीशन कर देंगे एक्चुअली वी आर नॉट गोइंग टू डू दिस अ क्यों और कब तक तो यह हम तब तक डीकमीशन नहीं करेंगे जब तक हमारा
100% ट्रैफिक इस माइक्रो सर्विस पेमेंट माइक्रो सर्विस में नहीं राउट हो जाता। तो जब तक हमारा
100% 100% ट्रैफिक राउट नहीं हो जाता इस माइक्रो सर्विस में तब तक हम इस पेमेंट मॉड्यूल को डीकमीशन
नहीं करेंगे मोनोलिथ सिस्टम से। तो अब हम कैसे ट्रैफिक को मेंटेन कर रहे होंगे पहले वो देखते हैं। तो ट्रैफिक को मेंटेन करने
के लिए हम कैनरी डिप्लॉयमेंट का यूज़ कर रहे होंगे। कैनरी डिप्लॉयमेंट। अब ये कैनडी डिप्लॉयमेंट में क्या होता है कि हम
एक स्मॉल सबसेट ऑफ यूज़र्स को लेते हैं और जो हमारा नया सॉफ्टवेयर वर्जन है इस केस में पेमेंट सर्विस तो हम क्या करते हैं उस
स्मॉल सबसेट ऑफ यूज़र्स को राउट कर देते हैं। उनकी रिक्वेस्ट को राउट कर देते हैं नए सॉफ्टवेयर वर्जन पे जो कि यहां पे
हमारा पेमेंट सर्विस है। तो हम क्या करेंगे कि हम स्मॉल सबसेट ऑफ यूज़र्स को की रिक्वेस्ट को राउट कर देंगे
इस पेमेंट माइक्रो सर्विस पे। अब यदि इन यूज़र्स के लिए यह पेमेंट सर्विस सही से काम करती है और क्रैश नहीं करती है तो फिर
हम इस सबसेट को और बढ़ाएंगे। तो कैनरी डिप्लॉयमेंट में क्या होता है कि सबसे पहले हम 0 1% यूज़र्स को
0 1 यूज़र्स 0.1% यूज़र्स की रिक्वेस्ट को इस पे राउट करेंगे। पेमेंट सर्विस पे राउट करेंगे। इफ इट वर्क्स फाइन फॉर 0.1%
यूज़र्स तो हम 1% यूज़र्स को राउट करेंगे। इनके लिए भी सही से काम करता है तो हम 5%
इनके लिए भी सही से काम करता है तो हम 10% और इनके लिए भी यदि सही से काम करता है तो 50 और फिर ऐसे करके 100% तो ऐसे करके हम
100% ट्रैफिक को राउट करते हैं टू माइक्रो सर्विस। तो कैनरी डिप्लॉयमेंट इसमें हमारी हेल्प करता है फिगर आउट करने में कि कितने
परसेंट यूज़र्स को कितने परसेंट अ यूज़र्स की रिक्वेस्ट को हमें राउट करना है। ट्रैफिक को राउट करना है। तो कैनरी
डिप्लॉयमेंट हमारी इसमें मदद करता है। हम बेसिकली स्मॉल सबसेट ऑफ यूज़र्स को लेते हैं और नए सॉफ्टवेयर वर्जन पे हम उन
यूज़र्स की रिक्वेस्ट को राउट करते हैं। अब यहां पे हमारा एक अह माइक्रोसर्फेस डिज़ाइन पैटर्न पिक्चर में आता है जिसे हम बोलते
हैं स्ट्र्रांगुलर डिज़ाइन पैटर्न। स्ट्र्रांगुलर डिज़ाइन पैटर्न।
तो, यह स्ट्र्रांगुलर डिज़ाइन पैटर्न क्या होता है? कि इसे भी हम एक एग्जांपल के थ्रू समझते हैं कि लेट से हमारे पास यह
हमारा मोनोलिथ सिस्टम है जहां पर हमारा पूरा का पूरा कोड लिखा हुआ है। तो यह हमारा मोनोलिथ सिस्टम है। यहां
पे हमारी पेमेंट मॉड्यूल है। और यह एक हमारी पेमेंट माइक्रो सर्विस है जो हमने अभी-अभी बिल्ड की है। अभी इस पे कोई
ट्रैफिक नहीं जा रहा। तो हम कैनरी डिप्लॉयमेंट से फिगर आउट करेंगे कि कितने परसेंट ऑफ यूज़र्स को हमें राउट करना है।
तो यह राउटिंग होती कैसी है? इसके लिए कैसे होती है? इसके लिए हम स्ट्रांगुलर डिज़ाइन पैटर्न का यूज़ करते हैं। तो, इसमें
हमारे पास एक कंट्रोलर कंट्रोलर काइंड ऑफ़ थिंग होती है। तो, यह कंट्रोलर क्या करता है? यह एपीआई
रिक्वेस्ट आती हैं। लेट्स से डिफरेंट-डिफरेंट यूज़र्स की एपीआई रिक्वेस्ट आ रही हैं। लेट्स से कि 100
एपीआई रिक्वेस्ट आई। 100 एपीआई रिक्वेस्ट। तो ये कंट्रोलर क्या करता है कि इनिशियली ये 90%
रिक्वेस्ट को 90% एपीआई रिक्वेस्ट को या 90% ट्रैफिक को मोनोलिथ में राउट कर देता है और 10% को इस माइक्रो सर्विस में राउट
कर देता है। तो लेट्स से कि यदि हमारे पास 100 रिक्वेस्ट हैं तो 90 रिक्वेस्ट जाएंगी मोनोलिथ के पास। 10 रिक्वेस्ट जाएंगी
माइक्रो सर्विस के पास। अब लेट्स से कि यह जो माइक्रो सर्विस है पेमेंट माइक्रो सर्विस है वो इन 10 रिक्वेस्ट को भी सही
से प्रोसेस नहीं कर पाता। तो इस केस में ये जो 10% है इसको हम रिड्यूस करके जीरो कर देंगे और हम सारे के सारे ट्रैफिक को
राउट कर देंगे मोनोलिथ की तरफ। अब हमने ये सारे के सारे ट्रैफिक को मोनोलिथ की तरफ राउट कर दिया। तो अब यहां से हम जो भी
हमने यहां ट्रैफिक या रिक्वेस्ट भेजी थी, इसे हम रोल बैक कर देते हैं। तो, यह है हमारा स्ट्रेंुलर डिज़ पैटर्न। यह मदद करता
है ट्रैफिक को मेंटेन और मैनेज करने में। अह कैनरी भी हमारा ट्रैफिक को मैनेज करने में हेल्प करता है। तो इफ यू वांट मी टू
मेक अ वीडियो ऑन दिस ट्रें डिज़ाइन पैटर्न व्हिच इज़ आवर माइक्रो सर्विस डिज़ाइन पैटर्न। सो, इफ यू वांट मी टू मेक वीडियो
ऑन दैट। अह प्लीज लेट मी नो इन द कमेंट सेक्शन। आई विल मेक अ सेपरेट वीडियो ऑन दैट। तो यह हो गया हमारा ट्रैफिक के बारे
में कि हम कैसे ट्रैफिक को कंट्रोल और मैनेज करेंगे। अब जो दूसरी चीज हमारी आती है वो होती है कि कैसे हम ट्रांजैक्शंस को
मेंटेन करेंगे। ट्रांजैक्शंस को हम कैसे मेंटेन कर रहे होंगे। तो ट्रांजैक्शंस को मेंटेन करने के
लिए हमें हम एक अनदर माइक्रो सर्विस डिजाइन पैटर्न यूज़ करते हैं जिसे हम बोलते हैं सागा डिज़ पैटर्न।
तो यह सागा डिज़ाइन पैटर्न क्या होता है कि लेट्स से हमारे पास एक पेमेंट सर्विस है। पेमेंट माइक्रो सर्विस है
और हमारे पास एक लेट्स से ऑर्डर माइक्रो सर्विस है और एक हमारे पास
यूजर माइक्रो सर्विस है। अब लेट्स से कि एक कोई ट्रांजैक्शन रिलेटेड क्वेरी आती है और हां एक चीज और कि लेट्स से हर सर्विस
का अपना एक ओन डेडिकेटेड डेटाबेस है। तो इसका भी अपना ओन डेडिकेटेड डेटाबेस है। इस माइक्रो सर्विस का भी अपना ओन डेडिकेटेड
डेटाबेस है। और इस माइक्रो सर्विस का भी अपना ओन डेडिकेटेड डेटाबेस है। तो सागा डिज़ाइन पैटर्न में क्या होता है कि लेट्स
से कोई ट्रांजैक्शन रिलेटेड क्वेरी हमारे पास आती है और वह ट्रांजैक्शन रिलेटेड क्वेरी को उसको तीनों के तीनों माइक्रो
सर्विस से होके जाना है। लेट्स से वो ट्रांजैक्शन जो है वो तीनों माइक्रो सर्विसेस पे डिपेंड करता है। तो वो इस पे
इससे हो के भी जाएगा। वो इससे हो के भी जाएगा और पेमेंट से भी होके जाएगा। लेट्स से कि अब उस ट्रांजैक्शन को अ यहां पे वो
ट्रांजैक्शन सक्सेसफुली कंप्लीट हो गया। लेट्स से यहां पे छह डेटाबेस टेबल्स में चेंज करना था और छह के छह में हमने
सक्सेसफुली चेंज कर दिया। तो यहां पे ट्रांजैक्शन सक्सेसफुल हुआ। रिक्वेस्ट जाती है ऑर्डर सर्विस के पास। ऑर्डर
माइक्रो सर्विस। अब ऑर्डर माइक्रो सर्विस में पांच टेबल्स में हमें चेंज करना था। यहां भी हमने सक्सेसफुली कर दिया। अब इसके
बाद रिक्वेस्ट जाती है पेमेंट माइक्रो सर्विस में। लेकिन यहां पे लेट्स से आठ में हमें चेंज करना था। आठ में हमें चेंज
करना था और हम सिर्फ दो में कर पाए। छह में हमारा ट्रांजैक्शन फेल हो गया या हम चेंज नहीं कर पाए। तो इस केस में क्या
होता है कि ट्रांजैक्शन को रोल बैक करना और ट्रांजैक्शन को मेंटेन करना बहुत ही मुश्किल होता है। तो इस ट्रांजैक्शन को
मैनेज और मेंटेन करने के लिए हम यूज़ करते हैं सागा डिज़ाइन पैटर्न। व्हिच इज़ अनदर माइक्रो सर्विस डिज़ाइन पैटर्न। सो इफ यू
वांट मी टू मेक वीडियो ऑन दैट, प्लीज लेट मी नो इन द कमेंट सेक्शन। आई विल मेक अ सेपरेट वीडियो ऑन दैट। अह तो हम यहां पे
सागा डिज़ाइन पैटर्न का यूज़ करेंगे। ट्रांजैक्शन को मेंटेन करने के लिए क्योंकि
इफ ट्रांजैक्शन इज़ गोइंग थ्रू विद डिफरेंट-डिफरेंट माइक्रो सर्विसेस तो उसे मेंटेन करना बहुत ही मुश्किल हो जाता है।
यदि वो ट्रांजैक्शन सिर्फ एक माइक्रो सर्विस से रिलेटेड है तो तो ठीक है कि हमने यहां पे चेंज कर दिया। यदि नहीं हुआ
तो हमने रोल बैक कर दिया। रिवर्ट कर दिया। पर यहां पे क्या है कि इस ट्रांजैक्शन को डिफरेंट-डिफरेंट माइक्रो सर्विसेस से हो
के जाना है। लेट्स से इसमें सक्सेसफुल हो गया। इसमें सक्सेसफुल हो गया। इसमें फेल हो गया। तो फिर यहां पे ट्रांजैक्शन को
रोल बैक करना इज़ अ बिग चैलेंज। तो उसके लिए हम यूज़ करते हैं सागा डिज़ पैटर्न को। तो अब तक हमने देख लिया कि इस माइग्रेशन
में फ्रॉम मोनलिथ टू माइक्रो सर्विस हम कैसे ट्रैफिक को कंट्रोल करेंगे। हम कैसे ट्रांजैक्शन को कंट्रोल करेंगे। अब हम
देखते हैं एक और इंपॉर्टेंट पॉइंट कि हम डेटा कंसिस्टेंसी कैसे मैनेज करेंगे। हमारे सिस्टम में डाटा कंसिस्टेंसी
तो हमारे पास सबसे पहले अभी हमने पेमेंट सर्विस को माइग्रेट किया है। बेसिकली हमने
एक नई पेमेंट सर्विस बिल्ड की है। तो हमारे पास एक मोनोलिथ सिस्टम होगा और उस मोनोलिथ सिस्टम में
अभी भी हमारा पेमेंट का कोड है। पेमेंट मॉड्यूल है और एक हमारी नई पेमेंट माइक्रो सर्विस
रेडी है। तो अभी भी यह पेमेंट मॉड्यूल को हमने मोनोलिथ से डीकमीशन नहीं किया। वो हम
डिस्कस कर चुके हैं कि हम सिर्फ इसे डीकमीशन तभी करेंगे जब हम 100% ट्रैफिक को राउट कर देंगे टू माइक्रो सर्विस। अभी
लेकिन हमारी सिर्फ पेमेंट सर्विस बनके तैयार हुई है। हमारा हम कह सकते हैं कि हमारा कोड माइग्रेट हुआ है। हमारा फुली
यह पेमेंट मॉड्यूल माइग्रेट नहीं हुआ है। यह कब माइग्रेट कहलाया जाएगा? जब हम 100% ट्रैफिक को राउट कर देंगे। तो अभी सिर्फ
हमारा कोड माइग्रेट हुआ है। तो अब इस मोनोलिथ सिस्टम का अपना एक अलग डेटाबेस होगा जहां पे एक पेमेंट टेबल होगी। हम
ऑलरेडी ये डिस्कस कर चुके हैं और इस पेमेंट माइक्रो सर्विस का अपना एक इंडिविजुअल डेटाबेस होगा। अब ये दोनों ही
डेटाबेस में इस डेटाबेस की पेमेंट टेबल और यह जो डेटाबेस है यह सेम डेटा सेम पेमेंट्स का डेटा कैरी कर रहे होंगे कि
किस यूजर ने क्या पेमेंट की। पेमेंट का मीडियम क्या था? इट कैन बी क्रेडिट कार्ड और एनी अदर मीडियम। तो
इन टेबल इस टेबल में इस डेटाबेस टेबल में और इस डेटाबेस में डेटा शुड बी कंसिस्टेंट। ऐसा नहीं होना चाहिए कि लेट्स
से एक वेरिएबल है उसकी वैल्यू यहां पे लेट्स से x = 5 है और यहां पे x = 4 है। तो ऐसा नहीं होना चाहिए। वरना हमारा डेटा
इनकंसिस्टेंट हो जाएगा। तो इसके लिए हम क्या करते हैं? हम इसके लिए एक और पैटर्न यूज़ करते हैं व्हिच इज़ आउटबॉक्स पैटर्न।
तो हम आउटबॉक्स पैटर्न में क्या करते हैं कि जभी भी कोई यूजर पेमेंट करेगा तो हम उस उस डेटा को उस ऑपरेशन को राइट करेंगे
हमारे इस मोनोलिथ डेटाबेस के पेमेंट टेबल में। राइट? अब उसके बाद हमारे पास इस सेम मोनोलिथ डेटाबेस में एक आउटबॉक्स टेबल
होगा। तो हम उस आउटबॉक्स टेबल में भी उस राइट को एंट्री करेंगे। उस राइट की एंट्री करेंगे। और फिर उस आउटबॉक्स टेबल से हम
इवेंट पुश कर देंगे काफका में। सो हियर वी विल बी हैविंग काफका। तो यहां पर हमारा लेट्स से काफका है। अब
यह काफका में हम इवेंट पुश कर देंगे और फिर इस काफका से यह इवेंट जाएगा इस पेमेंट माइक्रो सर्विस के डेटाबेस में। सो दिस इज़
हाउ यूजिंग आउटबॉक्स पैटर्न वी विल मैनेज डेटा कंसिस्टेंसी व्हाइल माइग्रेटिंग फ्रॉम मोनोलिथ टू
माइक्रो सर्विस। नाउ आई थिंक दिस इज़ इनफ फॉर दिस वीडियो। एक बार वापस से रिवाइज करते हैं हमने क्या-क्या देखा। सो
वी हैव डिस्कस्ड मोनोलिथ वर्सेस माइक्रो सर्विसेस। दोनों में क्या डिफरेंस होता है? दोनों के कोड बेस में क्या डिफरेंस
होता है। सो वी हैव डिस्कस्ड दिस। उसके बाद हमने देखा कि कैसे हम एक मोनोलिथ एप्लीकेशन को माइक्रो सर्विस एप्लीकेशन
में कन्वर्ट कर सकते हैं। हमने प्रिकॉशंस देखे कि हम अह पूरे के पूरे सिस्टम को एक बार में माइग्रेट नहीं करेंगे। वी विल गो
मॉड्यूल बाय मॉड्यूल। हमने देखा कि हम एक साथ 100% ट्रैफिक को भी माइग्रेट नहीं करेंगे या 100% ट्रैफिक को राउट नहीं
करेंगे टू माइक्रो सर्विस। अ उसके बाद हमने डिफरेंट स्टेप्स देखे मोनोलिथ एप्लीकेशन को माइक्रो सर्विस एप्लीकेशन
में कन्वर्ट करने के। उसमें हमने देखा कि हम मॉड्यूल बाय मॉड्यूल माइग्रेट करेंगे। सबसे पहले हम कोड को माइग्रेट करेंगे। हम
कोड को लेकर आएंगे हमारे माइक्रो सर्विस एप्लीकेशन वाली रेपोजिटरी में। तो सबसे पहले हम कोड माइग्रेट करेंगे। उसके बाद जब
हमारा कोड माइग्रेट हो जाएगा फिर हम उसकी टेस्टिंग करेंगे, डिप्लॉय करेंगे और फिर हम यूजिंग कैनरी मेथड अ कैनरी
डिप्लॉयमेंट्स, ट्रेंगुलर डिज़ पैटर्न। फिर हम ट्रैफिक को मूव करेंगे उस माइक्रो सर्विस पे। यदि हम 100% सक्सेसफुली
ट्रैफिक को राउट कर पाते हैं तब हम कह सकते हैं कि यस हमारी माइक्रो सर्विस जो है वो माइग्रेट हो चुकी है सक्सेसफुली।
सो हियर कोड माइग्रेशन एंड सर्विस माइग सर्विस माइग्रेशन या मॉड्यूल माइग्रेशन इज़ डिफरेंट।
तो यह चीज का थोड़ा ध्यान रखना कि जब मैंने बोला है कि हमने कोड माइग्रेट कर लिया तो यह कोड माइग्रेशन में क्या होगा
कि हम अपने कोड को माइक्रो सर्विस वाली रिपॉजिटरी में लेके आएंगे। हम डेटाबेस कॉन्फ़िगरेशन करेंगे। डेटाबेस डिसाइड
करेंगे। उसके लिए जो भी कॉन्फ़िगरेशन की जरूरत होगी, वह हम वहां डिफाइन करेंगे। तो, यह हो गया हमारा कोड माइग्रेशन। कोड
माइग्रेशन के बाद हम टेस्टिंग करेंगे। उस कोड की डिप्लॉय करेंगे और एक बार सक्सेसफुली डिप्लॉय हो जाने के बाद हम फिर
उस पे ट्रैफिक ट्रैफिक का टेस्ट करेंगे कि वह ट्रैफिक को सही से कंट्रोल कर पा रहा है या नहीं तो उसके लिए हम कैनरी और
स्ट्रेंगलर का यूज़ करेंगे। तो एक बार यदि हमारा सही से ट्रैफिक राउट हो पा रहा है तो फिर हम बोलेंगे कि ठीक है हमने
सक्सेसफुली हमारे मोनोलिथ से माइक्रो सर्विस में एक मॉड्यूल को माइग्रेट कर दिया। इस केस में
हम देख रहे थे पेमेंट। तो हम बोल सकते हैं आफ्टर राउटिंग 100% ट्रैफिक टू माइक्रो सर्विस कि हमने पेमेंट मॉड्यूल को सही से
माइग्रेट कर दिया। ऐसे करके हम डिफरेंट-डिफरेंट अदर मॉड्यूल्स को भी माइग्रेट कर देंगे। और हमने एक चीज और
देखी कि हम इस पेमेंट मॉड्यूल को जो हमारा पेमेंट मॉड्यूल था जो मोनोलिथ में हमने लिखा था। तो इसको हम तभी डीकमीशन करेंगे
जब हम 100% ट्रैफिक को राउट कर देंगे टू माइक्रो सर्विस। तो एक चीज यह भी ध्यान में रखने वाली है। उसके बाद हमने कुछ
इंपॉर्टेंट केसेस देखे कि हम कैसे ट्रैफिक को मैनेज करते हैं। अ व्हाइल माइग्रेटिंग फ्रॉम मोनोलिथ टू माइक्रो सर्विस। हम कैसे
ट्रांजैक्शंस को मैनेज करते हैं। हमने देखा कि कैसे हम डेटा कंसिस्टेंसी को मैनेज करते हैं। सो वी हैव डिस्कस्ड
डिफरेंट-डिफरेंट थिंग्स और ये हमने देखा सिर्फ एक मॉड्यूल के लिए कि एक मॉड्यूल को कैसे हम माइग्रेट करेंगे। ऐसे ही सेम
स्टेप्स को फॉलो करते हुए सेम प्रिकॉशंस को ध्यान में रखते हुए हम अदर मॉड्यूल्स को भी माइग्रेट करेंगे। और एक बार सारे
मॉड्यूल्स सक्सेसफुली माइग्रेट हो जाएंगे। तो एज वी हैव ऑलरेडी नो कि यह इंडिविजुअल सर्विज बन जाएंगी। लेट्स से पेमेंट अपने
में एक इंडिविजुअल सर्विस होगी। यूजर एक अपने में इंडिविजुअल सर्विस होगी। तो ऐसे करके हम पूरे के पूरे मोनोलिथ एप्लीकेशन
को माइक्रो सर्विस एप्लीकेशन में कन्वर्ट कर देंगे। उसके बाद हम एपीआई गेटवे के बारे में देखेंगे। तो एपीआई गेटवे इज़
समथिंग दैट वी विल बी डिस्कसिंग इन अ वेरी नेक्स्ट वीडियो। सो यस। एंड आई थिंक दिस इज ऑल फॉर दिस। दिस
इज इनफ फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। और नेक्स्ट वीडियो में हम बात करने वाले हैं एपीआई गेटवे वर्सेस लोड
बैलेंसर के बारे में कि दोनों में डिफरेंस क्या होता है और एक रियल वर्ल्ड प्रोजेक्ट में क्या पहले आता है। और भी हम कुछ
इंपॉर्टेंट क्वेश्चंस देख रहे होंगे रिगार्डिंग एपीआई गेटवे एंड लोड बैलेंसर। सो यस दिस इज़ ऑल फॉर दिस वीडियो। वी विल
सी यू इन द नेक्स्ट वीडियो। सो टिल देन बय शो सम लव थैंक्स [संगीत]
हे एवरीवन वेलकम बैक वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। तो यह वीडियो इस सीरीज का दूसरा वीडियो होने
वाला है। और इस वीडियो में हम देखेंगे एपीआई गेटवे वर्सेस लोड बैलेंसर। और साथ ही साथ हम देखेंगे कुछ इंपॉर्टेंट
क्वेश्चंस जो अक्सर इंटरव्यू में पूछे जाते हैं रिगार्डिंग दिस एपीआई गेटवे एंड लोड बैलेंसर। तो स्टार्ट करते हैं और एक
बार डिस्कस करते हैं कि इससे पिछले वीडियो में हमने क्या-क्या डिस्कस किया। तो लास्ट वीडियो में हमने देखा व्हाट इज़ मोनोलिथ
एप्लीकेशन। हमने देखा व्हाट इज़ माइक्रो सर्विस एप्लीकेशन। अह वी हैव डिस्कस्ड कि कैसे हम एक मोनोलिथ एप्लीकेशन को एक
माइक्रो सर्विस एप्लीकेशन में कन्वर्ट कर सकते हैं। उसके लिए हमने प्रिकॉशंस देखे। हमने डिफरेंट स्टेप्स देखे और साथ ही साथ
हमने कुछ इंपॉर्टेंट पॉइंट्स देखे कि कैसे हम ट्रैफिक को कंट्रोल करते हैं। कैसे हम ट्रांजैक्शंस को मैनेज करते हैं और हमने
देखा कि कैसे हम डेटा कंसिस्टेंसी को मैनेज करते हैं व्हाइल माइग्रेटिंग फ्रॉम मोनोलिथ टू माइक्रो सर्विसेस। तो अब हम
कंप्लीटली आ चुके हैं अपने माइक्रो सर्विस आर्किटेक्चर की तरफ। तो अब हमें एपीआई गेटवे को डिस्कस करना बहुत इंपॉर्टेंट है।
तो स्टार्ट करते हैं और इसे एक एग्जांपल के थ्रू समझते हैं। तो लेट्स से कि हम एक Amazon काइंड ऑफ एप्लीकेशन हमने बनाया। तो
उस एप्लीकेशन में एक हमारे पास यूजर सर्विस होगी, एक हमारे पास पेमेंट सर्विस होगी
और एक हमारे पास लेट्स से ऑर्डर सर्विस है। तो ऐसे हमारे पास डिफरेंट-डिफरेंट अदर
सर्विज भी होंगी। अब एक हमारे पास लेट्स से यूजर है एंड ही इज़ यूजिंग मोबाइल डिवाइस और लैपटॉप डिवाइस डिवाइस कैन बी
एनीथिंग एंड दिस डिवाइस विल बी अ क्लाइंट। तो यह यूजर है और इस यूजर को अब अपना लेट्स से फोन नंबर या ईमेल एड्रेस चेंज
करना है। तो यह कैसे पॉसिबल होगा? एक हमारे पास एपीआई एंड पॉइंट होगा। ऐसा कुछ एपीआई वी1 अपडेट प्रोफाइल। तो इस टाइप का
एक हमारे पास एपीआई एंड पॉइंट होगा। लेकिन क्या यह एपीआई एंड पॉइंट इस यूजर को पता है?
ऑब्वियसली नो। यह यूजर तो सिंपली क्या करेगा कि यह एक बटन पे क्लिक करेगा। लेट्स से अपडेट प्रोफाइल बटन पे और वहां पे फिर
यह अपनी इंफॉर्मेशन को चेंज कर देगा। लेट से फोन नंबर और ईमेल एड्रेस और उसके बाद वह सेव पे क्लिक करेगा। अब जैसे ही यूजर
सेव पे क्लिक करेगा तो यह एपीआई एंड पॉइंट ट्रिगर हो जाएगा। लेकिन क्या इस एपीआई एंड पॉइंट के बारे में और किस माइक्रो सर्विस
को कॉल करना है? क्या यह सब इंफॉर्मेशन इस यूजर को पता है? ऑब्वियसली नहीं। वह तो सिंपली एक बटन पे क्लिक करेगा। अपडेट
प्रोफाइल वहां अपनी इंफॉर्मेशन को अपडेट करेगा एंड देन ही विल क्लिक ऑन सेव। उसको यह एपीआई एंड पॉइंट हमारे बैक एंड में
क्या है? किस माइक्रो सर्विस को कॉल करना है? कौन सी माइक्रो सर्विस क्या करती है? उसको यह कुछ आईडिया नहीं है। वो तो सिंपली
यूआई पे बटन में क्लिक करेगा। अपनी इंफॉर्मेशन चेंज करेगा। इंफॉर्मेशन को सेव कर देगा। तो बेसिकली यूजर को हमारे बैक
एंड के बारे में और माइक्रो सर्विसेस के बारे में कोई इंफॉर्मेशन नहीं है। ना ही उसको इंफॉर्मेशन है इस एपीआई एंड पॉइंट के
बारे में। तो अब क्या हमें इस यूजर को ये सब बताना पड़ेगा कि भाई तुम्हें अपनी इंफॉर्मेशन को चेंज करने के लिए इस एपीआई
एंड पॉइंट को हिट करना पड़ेगा। तो क्या हमें यह सब इंफॉर्मेशन यूजर को देनी पड़ेगी? क्या हमें क्लाइंट को बताना
पड़ेगा कि ये इफ यू वांट टू चेंज योर इंफॉर्मेशन बेसिक इंफॉर्मेशन तो तुम्हें इस माइक्रो सर्विस को कॉल करना पड़ेगा। तो
क्या यह सब हमें क्लाइंट को बताना पड़ेगा? एंड इज इट गुड टू टेल दिस काइंड ऑफ़ इनेशन टू क्लाइंट और यूजर ऑब्वियसली नॉट। तो इस
केस में हमारा एक इंटरफ़ेस काइंड ऑफ़ थिंग आती है। एंड वी कॉल दिस इंटरफ़ेस एज गेटवे। तो, यह
एपीआई गेटवे क्या करता है? यह क्लाइंट की रिक्वेस्ट को एक्सेप्ट करता है और फिर उसको फॉरवर्ड कर देता है। उस रिक्वेस्ट को
फॉरवर्ड कर देता है या राउट कर देता है टू करेक्ट माइक्रो सर्विस। इस केस में यूजर को अपनी बेसिक इंफॉर्मेशन अपडेट करनी थी।
एंड दिस इनेशन इज़ पावर्ड बाय दिस यूजर सर्विस। तो गेटवे को पता होगा कि ठीक है यूजर वांट्स टू चेंज ह इंफॉर्मेशन। तो वह
सिंपली क्या करेगा? वह सिंपली इस रिक्वेस्ट को फॉरवर्ड कर देगा या राउट कर देगा टू दिस माइक्रो सर्विस। तो, यह
काम होता है हमारे एपीआई गेटवे का। एंड एपीआई गेटवे इज़ स्मार्ट इनफ टू अंडरस्टैंड दिस एंड पॉइंट। तो, क्लाइंट रिक्वेस्ट हिट
करेगा और यह वाला एंड पॉइंट, यह वाला एपीआई एंड पॉइंट ट्रिगर हो जाएगा। अब जैसे ही यह
एपीआई एंड पॉइंट गेटवे को मिलेगा तो गेटवे समझ जाएगा कि किस माइक्रो सर्विस को कॉल करना है। तो इस केस में उसको पता रहेगा कि
ओके वी हैव टू इनवोक दिस यूजर माइक्रो सर्विस। तो वो सिंपली इस यूजर माइक्रो सर्विस को इनवोक कर देगा। तो एपीआई गेटवे
को हम एक इंटरफ़ेस समझ सकते हैं जो मतलब बेसिकली इट एक्ट्स एज़ एन इंटरफ़ेस बिटवीन क्लाइंट एंड माइक्रो सर्विसेस। और एक ये
सिंगल एंट्री पॉइंट होता है सारी की सारी एपीआई रिक्वेस्ट के लिए। मतलब क्लाइंट को कोई भी रिक्वेस्ट करना है लेट्स से पेमेंट
से रिलेटेड, ऑर्डर से रिलेटेड कोई भी इंफॉर्मेशन या कोई भी एपीआई रिक्वेस्ट उसे करना है तो उसका सिंगल एंट्री पॉइंट होगा
यह एपीआई गेटवे। बेसिकली यह एपीआई गेटवे क्लाइंट की रिक्वेस्ट को लेगा। एंड ही इज़ स्मार्ट इनफ टू राउट रिक्वेस्ट टू द
करेक्ट करेक्ट बैक एंड माइक्रो सर्विस। तो यह काम होता है हमारे एपीआई गेटवे का। और अब इस एपीआई गेटवे के आने से इस यूजर को
या क्लाइंट को हमारी बैक एंड की माइक्रो सर्विसेस से डायरेक्ट कम्युनिकेट नहीं करना। वो सिर्फ अपनी रिक्वेस्ट को एपीआई
गेटवे को दे देगा। एंड रेस्ट ऑफ़ द थिंग्स विल बी मैनेज्ड बाय दिस एपीआई गेटवे। तो यह काम होता है हमारे एपीआई गेटवे का और
सिंपल वर्ड्स में देखें तो हमारा एपीआई गेटवे हमें बताता है कि यूजर किस माइक्रो सर्विस से बात करना चाहता है। तो
यह हो गया हमारा एपीआई गेटवे। अब देखते हैं एपीआई गेटवे के कुछ एडवांटेजेस या कुछ फैसिलिटीज जो एपीआई गेटवे प्रोवाइड करता
है। तो फर्स्ट है हमारा एपीआई कंपोज़शन। लेट्स से कि आप एक आप Amazon वेबसाइट पर हैं और आपने सेम क्रेडेंशियल से आपके
मोबाइल डिवाइस पर भी लॉग इन किया है एंड कंप्यूटर डिवाइस या लैपटॉप पे भी लॉग इन किया है। एंड यू वांट टू सी दैट माय
ऑर्डर्स पेज। तो ऐसा हो सकता है ऐसा पॉसिबल है कि आपके मोबाइल डिवाइस में आपको उस पेज में कम सेक्शंस दिख रहे होंगे।
लेट्स से आपको सिर्फ एक प्रोडक्ट डिटेल्स का सेक्शन दिख रहा होगा जो आपने ऑर्डर किए हैं और आपको एक इनवॉइस डिटेल का सेक्शन
दिख रहा होगा। दैट्स इट। लेकिन यही चीज यही सेम पेज जब आप कंप्यूटर या लैपटॉप डिवाइस में ओपन करेंगे तो आपको प्रोडक्ट
डिटेल भी दिख रही होगी। जो प्रोडक्ट आपने ऑर्डर किया आपको इनवॉइस डिटेल भी दिख रही होगी। आपको जो आपने प्रोडक्ट ऑर्डर किया
उसके रेटिंग्स एंड रिव्यू दिख रहे होंगे। तो ऐसे आपको डिपेंड्स ऑन डिवाइस। हमारा नंबर ऑफ
सेक्शंस बदल जाते हैं। तो ऐसा क्यों हो रहा है? तो यह भी पॉसिबल है। बेसिकली यह एपीआई गेटवे हमें यह फैसिलिटी प्रोवाइड
करता है। मोबाइल डिवाइस के केस में यह हमें लिमिटेड नंबर ऑफ एपीआई प्रोवाइड करता है। और सेम पेज सेम पेज पे कंप्यूटर या
लैपटॉप डिवाइस के केस में यह हमें ज्यादा एपीआई प्रोवाइड करता है। तो लेट्स से कि हम यदि कंप्यूटर या लैपटॉप यूज़ कर रहे हैं
तो हमें यह प्रोवाइड करेगा एपीआई टू फेच प्रोडक्ट डिटेल्स। तो यह हमारी डिटेल जो होगी वह हमें प्रोडक्ट सर्विस से मिलेगी।
एपीआई टू फेच इनवॉइस डिटेल्स। तो यह हमें इनवॉइस सर्विस से मिलेगी। एपीआई टू फच रेटिंग एंड रिव्यूज तो यह हमें रेटिंग एंड
रिव्यू सर्विस से मिलेगी। तो ऐसे करके एपीआई गेटवे डिफरेंट-डिफरेंट माइक्रो सर्विसेस को कॉल करता है। डिपेंड्स ऑन द
डिवाइस। तो, दिस इज़ द फर्स्ट फैसिलिटी दैट एपीआई गेटवे प्रोवाइड्स। यह एपीआई कंपोज़शन को हम ग्राफ क्यूएल के थ्रू भी मैनेज कर
सकते हैं। ग्राफ क्यूएल को हम फिर किसी नेक्स्ट वीडियो में देखेंगे। बट जस्ट फॉर बेसिक इनेशन मैंने बताया कि इस एपीआई
कंपोज़शन को हम ग्राफ क्यूएल के थ्रू भी मैनेज कर सकते हैं। तो यह हो गया हमारा फर्स्ट फैसिलिटी। जो नेक्स्ट फैसिलिटी है
वह है कि एपीआई गेटवे हमें ऑथेंटिकेशन एंड ऑथराइजेशन में भी हेल्प करता है। बेसिकली इट हैंडल्स ऑथेंटिकेशन एंड ऑथराइजेशन। तो
ये एपीआई गेटवे अ सिर्फ ऑथराइज्ड क्लाइंट्स की रिक्वेस्ट को एक्सेप्ट करता है और उन्हें रिसोर्सेज यूज करने देता है।
तो एक बार हम ओथ 2.0 का फ्लो देखते हैं। तो सबसे पहले क्लाइंट ऑथ सर्वर से एक्सेस टोकन रिक्वेस्ट करेगा और ऑथ सर्वर उसे
एक्सेस टोकन प्रोवाइड करेगा। फिर यह क्लाइंट उस एक्सेस टोकन को एपीआई रिक्वेस्ट के साथ एपीआई गेटवे को प्रोवाइड
करेगा। और फिर यह एपीआई गेटवे उस एक्सेस टोकन को वैलिडेट करेगा फ्रॉम दिस ऑथ सर्वर। और यदि वह टोकन वैलिड होगा तो यूजर
की रिक्वेस्ट को या क्लाइंट की रिक्वेस्ट को एप्रोप्रियट माइक्रो सर्विस की तरफ राउट कर देगा यह एपीआई गेटवे। और यदि यह ए
यदि यह टोकन वैलिड नहीं होगा तो उस रिक्वेस्ट को यह रिजेक्ट कर देगा। तो इससे हमें यह एडवांटेज मिला कि हर सर्विस में
हर माइक्रो सर्विस में अपना-अपना एक ऑथेंटिकेशन मैकेनिज्म होने के बजाय हमने एक ऑथ सर्वर बना दिया और वही ऑथ सर्वर
हमारी सारी की सारी सारे के सारे यूज़र्स को ऑथेंटिकेट करेगा। तो इंस्टेड ऑफ हैविंग ऑथेंटिकेशन मैकेनिज्म इन ईच एंड एव्री
सर्विस हमने उसे एक सेंट्रलाइज्ड ऑथ सर्वर बना के उस उस रिक्वायरमेंट को फुलफिल कर दिया। तो ऐसे एपीआई गेटवे हमारी
ऑथेंटिकेशन में हेल्प करता है। जो नेक्स्ट एडवांटेज है एपीआई गेटवे का वो है सर्विस डिस्कवरी। तो जब हम जब हम लास्ट लेक्चर
में देख रहे थे कि हम माइक्रो सर्विसेस को इंडिविजुअली स्केल कर सकते हैं। लेट्स से हमारे पास कोई एक ये यूजर सर्विस है और इस
यूजर सर्विस पे लेट्स से बहुत बहुत सारा ट्रैफिक आ रहा है। तो हम इसे इंडिविजुअली स्केल कर सकते हैं। तो इंडिविजुअली स्केल
करने का मतलब क्या है? कि हम एक नई मशीन लगा देंगे इस यूजर सर्विस के लिए। बेसिकली हम एक नया सर्वर लगा देंगे। तो अब लेट्स
से एक हमारा यूजर सर्विस का इंस्टेंस यह है। लेट्स से यूजर वन एक है ये। एंड बोथ यूजर सर्विसेस आर रनिंग ऑन
डिफरेंट-डिफरेंट मशीनंस। तो इस मशीन का अपना एक IPपी एड्रेस होगा। राइट? और इस मशीन का भी अपना IPपी एड्रेस होगा। तो ये
दोनों की दोनों यूजर सर्विस जो हैं वो डिफरेंट-डिफरेंट सर्वर पे हैं। इस वजह से इनके IPपी एड्रेससेस चेंज होंगे। IP
एड्रेसेस डिफरेंट होंगे। लेट्स से इसका x.z है। इसका a.b.c
है। और ऐसे ही ये यूज़र्स वन सर्विस लेट्स से 4000 पोर्ट पे चल रही है। और यूजर टू जो है वो 40001 पोर्ट पे चल रही है। तो ये
सारी इंफॉर्मेशन हम कहां स्टोर करते हैं? और इन सबकी ये सारी इंफॉर्मेशनेशंस को कौन हैंडल करता है? तो यहां हमारा आता है
सर्विस डिस्कवरी पिक्चर में। तो ये सर्विस डिस्कवरी क्या करता है कि जभी भी कोई नई माइक्रो सर्विस हम बनाते हैं लेट्स से हम
एक माइक्रो यूजर माइक्रो सर्विस का नया इंस्टेंस बना रहे हैं लेट्स से यूजर थ्री तो हमको हमें इस माइक्रो सर्विस को
रजिस्टर करना पड़ेगा सर्विस डिस्कवरी के साथ। ऐसा हम क्यों करते हैं कि लेट्स से जब क्लाइंट की रिक्वेस्ट आएगी लेट्स से ये
रिक्वेस्ट कि क्लाइंट ने रिक्वेस्ट किया और उसको कुछ ऑर्डर करना है तो ये एंड पॉइंट ट्रिगर होगा स्लश एपीआई v1 ऑर्डर और
यह रिक्वेस्ट जाएगी एपीआई गेटवे के पास। अब ऑर्डर सर्विस के डिफरेंट-डिफरेंट हमारे पास इंस्टेंसेस हो सकते हैं। लेट्स से
ऑर्डर वन, ऑर्डर टू, ऑर्डर थ्री। तो ऐसे करके हमारे पास ऑर्डर के डिफरेंट-डिफरेंट इंस्टेंसेस हो सकते हैं। ऑर्डर वन, ऑर्डर
टू एंड लेट्स से ऑर्डर थ्री। तो अब उनमें से ऐसा होगा कि कुछ माइक्रो
सर्विसेस जो होंगी वो डीमी हो गई होंगी या फिर हम कह सकते हैं कि वो डाउन होंगी ऑलरेडी डाउन। लेट्स से ऑर्डर थ्री जो है
वह एक्टिव नहीं है। इनक्टिव है। ऑर्डर टू माइक्रो सर्विस है। बेसिकली ये दोनों इंस्टेंस हमारे लेट्स से इनएक्टिव हैं।
सिर्फ ये वाला इंस्टेंस है जो एक्टिव है। तो ये सब इंफॉर्मेशनेशन सर्विस डिस्कवरी प्रोवाइड करती है। एपीआई गेटवे सिंपली ये
एंड पॉइंट को समझेगा और वह समझ जाएगा कि ठीक है मुझे ऑर्डर माइक्रो सर्विस को इनवोक करना है। तो ये सर्विस डिस्कवरी से
पूछेगा कि ऑर्डर सर्विस का कौन सा इंस्टेंस फ्री है? तो यह सर्विस डिस्कवरी बताएगी कि ठीक है यह ऑर्डर वन जो इंस्टेंस
है यह अभी अवेलेबल है। इसका IP एड्रेस X.Y.Z है और यह 402 पोर्ट पे चल रही है। तो, यह इंफॉर्मेशन यह सर्विस डिस्कवरी इस
एपीआई गेटवे को बताएगी और फिर एपीआई गेटवे इस रिक्वेस्ट को राउट कर देगा टू करेक्ट बैक एंड माइक्रो सर्विस। बेसिकली ऑर्डर
सर्विस। तो यह काम होता है हमारे सर्विस डिस्कवरी का। इसमें हम यूरेका सर्वर का यूज कर सकते हैं। तो यह हो गए हमारे कुछ
एडवांटेजेस या कुछ फैसिलिटीज जो हमें एपीआई गेटवे प्रोवाइड करता है। अब देखते हैं हम लोड बैलेंसर के बारे में कि लोड
बैलेंसर क्या होता है। तो उससे पहले एक बार रिवाइज़ करते हैं कि एपीआई गेटवे क्या है? तो एपीआई गेटवे सिंपली क्लाइंट की
रिक्वेस्ट को एक्सेप्ट करता है और उसे राउट कर देता है टू करेक्ट बैक एंड माइक्रो सर्विस। अ सिंपल वर्ड्स में हम
देखें तो हम बोल सकते हैं कि एपीआई गेटवे हमें बताता है कि यूजर किस माइक्रो सर्विस से बात करना चाहता है। अब जो लोड बैलेंसर
है, वह हमें यह बताता है कि यूजर माइक्रो सर्विस के किस इंस्टेंस से बात करना चाहता है। तो हमने देखा कि लेट्स से एक हमारे
पास यह यूजर है और यह यूजर हमारी पेमेंट माइक्रो सर्विस से बात करना चाहता है। तो यह हमें कौन बताएगा? यह हमें बताएगा एपीआई
गेटवे। एपीआई गेटवे कि एपीआई गेटवे को एंड पॉइंट मिला। उसके
बाद वह उस एपीआई एंड पॉइंट को देख के समझ जाएगा कि ठीक है यूजर को पेमेंट माइक्रो सर्विस से बात करना है या ही वांट्स टू
इनवोक पेमेंट माइक्रो सर्विस तो एपीआई गेटवे इज़ स्मार्ट इनफ टू डू दिस तो वो यह सिंपली अपनी एक्टिविटी या अपना यहां पे
रोल प्ले करेगा। अब उसके बाद ऐसा पॉसिबल है कि हमारे पास पेमेंट माइक्रो सर्विस के डिफरेंट-डिफरेंट इंस्टेंसेस हो सकते हैं।
लेट्स से पेमेंट वन, पेमेंट टू, पेमेंट टू और ऐसे करके एक और लेट्स से पेमेंट
थ्री। तो ऐसे हमारे पास सेम माइक्रो सर्विस के डिफरेंट-डिफरेंट इंस्टेंसेस हो सकते हैं। और इस केस में अब ऐसा भी पॉसिबल
हो सकता है कि लेट्स से यह जो इंस्टेंस है यह ऑलरेडी बिजी है। बहुत ज्यादा ट्रैफिक ले रहा है। यह वाला इंस्टेंस लेट्स से
इनएक्टिव है। और सिर्फ यह वाला इंस्टेंस एक्टिव है। और इट इज़ अवेलेबल टू टेक ट्रैफिक। तो, अब यह लोड बैलेंसर डिसाइड
करेगा कि माइक्रो सर्विस के किस इंस्टेंस से यूजर
को बात करनी है। लेट्स से यह अवेलेबल है पेमेंट वन तो यह उसको उसकी रिक्वेस्ट को पेमेंट वन की तरफ राउट कर देगा। तो यह काम
होता है हमारा लोड बैलेंसर का। सिंपल वर्ड्स में हम देखें तो लोड बैलेंसर ट्रैफिक को डिस्ट्रीब्यूट कर देता है टू
डिफरेंट माइक्रो सर्विस इंस्टेंसेस। जैसा कि हमने इसमें देखा यूजर को पेमेंट माइक्रो सर्विस से बात करनी थी। तो लोड
बैलेंसर ने देखा कि ठीक है पेमेंट थ्री जो है वह तो ऑलरेडी ट्रैफिक ले रहा है। पेमेंट टू इंस्टेंस है वह अभी इनक्टिव है।
सिर्फ पेमेंट वन इंस्टेंस अभी एक्टिव है और ट्रैफिक लेने के लिए अवेलेबल है। तो लोड बैलेंसर ने यूजर की रिक्वेस्ट को राउट
कर दिया टू दिस माइक्रो सर्विस इंस्टेंस। तो यह काम होता है हमारे लोड बैलेंसर का। अब हम दोनों ही कंपोनेंट्स डिस्कस कर चुके
हैं। हमने एपीआई गेटवे भी देख लिया। हमने लोड बैलेंसर भी देख लिया। और हमने समझा कि एपीआई गेटवे सिंपली हमें बताएगा कि यूजर
किस माइक्रो सर्विस से बात करना चाहता है। बेसिकली हमें एंड पॉइंट मिलेगा। लेट्स से एपीआई
वी1 पेमेंट। तो लेट्स से कि यूजर पेमेंट माइक्रो सर्विस से बात करना चाहता है। तो
यहां पर एपीआई गेटवे इस एंड पॉइंट को देखेगा। एंड ही इज़ स्मार्ट इनफ टू अंडरस्टैंड कि ओके यूजर वांट्स टू टॉक टू
पेमेंट माइक्रो सर्विस। अब इस पेमेंट माइक्रो सर्विस के डिफरेंट-डिफरेंट इंस्टेंसेस हो सकते हैं। लेट्स से P1, P2
एंड P3। तो यूजर की रिक्वेस्ट को किस इंस्टेंस पर फॉरवर्ड करना है यह डिसाइड करता है हमारा लोड बैलेंसर।
अब कुछ लोड बैलेंसर्स में रिक्वेस्ट को सही माइक्रो सर्विस पे राउट करने की भी
कैपेबिलिटी होती है। अह वो वो लोड बैलेंसर्स में आते हैं हमारे एडब्ल्यूएस के लोड बैलेंसर्स। तो इनमें यह कैपेबिलिटी
होती है कि यह यूजर की रिक्वेस्ट को सही बैक एंड माइक्रो सर्विस पर राउट कर सकते हैं। पर दीज़ एडब्ल्यूएस लोड बैलेंसर्स आर
वेरी एक्सपेंसिव। तो ज्यादा हम इसे यूज़ नहीं करते। मतलब हम कह सकते हैं कि अभी हम गेटवे को भी कंसीडर कर रहे हैं। अब हमने
देख लिया एपीआई गेटवे लोड बैलेंसर। अब हम देखते हैं कुछ रियल वर्ल्डेंट क्वेश्चंस जो अक्सर इंटरव्यू में पूछे जाते हैं। तो
उनमें सबसे पहला है कि इफ एपीआई गेटवे इज अ सिंगल एंट्री पॉइंट इफ एपीआई गेटवे इज अ सिंगल एंट्री पॉइंट
देन हाउ डस इट हैंडल मिलियंस ऑफ रिक्वेस्ट? और दूसरा क्वेश्चन हमारा आ सकता है कि क्या यह सच में सिंगल एंट्री
पॉइंट होता है? और एक और क्वेश्चन जो अक्सर पूछा जाता है वह है कि वि कम्स फर्स्ट एपीआई गेटवे
एपीआई गेटवे और लोड बैलेंसर। तो दोनों में से हम क्या पहले यूज़ करते हैं या पहले क्या
लगाते हैं? एपीआई गेटवे या लोड बैलेंसर। तो हमने देखा कि हमारे एप्लीकेशन में दो माइक्रो सर्विसेस हैं।
एक हमारे पास ऑर्डर माइक्रो सर्विस है और एक हमारे पास यूजर माइक्रो सर्विस है। और दोनों ही माइक्रो सर्विसेस को हमने
हॉरिजॉन्टली स्केल कर दिया। तो अब हमारे पास इन माइक्रो सर्विसेस के डिफरेंट-डिफरेंट इंस्टेंसेस होंगे। राइट?
इस ऑर्डर माइक्रो सर्विस के हमारे पास डिफरेंट इंस्टेंस होंगे। इस यूजर माइक्रो सर्विस के हमारे पास डिफरेंट इंस्टेंस
होंगे। तो अब इस अवेले एपीआई गेटवे और लोड बैलेंसर को समझने के लिए कि वाकई में यह एपीआई गेटवे सिंगल एंट्री पॉइंट है या
नहीं और एपीआई गेटवे पहले आता है या लोड बैलेंसर। तो इन क्वेश्चंस का आंसर जानने के लिए हमें इसे एक लार्जर स्केल पे देखना
होगा। जहां पे हमारे पास अवेलेबिलिटी ज़ोन होगा, अवेलेबल रीजंस होगा, डिफरेंट रीजंस होंगे। तो एक बार समझते हैं ये
अवेलेबिलिटी ज़ोन और रीजंस को। तो लेट्स से कि हमारे पास एक यूएसए का स्टेट है मैसच्यूसेस।
और इस स्टेट के अंदर हमारे पास डिफरेंट-डिफरेंट सिटीज हैं। लेट्स से हमारे पास एक बॉस्टन सिटी है और एक हमारे
पास कैंब्रिज सिटी है। तो ये हमारे पास इस स्टेट के अंदर ऐसे दो सिटीज हैं। तो अब हम इस स्टेट को एक रीजन कंसीडर कर सकते हैं।
कि एक हमारा कंप्लीट रीजन हो गया। और इस रीजन के अंदर हमारे पास ये सिटीज हैं। हमारे पास बॉस्टन है। हमारे पास कैमब्रिज
है। तो, हम इन सिटीज को अवेलेबिलिटी ज़ोन कंसीडर कर सकते हैं। लेट्स से ये हो गया अवेलेबिलिटी ज़ोन वन। यह हो गया
अवेलेबिलिटी ज़ोन टू। अब इन सिटीज के अंदर हमारे डेडिकेटेड डेटा सेंटर हो सकता है। हमारे एप्लीकेशन का। तो, लेट्स से इस
Cambridge में भी हमारे एप्लीकेशन का एक डेडिकेटेड डेटा सेंटर होगा। सिमिलरली हमारे पास एक और रीजन हो सकता है। तो ऐसे
करके हमारे पास डिफरेंट-डिफरेंट रीजंस और डिफरेंट-डिफरेंट अवेलेबिलिटी ज़ोन हो सकते हैं। अब इनकी हमें नीड क्या है? कि लेट्स
से अ हमारा बॉस्टन अवेलेबिलिटी ज़ोन डाउन हो गया। तो इस केस में हम क्या कर सकते हैं? यूजर की
रिक्वेस्ट को या सारे के सारे ट्रैफिक को इस दूसरे अवेलेबिलिटी ज़ोन में राउट कर सकते हैं। और लेट्स से यदि हमारा दोनों के
दोनों ही अवेलेबिलिटी ज़ोन डाउन हो जाते हैं तो इस स्टेट इस केस में हम हमारा रीजन ही स्विच कर सकते हैं। लेट्स से अभी रीजन
मैसेज चूसेट्स था। तो अब हम इसे चेंज करके न्यूयॉर्क कर सकते हैं। तो यह होता है हमारा रीजन एंड अवेलेबिलिटी ज़ोन। तो अब
समझते हैं एपीआई गेटवे और लोड बैलेंसर को एक एग्जांपल की हेल्प से। तो लेट्स से कि ये एक हमारा यूजर है और यह यूजर कुछ ऑर्डर
करना चाहता है लेट्स से Amazon काइंड ऑफ़ वेबसाइट से। तो वो सिंपली एक प्लेस ऑर्डर बटन पे क्लिक करेगा। ही विल सिंपली क्लिक
ऑन प्लेस ऑर्डर बटन। अब जैसे ही वो इस प्लेस ऑर्डर बटन पे क्लिक करेगा तो एक एपीआई एंड पॉइंट ट्रिगर होगा। लेट्स से
स्लश एपीआई v1 ऑर्डर तो ऐसा कुछ एक एपीआई एंड पॉइंट ट्रिगर होगा। अब जैसे ही यूजर प्लेस ऑर्डर
बटन पे क्लिक करेगा तो ब्राउज़र एक रिक्वेस्ट इस रिक्वेस्ट को इनिशिएट करेगा। अब हमारा ब्राउज़र देखेगा कि यहां पर ये
इंग्लिश के कुछ अल्फाबेट्स आ गए हैं जो कि हमारा डोमेन नेम है। तो हमारा ब्राउज़र कंफ्यूज हो जाएगा क्योंकि वो तो IP
एड्रेसेस में बात करता है। उसे हम करेक्ट IPपी एड्रेस देंगे। वो हमारी रिक्वेस्ट को सही जगह राउट कर देगा। सही जगह पहुंचा
देगा। पर अब यहां पे हमारे पास डोमेन नेम है और हमें चाहिए IPपी एड्रेस और किसका IPपी एड्रेस कौन सा IPपी एड्रेस ये भी
हमें डिसाइड करना है। तो ब्राउज़र हमारा डीएनएस को कॉल करेगा और ये डीएनएस डीएनएस लोड बैलेंसर्स की हेल्प से हमें IP एड्रेस
ला के देगा। लेकिन वही सेम क्वेश्चन कौन सा IPपी एड्रेस किसका IPपी एड्रेस तो हमारा लेट्स से एप्लीकेशन एक कैलिफोर्निया
रीजन में होस्टेड है और एक है हमारा मैसच्यूसेस रीजन में तो ये हमारे पास दो डिफरेंट
रीजंस हैं और हमने हर रीजन के लिए एक अलग एपीआई गेटवे कॉन्फ़िगर करके रखा है। लेट्स से ये हो गया हमारा एपीआई गेटवे ए और यह
हो गया हमारा एपीआई गेटवे बी। तो अब यह जो डीएनएस लोड बैलेंसर क्या करेगा? यह डीएनएस लोड बैलेंसर हमारे इन रीजन वन और रीजन टू
के एपीआई गेटवेज़ के IP एड्रेसेस को ला के देगा। तो हमारे डीएनएस लोड बैलेंसर को डिफरेंट-डिफरेंट रीजंस के एपीआई गेटवे के
IPपी एड्रेसेस मिल जाएंगे। तो उसके बाद ये देखिएगा कि कौन सा रीजन यूजर के क्लोज है। लेट्स से ये हमारा यूजर फाइव है जिसने ये
रिक्वेस्ट की थी। तो ये हमारा यूजर फाइव कैलिफोर्निया रीजन के पास है। तो हम क्या करेंगे? हम इस डोमेन नेम की जगह हम यह
एपीआई गेटवे ए का IPपी एड्रेस यूज़ करेंगे। क्यों? क्योंकि हमारा यूजर फाइव जो है ये कैलिफोर्निया रीजन के कैलिफोर्निया रीजन
के पास है। तो इसलिए हम एपीआई गेटवे ए का IPपी एड्रेस यूज़ करेंगे। तो ये हमारा
डीएनएस लोड लोड बैलेंसर क्या करेगा कि हमें IP एड्रेस ला के देगा हमारे अ गेटवे का एपीआई गेटवे का और उसमें भी वो फाइंड
करेगा कि यूजर के क्लोज वाला रीजन कौन सा है। तो इस केस में एपीआई गेटवे इज़ क्लोज टू यूजर। तो हम यह वाला IPपी एड्रेस यूज़
करेंगे। अब ब्राउज़र इस रिक्वेस्ट को इनिशिएट करेगा और एक HTTP रिक्वेस्ट हिट कर देगा। अब यह रिक्वेस्ट जाएगी इस एपीआई
गेटवे के पास। अब इस एपीआई गेटवे को क्या करना है कि इसको ऑर्डर माइक्रो सर्विस को इनवोक करना
है। अब यहां पे भी हमारे पास डिफरेंट-डिफरेंट अवेलेबिलिटी ज़ोन है। हमारे पास एक लॉस एंजेलिस है। हमारे पास
सैन फ्रांसिस्को है। तो इस केस में अवेलेबिलिटी ज़ोन अगेन हमारे सर्विस डिस्कवरी के पास जाएगा और उससे पूछेगा कि
सबसे पहले मुझे मेरा क्लोजेस्ट अवेलेबिलिटी ज़ोन बताओ। यूजर का क्लोजेस्ट अवेलेबिलिटी ज़ोन। तो लेट्स से कि सर्विस
डिस्कवरी बताता है कि ओके Aजी1 जो है वो यूजर के क्लोज है। पहली चीज उसने यह बताई और दूसरी चीज हमें क्या चाहिए? हमें इस
लोड बैलेंसर का भी एड्रेस चाहिए। तभी तो यह एपीआई गेटवे ट्रैफिक को राउट करेगा लोड बैलेंसर में। तो सर्विस डिस्कवरी यह हमारा
सर्विस डिस्कवरी इस लोड बैलेंसर का एड्रेस भी बताएगा। तो यह हमारे लोड बैलेंसर का एड्रेस भी बताएगा। तो यह दो चीजें हमें
बताएगा क्लोजेस्ट नियरेस्ट अवेलेबिलिटी जोन इस केस में लेट्स से लॉस एंजेलिस और यह बताएगा हमारे लोड बैलेंसर का एड्रेस।
उसके बाद यह एपीआई गेटवे इस रिक्वेस्ट को राउट कर देगा या ट्रैफिक को राउट कर देगा टू दिस लोड बैलेंसर।
अब हमारे पास यहां भी माइक्रो सर्विसेस यू कैन सी कि हमारे पास डिफरेंट-डिफरेंट ऑर्डर माइक्रो सर्विज हैं या ऑर्डर
माइक्रो सर्विस के डिफरेंट-डिफरेंट इंस्टेंसेस हैं। लेट्स से एक हमारे पास O1 है, एक हमारे पास O2 है और एक हमारे पास
O3 है। तो अब हमारा लोड बैलेंसर डिसाइड करेगा कि यूजर की रिक्वेस्ट को किस ऑर्डर माइक्रो सर्विस में राउट करना है बेस्ड ऑन
ट्रैफिक एंड हेल्थ चेक। तो ये सब पैराटर्स चेक करने के बाद हमारा लोड बैलेंसर यूजर की रिक्वेस्ट को राइट राउट
कर देगा टू करेक्ट अ ऑर्डर सर्विस ऑर्डर माइक्रो सर्विस इंस्टेंस। तो यहां हमारा एपीआई गेटवे रीजन लेवल पे काम कर रहा है।
हमारे रीजन के अंदर डिफरेंट-डिफरेंट अवेलेबिलिटी ज़ोन होंगे। तो हमारा एपीआई गेटवे सर्विस डिस्कवरी की मदद से पता
करेगा कि हमें किस किस अवेलेबिलिटी ज़ोन पे हमारे ट्रैफिक को राउट करना है। बेसिकली वो क्लोजेस्ट या नियरेस्ट अवेलेबिलिटी ज़ोन
फाइंड करेगा और फिर उस लोड बैलेंसर का एड्रेस फाइंड करेगा। और ऐसे करके वह ट्रैफिक को राउट करेगा डिफरेंट
अवेलेबिलिटी ज़ों्स में। तो यह हमारा एपीआई गेटवे रीजन लेवल पर काम कर रहा है। और सिमिलरली यह हमारा लोड बैलेंसर
अवेलेबिलिटी ज़ोन लेवल पे काम कर रहा है। बेसिकली यह डिसाइड करेगा कि माइक्रो सर्विस के किस इंस्टेंस पे यूजर की
रिक्वेस्ट को राउट करना है। तो ये हो गया हमारा एपीआई गेटवे और ये हो गया हमारा लोड बैलेंसर। अब लेट्स से कि हमारा
अवेलेबिलिटी ज़ोन कंप्लीटली डाउन हो गया। लॉस एंजेलिस कंप्लीटली डाउन हो गया। तो इस केस में एपीआई गेटवे सर्विस डिस्कवरी को
पूछेगा कि मुझे क्लोजेस्ट अवेलेबिलिटी ज़ोन बताओ यूजर के इस यूजर फाइव के। तो सर्विस डिस्कवरी बोलेगा कि क्लोजेस्ट अवेलेबिलिटी
ज़ोन तो अवेलेबिलिटी ज़ोन वन है। लेकिन यह डाउन है। तो, वह एक और अवेलेबिलिटी ज़ोन। सेकंड क्लोजेस्ट अवेलेबिलिटी ज़ोन बताएगा
यूजर के व्हिच इज़ अवेलेबिलिटी ज़ोन टू सैन फ्रांसिस्को। और इसका लोड बैलेंसर लोड बैलेंसर का एड्रेस भी वो बताएगा। तो यहां
पे हमें यह दो चीजें मिलेंगी और इसके बाद हम ट्रैफिक को राउट कर देंगे। बेसिकली यह एपीआई गेटवे ट्रैफिक को राउट कर देगा टू
दिस लोड बैलेंसर। क्योंकि अब इसे लोड बैलेंसर का एड्रेस मिल गया तो यह ट्रैफिक को यहां राउट कर देगा। अब लेट्स से कि यदि
हमारे दोनों ही अवेलेबिलिटी ज़ोन डाउन हो जाते हैं तो इस केस में हम कंप्लीटली रीजन को ही स्विच कर देंगे। क्योंकि अब हमारे
पास डिफरेंट रीजंस भी हैं। तो यदि हमारा लॉस एंजेलिस अवेलेबिलिटी ज़ोन डाउन होता है, सैन फ्रांसिस्को भी डाउन होता है। तो
इस केस में हम रीजन को ही स्विच कर देंगे। और इस केस में अब यह डीएनएस लोड बैलेंसर एपीआई गेटवे बी के IPपी एड्रेस को देगा और
फिर हमारी एक नई hटीtp रिक्वेस्ट ट्रिगर होगी जो जाएगी इस एपीआई गेटवे बी के पास। तो ऐसे हमारे एपीआई गेटवे और लोड बैलेंसर
काम करते हैं। बेसिकली हमने इन एपीआई गेटवेज के पब्लिक आईपीस को यूज़ किया और हमने हमारी रिक्वेस्ट को डिफरेंट-डिफरेंट
रीजंस में डिफरेंट-डिफरेंट अवेलेबिलिटी ज़ोन में राउट किया। तो अब जो हमारा पहला क्वेश्चन था कि एपीआई गेटवे सिंगल एंट्री
पॉइंट है। तो ये कैसे मिलियंस ऑफ यूज़र्स की रिक्वेस्ट को हैंडल करता है? तो यस इट इज़ अ सिंगल एंट्री पॉइंट क्योंकि इसके
पीछे हमारी थाउजेंड्स ऑफ माइक्रो सर्विसेस हो सकती हैं। बट स्टिल इट इज़ इट कैन ईज़ली मैनेज
ट्रैफिक और इट कैन ईज़ली मैनेज मिलियंस ऑफ़ यूज़र्स रिक्वेस्ट। कैसे? क्योंकि यहां पे हमारा लोड बैलेंसर आ गया। हमारे पास
डीएनएस बेस्ड लोड बेस्ड लोड बैलेंसर है। तो एक ही एपीआई गेटवे पे हम कंप्लीटली ट्रैफिक को मूव नहीं करेंगे। हम रीजन वाइज़
जाएंगे। लेट्स से इफ समवन इज़ फ्रॉम इंडिया तो हम इंडिया के क्लोज वाले रीजन में उस यूजर की रिक्वेस्ट को राउट करेंगे। तो ऐसे
रीजन वाइज़ हम एपीआई गेटवेज़ को कॉन्फ़िगर करेंगे और एपीआई गेटवे ईजीली मिलियंस ऑफ यूज़र्स को हैंड उनकी रिक्वेस्ट को हैंडल
कर लेगा। सो दिस इज़ अबाउट एपीआई गेटवे। और जो हमारा सेकंड क्वेश्चन कि व्हिच कम्स फर्स्ट। तो यस डीएनएस बेस्ड लोड बैलेंसर
कम्स फर्स्ट और फिर उसके बाद हमारे आते हैं एपीआई गेटवे। तो आई थिंक दिस इज़ इनफ फॉर दिस वीडियो। और
अब आपको समझ आ गया होगा कि कैसे हम डीएनएस बेस्ड लोड बैलेंसर की मदद से ट्रैफिक को डिफरेंट रीजंस में स्विच कर सकते हैं।
लेट्स से हमारा एक कंप्लीट रीजन ही डाउन हो गया। तो हम ट्रैफिक को किसी दूसरे रीजन में स्विच कर सकते हैं। तो डीएनए स्लोड
बैलेंसर हमें इसमें हेल्प करता है और हम इससे लेटेंसी भी रिड्यूस कर सकते हैं। लेट्स से कि हमारा ह्यूज ट्रैफिक इज़ कमिंग
फ्रॉम इंडिया। तो हम क्लोजेस्ट पॉसिबल रीजन में यूज़र्स की रिक्वेस्ट को राउट कर देंगे। एंड देन वी कैन रिड्यूस द लेटेंसी
ऑफ़ आवर सिस्टम। सो दिस इज ऑल फॉर दिस वीडियो एंड वी विल सी यू इन द नेक्स्ट वीडियो और नेक्स्ट वीडियो में हम बात
करेंगे लोड बैलेंसर के डिफरेंट टाइप्स की और कुछ लोड बैलेंसर बैलेंसिंग एल्गोरिदम्स की। सो यस दिस इज़ ऑल फॉर दिस वीडियो। वी
विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन बय शो सम लव। थैंक्स। [संगीत]
हे एवरीवन, वेलकम बैक। वेलकम टू दिस अल्टीमेट सिस्टम डिज़ाइन प्लेलिस्ट सीरीज। तो, यह वीडियो इस सीरीज का तीसरा वीडियो
होने वाला है। और इस वीडियो में हम देखेंगे लोड बैलेंसिंग, इट्स टाइप्स एंड सम ऑफ़ द लोड बैलेंसिंग एल्गोरिदम्स। तो,
स्टार्ट करते हैं और एक बार डिस्कस करते हैं कि इससे पिछले लेक्चर में हमने क्या-क्या डिस्कस किया। तो, लास्ट लेक्चर
में हमने देखा एपीआई गेटवे वर्सेस लोड बैलेंसर। और साथ ही साथ हमने देखे कुछ इंपॉर्टेंट क्वेश्चंस जैसे कि इफ एपीआई
गेटवे इज़ अ सिंगल एंट्री पॉइंट देन हाउ डस इट हैंडल मिलियंस ऑफ रिक्वेस्ट और हमने देखा कि एक रियल वर्ल्ड प्रोजेक्ट में
रियल वर्ल्ड एप्लीकेशन में पहले एपीआई गेटवे आता है या लोड बैलेंसर? तो हमने ये सारे क्वेश्चंस लास्ट लेक्चर में डिस्कस
किए। तो लास्ट लेक्चर से आपको लोड बैलेंसिंग का एक ब्रीफ आईडिया लग गया होगा कि यह क्या चीज है? यह कैसे काम करता है।
तो इस लेक्चर में हम देखते हैं इसे थोड़ा डेप्थ में। हम इसके कुछ टाइप्स को समझते हैं। हम लोड बैलेंसिंग को अचीव करने की
कुछ एल्गोरिदम्स देखते हैं। तो स्टार्ट करते हैं और देखते हैं एक बार कि लोड बैलेंसिंग होता क्या है? तो जैसा कि हमने
डिस्कस किया था पिछले कुछ लेक्चर्स में कि हम हमारी माइक्रो सर्विसेस को इंडिविजुअली स्केल कर सकते हैं। लेट्स से कि हमारे पास
हमारा कोई लेट्स से चैटिंग एप्लीकेशन है तो वहां पे हमारे पास एक चैट सर्विस होगी। तो हमारे पास यहां पे एक चैट सर्विस होगी।
तो अब हम इस चैट सर्विस को इंडिविजुअली स्केल कर सकते हैं। और इसे इंडिविजुअली स्केल करने की नीड क्या है? कि लेट्स से
हमारी जो चैट सर्विस पे है उस पे काफी सारा ट्रैफिक आने लग गया। तो उसकी वजह से क्या होगा कि हमारा सिस्टम स्लो हो सकता
है। तो हम क्या कर सकते हैं कि हम इस चैट सर्विस को इंडिविजुअली स्केल कर सकते हैं। इंडिविजुअ इंडिविजुअली स्केल करने का मतलब
क्या है? कि हम इसे हॉरिजॉन्टली स्केल कर सकते हैं। हम एक नई चैट सर्विस नई चैट सर्विस का इंस्टेंस बना सकते हैं।
लेट्स से ये हो गया हमारा चैट सर्विस का फर्स्ट इंस्टेंस। यह हो गया हमारा चैट सर्विस का सेकंड इंस्टेंस।
तो बेसिकली हमने क्या किया कि पहले हमारी जो चैट सर्विस थी वो एक सर्वर पे चल रही थी। अब हमने उसे उसके लिए चैट सर्विस के
लिए एक और सर्वर बढ़ा बढ़ा दिया। तो हमने बेसिकली हमारी चैट सर्विस को हॉरिजॉन्टली स्केल कर दिया। तो ये हमने देखा था कि हम
हमारी सर्विस को इंडिविजुअली स्केल कर सकते हैं। अब हम कैसे डिसाइड करेंगे कि यूजर की रिक्वेस्ट को हमें किस चैट सर्विस
के इंस्टेंस पे राउट करना है। लेट्स से कि ये एक यूजर है और इस यूजर को एक मैसेज भेजना। लेट्स से कि यह यूजर ए है और हमारे
पास यह यूजर बी है। तो लेट्स से कि इस यूजर ए को एक मैसेज भेजना है यूजर बी को M1 मैसेज। तो अब क्या यह यूजर ए डायरेक्ट
इस यूजर बी को मैसेज भेज सकता है? नहीं भेज सकता। तो इन दोनों के कम्युनिकेशन के लिए हमें एक सर्वर की नीड पड़ेगी। तो यह
हमारा एक सर्वर हो गया। और यह हमारा सर्वर हमारी चैट सर्विस को मैनेज कर रहा है। तो बेसिकली हम कह सकते हैं कि यह हमारी एक
चैट सर्विस है। तो हमें इन दोनों के कम्युनिकेशन के लिए एक चैट सर्विस या एक सर्वर की नीड है। तो इनका कम्युनिकेशन
कैसे होगा कि सबसे पहले यह यूजर ए इस M1 मैसेज को इस सर्वर को देगा और उसको बताएगा कि मुझे इस मैसेज को यूजर बी को पहुंचाना
है। तो यह सर्वर इस मैसेज को यूजर बी को दे देगा। तो ऐसे करके इनका कम्युनिकेशन होगा। अब बेसिकली कहने का
मतलब यह है कि इस यूजर ए को यदि यूजर बी को मैसेज भेजना है तो उसको वाया सर्वर जाना पड़ेगा। मतलब उसे पहले इस सर्वर को
मैसेज देना पड़ेगा। तो इस सर्वर को मैसेज देना पड़ेगा। और अब हमने देखा कि हमारे पास चैट सर्विस के मल्टीपल इंस्टेंसेस
हैं। लेट्स से एक हमारे पास ये चैट सर्विस का फर्स्ट इंस्टेंस है चैट वन और एक हमारे पास ये सेकंड इंस्टेंस है और ये हमारा
यूजर ए है। इसको मैसेज भेजना है लेट्स से M1 मैसेज भेजना है यूजर बी को। तो यहां पे लेट्स से
हमारा हो गया यूजर बी। तो अब कैसे हम डिसाइड करेंगे कि इस यूजर की रिक्वेस्ट को इस यूजर ए की रिक्वेस्ट को किस किस
माइक्रो सर्विस इंस्टेंस पे भेजना है या किस सर्वर पे भेजना है। तो उसके लिए हमारा आता है लोड बैलेंसर। यह लोड बैलेंसर
बेसिकली क्या करता है? यह हमारे ट्रैफिक को डिस्ट्रीब्यूट कर देता है टू मल्टीपल माइक्रो सर्विस इंस्टेंसेस।
यह हेल्थ चेक करता है कि कौन सी हमारी माइक्रो सर्विस इंस्टेंस एक्टिव है, एक्टिव नहीं है और यह ट्रैफिक को देखता है
कि कौन सी माइक्रो सर्विस इंस्टेंस ट्रैफिक ले रही है और कौन सी माइक्रो सर्विस इंस्टेंस ट्रैफिक लेने के लिए
अवेलेबल है। तो ये सारे पैरामीटर्स के बेसिस पे ये डिसाइड करता है कि यूजर की रिक्वेस्ट को किस माइक्रो सर्विस इंस्टेंस
पे राउट करना है। तो बेसिकली लोड बैलेंसर का क्या काम क्या है? कि यह ट्रैफिक को डिस्ट्रीब्यूट कर देता है अमोंग मल्टीपल
माइक्रो सर्विस इंस्टेंसेस। तो, यह यूजर रिक्वेस्ट करेगा एक पोस्ट रिक्वेस्ट और यह बोलेगा कि मुझे इस M1 मैसेज को यूजर बी को
भेजना है। तो, यह लोड बैलेंसर क्या करेगा? लेट्स से कि यदि यह चैट टू यह वाला इंस्टेंस हमारा डाउन है या हम कह सकते हैं
कि अभी ट्रैफिक लेने के लिए रेडी नहीं है तो यह लोड बैलेंसर क्या करेगा कि यह इस यूजर ए की रिक्वेस्ट को इस चैट सर्विस वन
इंस्टेंस को दे देगा और फिर यह चैट सर्विस यह वाला सर्वर हमारा इस रिक्वेस्ट को भेज देगा यूजर बी को। तो इसके लिए हम वेब
सॉकेट कम्युनिकेशन यूज़ करते हैं। तो जो कि मैंने हमारे सिस्टम डिज़ाइन प्लेलिस्ट में ऑलरेडी डिस्कस किया है। सो इफ यू वांट टू
लर्न अबाउट वेब सॉकेट कम्युनिकेशन सो आई आई वुड हाइली रिकमेंड यू टू वॉच दोज़ वीडियोस। तो ये इस वीडियो का पार्ट नहीं
है। तो आई एम नॉट डिस्कसिंग वेब सॉकेट कम्युनिकेशन इन डेप्थ। तो ऐसे करके लोड बैलेंसर हमारा अह ट्रैफिक को राउट करने
में हेल्प करता है टू मल्टीपल माइक्रो सर्विस इंस्टेंसेस। तो ये हो गया हमारा लोड बैलेंसर। अब हम
देखते हैं कि हमारे लोड कुछ लोड बैलेंसर के टाइप्स। तो हमारे पास लोड बैलेंसर के दो टाइप्स होते हैं। फर्स्ट होता है L4
लोड बैलेंसर और एक होता है हमारा L7 लोड बैलेंसर। अब ये L4 और L7 क्या है? तो हमने कॉलेज स्टेज में कंप्यूटर नेटवर्क्स
में ओएसआई मॉडल पढ़ा। हमने देखा कि उस ओएसआई मॉडल में हमारे पास सेवन डिफरेंट लेयर्स होती है। पहली हमारा फिजिकल लेयर
होती है। फिर हमारी डेटा लिंक लेयर होती है। हमारे पास नेटवर्क लेयर होती है। हमारे पास ट्रांसपोर्ट लेयर होती है। ये
जो ट्रांसपोर्ट लेयर है वो हमारी फोर्थ लेयर होती है। उसके बाद हमारे पास सेशन लेयर होती है। हमारे पास प्रेजेंटेशन लेयर
होती है। और लास्ट में हमारे पास एक सेवंथ लेयर व्हिच इज़ एप्लीकेशन लेयर। तो यह हमारे पास सेवंथ लेयर एक एप्लीकेशन लेयर
होती है। तो यह हमारे ओएसआई मॉडल में डिफरेंट लेयर्स होती हैं। अब हम हमारे लोड बैलेंस को ये L4 लोड बैलेंसर को और L7 लोड
बैलेंसर को नाम से ही समझ सकते हैं। इस L4 लोड बैलेंसर का मतलब है कि हमारे ओएसआई मॉडल के फोर्थ लेवल पे या फोर्थ लेयर पे
काम करता है। व्हिच इज़ आवर ट्रांसपोर्ट लेयर। तो ये हमारा L4 लोड बैलेंसर ट्रांसपोर्ट लेयर पे काम करता है। और जो
हमारा L7 लोड बैलेंसर है वो इस एप्लीकेशन लेयर पे काम करता है। तो अब एक-एक करके इस इन लोड बैलेंसर्स के टाइप को समझते हैं L4
और L7 को। तो सबसे पहले स्टार्ट करते हैं L4 लोड बैलेंसर से। तो यह जो हमारा L4 लोड बैलेंसर होता है, यह हमारा ट्रांसपोर्ट
लेयर पे काम करता है। ट्रांसपोर्ट लेयर पर काम करता है। और अब हमारे पास ट्रांसपोर्ट लेयर में हमारे पास
दो डिफरेंट प्रोटोकॉल्स होते हैं। हमारे पास एक TCP प्रोटोकॉल होता है। हमारे पास यूडीपी प्रोटोकॉल होता है। तो हम कह सकते
हैं कि हमारा जो ये L4 लोड बैलेंसर है, यह TCP और यूडीपी लेवल पे काम करता है। इसका मतलब यह है कि यह जो हमारा L4 लोड बैलेंसर
है यह HTTP रिक्वेस्ट हेडर्स कि हमने लेट्स से रिक्वेस्ट के साथ कुछ
हेडर पास किया तो यह ना तो HTTP रिक्वेस्ट को समझता है ना हेडर्स को समझता है। यह कुकीज़ को नहीं समझता। यह HTTP पाथ को नहीं
समझता। तो बेसिकली यह जो हमारा L4 लोड बैलेंसर है यह TCP यूडीपी लेवल पर काम करता है। इस
वजह से उसे वो ना तो यह HTTP रिक्वेस्ट HTTP रिक्वेस्ट को रीड कर सकता है ना हेडर्स को रीड कर सकता है ना कुकीज़ को रीड
कर सकता है ना ही HTTP पाथ को रीड कर सकता है। लेट्स से कि हमारे पास एक ऐसा कोई पाथ है सश एपीआई वी1 स्लश ऑर्डर तो ये हमारा
एल4 लोड बैलेंसर इस डेटा को रीड नहीं कर पाएगा तो फिर यह कैसे पता लगाएगा कि हमें यूजर की रिक्वेस्ट को कहां राउट करना है
तो यह एल4 लोड बैलेंसर क्या करता है यह कुछ चीजें नोटिस करता है यह देखता है सोर्स का IP एड्रेस
हमारे सोर्स का या क्लाइंट का IPपी एड्रेस पोर्ट यह देखता है डेस्टिनेशन का IPपी एड्रेस और पोर्ट
और यह देखता है प्रोटोकॉल वेदर इट इज़ अ TCP प्रोटोकॉल और यूडीपी प्रोटोकॉल। तो ये कुछ चीजें हैं जिसके बेसिस पे ये एल4 लोड
बैलेंसर डिसाइड करता है कि यूजर की रिक्वेस्ट को कहां राउट करना है। तो इसको एक एग्जांपल के थ्रू समझते हैं। लेट्स से
कि हमारे पास एक चैटिंग एप्लीकेशन है और उस चैटिंग एप्लीकेशन में हमारे पास एक चैट सर्विस है और उस चैट सर्विस को हमने
हॉरिजॉन्टली स्केल कर दिया। तो अब हमारे पास चैट सर्विस के मल्टीपल इंस्टेंसेस हैं। हमारे पास चैट सर्विस का ये फर्स्ट
इंस्टेंस है, सेकंड इंस्टेंस है एंड थर्ड इंस्टेंस है। और ये तीनों चैट सर्विसेस हमारी डिफरेंट-डिफरेंट सर्वर्स पे रन हो
रही हैं। हमारे पास सर्वर वन है, सर्वर टू है और सर्वर थ्री है। तो इन तीनों सर्वर के अपने-अपने IPपी एड्रेस हैं। राइट? और
हम हमने क्या किया कि हमने इस चैट सर्विस को हर सर्वर में 5000 पोर्ट पे रन किया। तो ये हो गया हमारा चैट सर्विस के बारे
में। अब लेट्स से कि हमारे पास एक क्लाइंट है। ये हमारा क्लाइंट है। तो उस क्लाइंट का भी कुछ IPपी एड्रेस होगा। क्लाइंट
डिवाइस का भी IP एड्रेस होगा। तो लेट्स से ये उसका एक कोई IP एड्रेस है और लेट्स से एक डिफ़ॉल्ट पोर्ट है जो OS ने उसे असाइन
की। अब यहां पे हमारा L4 लोड बैलेंसर है। तो अब देखते हैं कि यह काम कैसे करता है। तो क्लाइंट हमने जैसे देखा कि L4 लोड
बैलेंसर को ट्रैफिक को राउट करने के लिए यह कुछ चीजें कॉन्फ़िगर करता है। उसमें सबसे पहला है
सोर्स IPपी एड्रेस और पोर्ट, डेस्टिनेशन का IP एड्रेस और पोर्ट और TCP और यूडीपी प्रोटोकॉल। तो इनके बेसिस पर यह फाइंड आउट
करता है। अब यह हमारी चैट सर्विस है। तो अब जैसे ही कोई यूजर उस चैटिंग एप्लीकेशन को ओपन करेगा तो यह हमारा क्लाइंट जो है
वह चैट सर्विस के साथ कम्युनिकेशन इस्टैब्लिश करने की कोशिश करेगा। तो बेसिकली हमारी यह रिक्वेस्ट हमारा यह चैट
सर्विस इनवोक होगा। तो अब हमारे पास चैट सर्विस के मल्टीपल इंस्टेंसेस हैं। तो यह लोड बैलेंसर क्या करेगा? सबसे पहले यह
क्लाइंट के IPपी एड्रेस को देखेगा। उसके पोर्ट को देखेगा और उसके बाद यह इस रिक्वेस्ट को लेगा और फिर यह डिसाइड करेगा
कि इनमें से कौन सा माइक्रो सर्विस इंस्टेंस अवेलेबल है, कौन सा डाउन नहीं है। और उसके बाद यह डिसाइड करने के बाद वो
उस डेस्टिनेशन एड्रेस पे लेट्स सेकंड वाले इंस्टेंस पे यह उस यूजर की रिक्वेस्ट को राउट कर देगा। अब उस उस रिक्वेस्ट में कुछ
भी हो सकता है। उस रिक्वेस्ट में हो सकता है कि रूम क्रिएट करो, मैसेज सेंड करो या कोई रूम है ऑलरेडी रूम है उसको जॉइ करो।
तो ऐसे रिक्वेस्ट कुछ भी हो सकती है। पर यह रिक्वेस्ट से यह एल4 लोड बैलेंसर एकदम अनजान है। उसे
यह समझ नहीं आएगा कि यह इसका मतलब क्या है? वह बेसिकली क्या करेगा? यह एल4 लोड बैलेंसर क्लाइंट से रिक्वेस्ट लेगा और कोई
एक डेस्टिनेशन डेस्टिनेशन पे डेस्टिनेशन सर्वर पे रिक्वेस्ट को राउट कर देगा। अब यह चैट सर्विस हैंडल कर लेगा कि इस
रिक्वेस्ट के साथ क्या करना है? हमें क्या कोई नया रूम क्रिएट करना है, मैसेज सेंड करना है या नया रूम जॉइ करना है। तो उस
चैट सर्विस यह डिसाइड कर लेगा। लोड बैलेंसर एल4 लोड बैलेंसर सिर्फ क्या करेगा कि ये कनेक्शन इस्टैब्लिश कर देगा। अ
लेट्स से इस एल4 लोड बैलेंसर ने डिसाइड किया कि ठीक है यूजर की रिक्वेस्ट को मैं इस सर्वर टू पे राउट करूंगा। तो ये यहां
पे एक क्लाइंट का इस सर्वर टू के साथ कम्युनिकेशन इस्टैब्लिश हो जाएगा। लेट्स से TCP कम्युनिकेशन इस्टैब्लिश हो जाएगा।
तो अब ये एलफो लोड बैलेंसर सिर्फ अ पैकेट्स को पैकेट्स को डेटा पैकेट्स को सेंड होते हुए देखेगा। लेट्स से ऐसे कुछ
फॉर्म में जहां वो डेटा को रीड ही नहीं कर पाएगा। तो ये सिर्फ डेटा को डेटा पैकेट्स को सेंड होते हुए देखेगा। और अब ये यूजर
लेट्स से ये जो क्लाइंट है ये हमारा यूजर ए है तो अब इस यूजर ए का बेसिकली इस क्लाइंट का और इस सर्वर टू का टीसीp
कनेक्शन कनेक्शन इस्टैब्लिश हो गया है। तो अब यह यूजर ए कोई भी मैसेज सेंड करेगा तो वह मैसेज हर बार इस चैट सर्विस टू या
सर्वर टू पे जाएगा। जब तक हम कनेक्शन को डिस्ट्रॉय नहीं करते या कनेक्शन को खत्म नहीं करते तो हर बार यह इस यूजर ए की
रिक्वेस्ट जो होगी वो हमेशा इस इस चैट सर्विस टू पे जाएगी। तो यह होता है हमारा एल4 लोड बैलेंसर। तो इस लोड बैलेंसर को हम
कह सकते हैं कि इट्स अ इट्स इट्स लाइक अ पोस्ट ऑफिस क्लर्क हु ओनली लुक्स एट द एनवेलप्स फ्रॉम एड्रेस एंड टू एड्रेस।
मतलब कहां से ये एड्रेस कहां से ये एनवेलप को कहां तक जाना है। एनवेलप के अंदर क्या है? यह एल4 लोड बैलेंसर को उससे कोई मतलब
नहीं है। वो उसे देखेगा नहीं और उसे जानना भी। तो लेट्स से कि हमारे पास एक यूजर है। लेट्स से यूजर ए है और एक हमारे पास यूजर
बी है। अब लेट्स से कि ये यूजर ए है। इसको हाय मैसेज भेजना है इस यूजर बी को। और हमारे पास लेट्स से चैट सर्विस के मल्टीपल
इंस्टेंसेस हैं। हमारे पास एक ये इंस्टेंस है, एक चैट सर्विस टू है और एक चैट सर्विस का हमारे पास थर्ड इंस्टेंस है। तो अब ये
जो हमारा एल4 लोड बैलेंसर होगा वो सिंपली क्या करेगा कि यह सिंपली यूजर ए की रिक्वेस्ट को लेगा। उसको कोई मतलब नहीं है
कि उस रिक्वेस्ट में क्या है। यह सिंपली इसकी रिक्वेस्ट को लेगा। यह इसका पोर्ट और IP एड्रेस देखेगा और फिर यह डिसाइड कर
देगा कि कर लेगा L4 लोड बैलेंसर कि इन तीनों में से कौन से सर्वर से कनेक्ट करना है। यूजर ए का कनेक्शन इस्टैब्लिश करना
है। लेट्स से उसने सर्वर टू को सेलेक्ट किया। तो ये लोड बैलेंसर फोर ने यूजर ए का इस सर्वर टू के साथ TCP कनेक्शन
एस्टैब्लिश कर दिया। अब उसके बाद क्या होगा कि ए यूजर ए जो है यह अपने हाय के मैसेज को भेज सकता है इस इस सबसे पहले इस
चैट सर्विस टू को और फिर चैट सर्विस टू इसे भेज देगा यूजर बी को तो यहां पे इस लोड बैलेंसर फोर को कोई मतलब नहीं है कि
उस मैसेज में क्या था http रिक्वेस्ट जो थी वो क्या थी उससे कोई मतलब नहीं है उसे कोई मतलब नहीं है उस रिक्वेस्ट के पाथ से
हेडर से कुकीज़ से उसने सिंपली पोल पोर्ट लिया और IP एड्रेस लिया इस क्लाइंट का और उसका कनेक्शन इस्टैब्लिश कर दिया विद आवर
वन ऑफ़ विद आवर वन ऑफ़ द सर्वर। तो, यह काम था हमारे लोड बैलेंसर 4 का। अब हमारे पास रिक्वेस्ट कुछ भी हो सकती है। लेट्स से
स्लैश एपीआई V1 क्रिएट रूम क्रिएट रूम या फिर हो सकती है लेट्स से सेंड मैसेज। तो
जो हमारा लोड बैलेंसर फोर है उनको इनसे कुछ मतलब नहीं है कि इस रिक्वेस्ट में इन रिक्वेस्ट में क्या है उसको इससे कुछ मतलब
नहीं है। वह सिंपली यूजर ए का कनेक्शन एस्टैब्लिश कर देगा इस सर्वर के साथ या कोई भी सर्वर के साथ चैट चैट सर्विस के
सर्वर के साथ और उसके बाद हमारे चैट सर्विस में ऑब्वियसली लॉजिक होगा इन केसेस को हैंडल करने का। एक नए रूम को क्रिएट
करने का, एक मैसेज को सेंड करने का। तो हमारे पास चैट सर्विस में यह लॉजिक इंप्लीमेंटेड होगा। तो ये सारी चीजें
होंगी वो हैंडल कर लेगा यह हमारा चैट सर्विस। हमारा लोड बैलेंसर फोर जो है वो सिंपली कनेक्शन एस्टैब्लिश कर देगा इस
यूजर और अह वन ऑफ़ द सर्वर के बीच में। तो यह होता है हमारा लोड बैलेंसर फोर। अब हम देखते हैं हमारा सेकंड टाइप वि इज आवर लोड
बैलेंसर L7 लोड बैलेंसर। तो यह हमारा L7 लोड बैलेंसर एप्लीकेशन
लेयर पर काम करता है। और एप्लीकेशन लेयर में हमारे पास डिफरेंट प्रोटोकॉल्स होते हैं। हमारे पास HTTP प्रोटोकॉल होता है।
हमारे पास HTTPS है। हमारे पास वेब सॉकेट्स हैं। तो ये जो L7 लोड बैलेंसर है, ये एप्लीकेशन लेयर पे काम करता है। और उस
लेयर में हमारे पास HTTP प्रोटोकॉल है। हमारे पास HTTPS है। हमारे पास वेब सॉकेट्स हैं। तो, हमारे पास ऐसे डिफ़ेंट
प्रोटोकॉल्स हैं। तो, हम कह सकते हैं कि जो हमारा L7 लोड बैलेंसर है, वह इस HTTP को भी समझता है। HTTP को HTTPS को भी
समझता है। वेब सॉकेट्स कनेक्शन को भी समझता है। जो कि हमने नहीं देखा था L4 लोड बैलेंसर में। वो ना HTTP को समझ पा रहा
था, ना इसके हेडर्स को, कुकीज़ को, एचटीटीp पाथ को। तो वो ये सारी चीजें वहां पे नहीं समझ पा रहा था। लेकिन ये जो L7 लोड
बैलेंसर है ये एप्लीकेशन लेयर पे काम करता है और एप्लीकेशन लेयर में हमारे पास ये डिफरेंट प्रोटोकॉल्स हैं। तो हम कह सकते
हैं कि जो हमारा L7 लोड बैलेंसर है वो इस HTTP रिक्वेस्ट को भी समझेगा, HTTPS को भी समझेगा और वेब सॉकेट्स को भी समझेगा। तो
ऐसे हम कुछ रिक्वेस्ट करेंगे। लेट्स से हमें कोई रूम जॉइ करना है तो हम उसकी बॉडी में यह सेंड कर देंगे। पहले क्या हो रहा
था कि हम अह हमारा L4 लोड बैलेंसर के बॉडी में क्या जा रहा है? रिक्वेस्ट का पाथ क्या है? तो वह यह सब कुछ नहीं समझ रहा
था। लेकिन L7 लोड बैलेंसर इज़ स्मार्ट इनफ टू अंडरस्टैंड द पाथ द बॉडी। तो ये होता है हमारे L7 लोड बैलेंसर में। अब क्या
होगा कि लेट्स से हमारे पास एक यूजर है और एक हमारा यूजर है। वो लेट्स से अ अपनी प्रोफाइल को अपडेट करना चाहता है। तो
हमारे पास ऐसे मल्टीपल माइक्रो सर्विसेस होंगी। हमारे पास एक चैट की सर्विस हो सकती है और उसके हमारे पास मल्टीपल
इंस्टेंसेस हो सकते हैं। लेट्स से चैट वन एंड चैट टू। हमारे पास यूजर सर्विस हो सकती है। और इस यूजर सर्विस के हमारे पास
मल्टीपल इंस्टेंसेस हो सकते हैं। लेट्स से यूजर वन एंड यूजर टू। तो ये हमारे पास ऐसे डिफरेंट-डिफरेंट माइक्रो सर्विसेस के
मल्टीपल इंस्टेंसेस हैं। अब यूजर रिक्वेस्ट करेगा बेसिकली वो एक एपीआई एंड पॉइंट ट्रिगर करेगा। लेट्स से स्लैश एपीआई
V1 अपडेट प्रोफाइल ऐसा कुछ एक एपीआई एंड पॉइंट वो ट्रिगर करेगा। तो अब यहां पे रिक्वेस्ट को यूजर की रिक्वेस्ट
को कहां राउट करना है? तो इसके लिए हमारे पास एक लोड बैलेंसर सेवन है। तो यह लोड बैलेंसर से हमने देखा
L7 को कि लोड लोड बैलेंसर L7 जो है वो इस एपीआई रिक्वेस्ट को समझ सकता है। HTTP रिक्वेस्ट को समझ सकता है। http रिक्वेस्ट
के पाथ को समझ सकता है कि यह पाथ हमें कहां ले जा रहा है। यह हेडर्स को समझ सकता है। यह कुकीज़ को समझ सकता है। तो ऐसे ये
बेसिकली रिक्वेस्ट को समझ सकता है। तो जैसे ही इस लोड बैलेंसर सेवन को रिक्वेस्ट मिलेगी वो समझ जाएगा कि ठीक है आई हैव टू
इनवोक वन ऑफ़ द यूजर सर्विस इंस्टेंसेस। अब हमारे पास यहां पे दो यूजर सर्विस के इंस्टेंस हैं। तो वो चेक कर लेगा कि कौन
सा अवेलेबल है थ्रू सर्विस डिस्कवरी। तो वो चेक कर लेगा कि अच्छा ठीक है यूजर टू इंस्टेंस है। ये लेट्स से अवेलेबल है। ये
वाला अभी अवेलेबल है और ये वाला लेट्स से अभी डाउन है या हम कह सकते हैं ऑलरेडी ट्रैफिक ले रहा है। तो ये लोड L7 लोड
बैलेंसर यूजर की रिक्वेस्ट को राउट कर देगा टू दिस माइक्रो सर्विस इंस्टेंस। तो ये होता है हमारा L7 लोड बैलेंसर। दोनों
में हमने डिफरेंस भी डिस्कस कर लिया। अब देखते हैं हम कुछ लोड बैलेंसिंग एल्गोरिदम्स को। तो हमारे पास लोड
बैलेंसिंग की दो एल्गोरिदम्स होती हैं। फर्स्ट होती है हमारे पास स्टैटिक एल्गोरिदम।
स्टैटिक एल्गोरिदम। अब इस स्टैटिक एल्गोरिदम में हमारे पास आ जाती है राउंड रबिन।
हमारे पास राउंड रबिन आ जाती है। हमारे पास आ जाती है वेटेड राउंड रबिन। हमारे पास यहां आ गई वेटेड राउंड रबिन।
और एक हम डिस्कस कर सकते हैं IP#श IP#श तो ये हमारी कुछ लोड बैलेंसिंग की स्टैटिक
एल्गोरिदम्स हैं और डायनेमिक एल्गोरिदम्स में हमारे पास डायनेमिक एल्गोरिदम्स में हमारे पास आ
जाती है लीस्ट कनेक्शन हमारे पास आ जाती है वेटेड लीस्ट कनेक्शन
अह लीस्ट कनेक्शन हमारे पास आ जाती है एक और डायनेमिक एल्गोरिदम वेटेड लीस्ट लीस्ट कनेक्शन
कनेक्शन वेटेड लीस्ट कनेक्शन और एक हमारे पास आ जाती है
लीस्ट रिस्पांस टाइम लीस्ट रिस्पांस टाइम तो ये कुछ हमारी लोड बैलेंसिंग की
एल्गोरिदम्स हैं हमारे पास स्टैटिक एल्गोरिदम्स भी हैं। हमारे पास डायनेमिक एल्गोरिदम्स भी हैं। तो सबसे पहले हम
डिस्कस करते हैं सम ऑफ दी स्टैटिक एल्गोरिदम्स। तो सबसे पहले आती है हमारे पास राउंड रॉबिन। तो हम सेम एग्जांपल लेते
हैं। लेट्स से हमारे पास डिफरेंट यूज़र्स हैं। लेट्स से ये U1 यूजर हो गया। ये हमारे पास U2 यूजर हो गया। हमारे पास ऐसे
ही और दो और यूजर हैं। लेट्स से U3 एंड U4। U3 एंड U4। तो अब क्या होगा कि हमारे पास लेट्स से एक चैटिंग चैट सर्विस
है चैटिंग एप्लीकेशन है बेसिकली तो उस चैट सर्विस के हमारे पास मल्टीपल इंस्टेंसेस हो सकते हैं। तो लेट्स से हमारे पास इस
चैट सर्विस के दो इंस्टेंसेस हैं चैट वन एंड चैट टू। अब यहां पे आ जाएगा हमारा लोड बैलेंसर। तो अब यह लोड बैलेंसर क्या
करेगा? इन यूज़र्स की रिक्वेस्ट को लेगा। लेट्स से यह यूजर की रिक्वेस्ट को लेगा। यूजर टू की रिक्वेस्ट को लेगा। यूजर थ्री
की रिक्वेस्ट को लेगा एंड यूजर फोर की रिक्वेस्ट को लेगा। तो अब यह कैसे डिसाइड करेगा कि यूजर की रिक्वेस्ट को कौन से
यूजर की रिक्वेस्ट को कहां राउट करना है या कहां पे ट्रैफिक को डिस्ट्रीब्यूट करना है? ट्रैफिक को कैसे डिस्ट्रीब्यूट करना
है? तो उसके लिए हमारी फर्स्ट एल्गोरिदम है व्हिच इज़ राउंड रॉबिन। तो राउंड रॉबिन में क्या होगा? लेट्स से कि इस यूजर वन की
रिक्वेस्ट को हमने नाम दे दिया फर्स्ट रिक्वेस्ट। सेकंड, थर्ड एंड दिस इज़ फोर्थ रिक्वेस्ट। तो राउंड रॉबिन में क्या होता
है? है लोड बैलेंसर फर्स्ट यूजर की रिक्वेस्ट को लेट्स से इसने इस इंस्टेंस पे राउट कर दिया चैट वन
पे जो सेकंड रिक्वेस्ट आई उसको यहां राउट कर दिया फिर जो थर्ड रिक्वेस्ट आई उसको यहां राउट कर दिया फोर्थ रिक्वेस्ट आई
उसको यहां राउट कर दिया अब लेट्स से कोई दो और नई रिक्वेस्ट आती हैं लेट्स से फिफ्थ और सिक्स्थ तो यह फिफ्थ को इसने
यहां राउट कर दिया और सिक्स्थ को यहां राउट कर दिया तो बेसिकली अह यह जो हमारी एल्गोरिदम है। राउंड रबिन एल्गोरिदम है।
यह इक्वली इक्वली ट्रैफिक को डिस्ट्रीब्यूट कर रही है। एक यूजर की रिक्वेस्ट को इस इंस्टेंस पे दूसरे यूजर
की रिक्वेस्ट को इस इंस्टेंस पे ऐसे करके यह इक्वली ट्रैफिक को डिस्ट्रीब्यूट कर रही है। लेकिन अब इसमें प्रॉब्लम क्या हो
सकती है कि लेट्स से यह जो हमारी चैट सर्विस थी बेसिकली ये हमारी जो चैट सर्विस है यह एक दूसरे सर्वर पे है और यह भी एक
दूसरे सर्वर पे है। तो अब यहां पे प्रॉब्लम क्या आ सकती है कि लेट्स से ये वाला जो हमारा सर्विस है सर्वर है ये काफी
स्ट्रांग है। इसकी कैपेसिटी बहुत ज्यादा है। इसमें हमने मल्टीपल सीपीयूस यूज़ किया। हमने इसमें मेमोरी भी ज्यादा यूज़ की। तो
हम कह सकते हैं कि ये वाला ये वाला हमारा जो सर्वर है ये बहुत पावरफुल सर्वर है और ये वाला जो सर्वर है ये उतना पावरफुल नहीं
है। तो अब इसमें प्रॉब्लम क्या आ रही है कि ये सर्वर जो है इसकी कैपेसिटी तो ज्यादा है। इसमें हमने ज्यादा सीपीयू यूज़
किए। ज्यादा हमने मेमोरी यूज़ की। तो इसकी कैपेसिटी कैपेसिटी ज्यादा है। इसका मतलब क्या है कि ये ज्यादा नंबर ऑफ रिक्वेस्ट
को हैंडल कर सकता है। राइट? लेकिन हम राउंड रबिन में क्या कर रहे हैं? हम ट्रैफिक को इक्वली डिस्ट्रीब्यूट कर रहे
हैं। हम एक यहां भेज रहे हैं। एक हम यहां भेज रहे हैं। फिर हम यहां भेज रहे हैं। फिर यहां भेज रहे हैं। ऐसे हम ट्रैफिक को
इक्वली डिस्ट्रीब्यूट कर रहे हैं। तो अब जब हमारे इस ये वाले सर्वर की कैपेसिटी ज्यादा है तो हम इसकी कैपेसिटी को सही से
यूटिलाइज ही नहीं कर पा रहे हैं। हम कह सकते हैं कि हमारी इस सर्वर की कैपेसिटी वेस्ट हो जा रही है। क्योंकि इसकी
कैपेसिटी है लेट्स से 100 रिक्वेस्ट को हैंडल करने की। लेकिन हम सिर्फ पांच यहां कर दे रहे हैं और पांच यहां कर दे रहे
हैं। तो इसकी वजह से क्या हो रहा है कि हम इस इस वाले सर्वर को सही से यूटिलाइज नहीं कर पा रहे हैं। तो ये एक प्रॉब्लम आती है
हमारे राउंड रॉबिन एल्गोरिदम में। अब इस प्रॉब्लम को कौन सॉल्व करता है? तो इस प्रॉब्लम को सॉल्व करता है हमारा
वेटेड राउंड रॉबिन। वेटेड राउंड
रॉबिन। तो अब वेटेड राउंड रबिन में क्या होता है? अगेन लेट्स से सेम एग्जांपल। हमारे पास
चार यूज़र्स हैं। एक हमारे पास U1 है, U2 है, हमारे पास U3 है और एक हमारे पास यूजर फोर है। अब ये हमारे पास चार यूज़र्स हैं
और हमारे पास सेम दो चैट सर्विस के इंस्टेंस हैं। एक हमारे पास चैट वन है और एक चैट टू है। अब वेटेड राउंड रॉबिन में
क्या होता है कि हम इन सर्वर्स को इन सर्वर्स को हम कुछ वेट असाइन कर देते हैं। लेट्स से इसको हमने वेट असाइन कर दिया।
इसको हमने वेट असाइन कर दिया थ्री। इसको हमने वेट असाइन कर दिया थ्री। और इसको हमने वेट असाइन कर दिया
वन। लेट्स से वन वेट असाइन कर दिया। तो अब ये कैसे काम करेगा? अब रिक्वेस्ट कैसे आएंगी? लेट्स से इस यूजर ने रिक्वेस्ट की।
इस यूजर ने रिक्वेस्ट की। इसने रिक्वेस्ट की और ये U4 ने रिक्वेस्ट की। तो अब क्या हो गया कि इस चैट सर्विस को हमने क्या
किया? हमने वेट असाइन कर दिया थ्री। वेट या हम इसे कह सकते हैं इसकी कैपेसिटी हमने डिफाइन कर दी थ्री। तो क्या होगा कि
फर्स्ट थ्री रिक्वेस्ट जो हैं हमारी अब वो जाएंगी इस चैट सर्विस वन के पास। लेट्स से फर्स्ट रिक्वेस्ट, सेकंड रिक्वेस्ट और
थर्ड रिक्वेस्ट। उसके बाद जो फोर्थ रिक्वेस्ट होगी वो हमारी जाएगी इस चैट सर्विस टू के पास। तो यह हमारी फोर्थ
रिक्वेस्ट यहां गई। अब लेट्स से फिर से कोई नई चार सर्विसेज चार रिक्वेस्ट आती हैं। लेट्स से फिफ्थ रिक्वेस्ट, सिक्स्थ,
सेवंथ एंड एट्थ रिक्वेस्ट। तो अब क्या होगा? फिफ्थ, सिक्स्थ और सेवंथ रिक्वेस्ट जो होगी वो जाएगी इस चैट सर्विस वन के पास
और एट्थ रिक्वेस्ट होगी वो जाएगी इस चैट सर्विस टू के पास। तो, यह होता है हमारा वेटेड राउंड रॉबिन। और अब हमने इसमें
राउंड रॉबिन की प्रॉब्लम को सॉल्व कर दिया। राउंड रबिन में क्या हो रहा था हम कि हम जो हमारा स्ट्रांग सर्वर या पावरफुल
सर्वर है हम उसकी कैपेसिटी को यूज़ नहीं कर पा रहे थे। लेकिन इसमें हमने वेट असाइन करके हमारे स्ट्रांग कंप्यूटर को या
पावरफुल कंप्यूटर को वेट असाइन करके ज्यादा वेट असाइन करके राउंड रॉबिन की प्रॉब्लम को सॉल्व कर दिया। लेकिन अब एक
प्रॉब्लम वेटेड राउंड रॉबिन में भी आती है। लेट्स से कि यह हमारे पास चार रिक्वेस्ट आई। फर्स्ट, सेकंड, थर्ड और
फोर्थ रिक्वेस्ट। तो अब ऐसा हो सकता है कि लेट्स से यह वाली जो रिक्वेस्ट थी यह सिर्फ 10 से 10 10 मिली सेकंड में कंप्लीट
हो जा रही है। यह भी 10 मिली सेकंड में यह भी 10 मिलीसे में। तो फर्स्ट, सेकंड एंड थर्ड रिक्वेस्ट फर्स्ट,
सेकंड एंड थर्ड रिक्वेस्ट मिला के टोटल 30 मिलीसे में यह एग्जीक्यूट हो जा रही हैं। लेकिन लेट्स से कि जो हमारी फोर्थ
रिक्वेस्ट थी वो अकेले ही 10 सेकंड ले रही है। 10 सेकंड ले रही है। और अभी यह वाली हमारी रिक्वेस्ट किसके पास गई थी? अह जो
हमारा कम पावरफुल कंप्यूटर है, कम पावरफुल सिस्टम है, यह रिक्वेस्ट उसके पास गई थी। चैट टू के पास
और यह वाली कहां पे गई थी? हमारी स्ट्रांग कंप्यूटर के पास गई थी। स्ट्रांग सर्वर के पास गई थी। व्हिच इज़ आवर चैट वन। तो अब हम
इसमें भी देख सकते हैं कि हम इस वाले पे क्योंकि ये 10 सेकंड ले रही है। फिर लेट्स से कि एक एट्थ रिक्वेस्ट आ गई हमारी वो भी
10 सेकंड ले रही है। तो हम दे देख सकते हैं कि इस पे इस जो हमारा जो कम पावरफुल कंप्यूटर है उस पे फिर से हमारा लोड बढ़
जाएगा। तो ये एक प्रॉब्लम आती है हमारे वेटेड राउंड रबिन में। तो ये थी हमारी सेकंड एल्गोरिदम लोड बैलेंसिंग एल्गोरिदम।
अब जो हमारी थर्ड लोड बैलेंसिंग एल्गोरिदम है वो है IP#श IP#श
तो अब IP#श में क्या होता है कि लेट्स से हमारे पास सेम एग्जांपल हम लेते हैं सो दैट इट वुड बी इजी फॉर यू टू अंडरस्टैंड
हमारे पास चार यूजर हैं। हमारे पास U1 है, U2, U3 एंड वी हैव U4। अब ये चार यूज़र्स हैं और ये चारों यूज़र्स एक चैटिंग
एप्लीकेशन यूज कर रहे हैं। तो बेसिकली वो या तो मोबाइल से यूज कर रहे होंगे या लैपटॉप से। तो उस मोबाइल या लैपटॉप का
डिवाइस का एक अपना IPपी एड्रेस होगा। तो हम बोल सकते हैं कि ये जो हमारे चारों यूज़र्स हैं इनके जो डिवाइस हैं या बेसिकली
कह सकते हैं कि हमारे जो क्लाइंट हैं इनके अपने-अपने IPपी एड्रेसेस होंगे। राइट? ये रिक्वेस्ट जाएगी लोड बैलेंसर के पास।
अब लोड बैलेंसिंग में हम क्या कर सकते हैं कि हम एक हैश फंक्शन को इनके IPपी एड्रेसेस देंगे। चारों क्लाइंट के या
चारों यूज़र्स के जो डिवाइस है उसके IPपी एड्रेस देंगे। और ये हैश हैश फंक्शन क्या करेगा कि एक हैश वैल्यू निकालेगा उससे।
दिस हैश वैल्यू कैन बी एनीथिंग। लेट्स से 1 2 3 4 तो ऐसे एक हमारे पास हैश वैल्यू मिल जाएंगी। अब सेम हमारे पास चैट सर्विस
वन है। हमारे पास चैट सर्विस टू है। चैट सर्विस वन है और चैट सर्विस टू है। तो क्या होगा कि हमारे हैश वैल्यू के
अकॉर्डिंग हम रिक्वेस्ट को राउट कर देंगे टू करेक्ट माइक्रो सर्विस इंस्टेंस। लेट्स से हैश वैल्यू यदि हमारी वन आ रही है तो
हम सारी रिक्वेस्ट को राउट करेंगे इसमें। हमारे पास यदि हैश वैल्यू आ रही है टू तो हम रिक्वेस्ट को राउट करेंगे इस वाले
इंस्टेंस पे। तो ऐसे करके हम डिपेंड्स ऑन हैश वैल्यू हम यूज़र्स की रिक्वेस्ट को राउट करेंगे। अब इसमें एक प्रॉब्लम यह आती
है कि यदि लेट्स से हमने लोड बैलेंसर के पहले एक प्रॉक्सी कॉन्फ़िगर किया। लेट्स से हमने यहां पे एक प्रॉक्सी कॉन्फ़िगर किया।
यह हमारा एक प्रॉक्सी है। प्रॉक्सी हम नेक्स्ट वीडियो में डिस्कस करेंगे। सो, डोंट वरी अबाउट दैट। तो, लेट्स से एक
हमारा यहां पे प्रॉक्सी है। अब इस प्रॉक्सी सर्वर का एक अपना IP एड्रेस होगा। राइट? तो अब यदि हमने इन इस लोड
बैलेंसर और यूज़र्स के क्लाइंट के बीच में एक प्रॉक्सी सर्वर लगा दिया तो इस लोड बैलेंसर को ऐसा लगेगा कि सारी रिक्वेस्ट
जो है वो एक ही सोर्स से आ रही हैं। राइट? इस प्रॉक्सी सर्वर से आ रही हैं। तो अब इस केस में हमारे यूज़र्स तो ये चार यूज़र्स या
चारों क्लाइंट तो अलग-अलग थे। लेकिन लोड बैलेंसर को लगेगा कि ये जो सारी रिक्वेस्ट हैं ये आ रही हैं केवल एक सर्वर से
प्रॉक्सी सर्वर से केवल एक सोर्स से। तो इस केस में क्या होगा कि हमारी हैश वैल्यू हमेशा हमेशा सेम आएगी। जब हम हैश फंक्शन
को IP एड्रेस देंगे तो हमारी हैश वैल्यू हमेशा सेम आएगी। तो हमेशा हैश वैल्यू सेम आएगी। तो हमारा लेट्स से हैश वैल्यू हमारी
वन आ रही है। तो इस केस में ये लोड बैलेंसर क्या करेगा? हर रिक्वेस्ट को सिर्फ इस इंस्टेंस पे ही राउट करेगा। हर
रिक्वेस्ट को सिर्फ इस इंस्टेंस पे ही राउट करेगा। तो ये होती है हमारी थर्ड एल्गोरिदम थर्ड लोड बैलेंसिंग
एल्गोरिदम और ये हमारा कंप्लीट होता है यहां पे स्टैटिक एल्गोरिदम्स हमने जिसमें राउंड रबिन कवर किया हमने वेटेड राउंड
रॉबिन देखा और हमने IP#श देखा। अब जो हमारी नेक्स्ट एल्गोरिदम्स हैं वो हैं डायनेमिक एल्गोरिदम्स जिसमें आती है हमारी
लीस्ट कनेक्शन वेटेड लीस्ट कनेक्शन और एक हमारी आती है लीस्ट रिस्पांस टाइम। तो एक-एक करके इनको समझते हैं। तो जो हमारी
पहली डायनेमिक एल्गोरिदम है वो है लीस्ट कनेक्शन। तो लीस्ट कनेक्शन में हमारे पास क्या होगा? लेट्स से सेम एग्जांपल हम
कंसीडर करते हैं। लेट्स से हमारे पास चार डिफरेंट यूज़र्स हैं। U1, U2, U3, U4 एंड हमारे पास अह दो चैट सर्विसेस के इंस्टेंस
हैं। चैट सर्विस वन एंड चैट सर्विस टू। तो अब इसमें लीस्ट कनेक्शन में हम क्या करते हैं कि लेट्स से ये जो हमारा यूजर वन है
और जो यूजर टू है ये ऑलरेडी इस चैट सर्विस वन से चैट सर्विस वन इंस्टेंस से कनेक्टेड है। बेसिकली इनका टीसीp कनेक्शन ऑलरेडी
इस्टैब्लिश्ड है। तो यह जो हमारे यूजर वन और यूजर टू है यह ऑलरेडी कनेक्टेड हैं या ऑलरेडी इनका कनेक्शन इस्टैब्लिश्ड है इस
चैट सर्विस वन से। और यह जो हमारा यूजर थ्री है इसका कनेक्शन इस्टैब्लिश्ड है इस चैट सर्विस से। तो अब जो नई रिक्वेस्ट
आएगी लेट्स से ये यूजर फोर आता है और इसकी रिक्वेस्ट आती है लेट्स से फोर उसकी आईडी फोर है। यह रिक्वेस्ट आती है। तो अब यह जो
रिक्वेस्ट है यह जाएगी उस सर्विस के पास। उस सर्वर के पास जिसके पास सबसे कम कनेक्शंस हैं। तो इस केस में इस चैट
सर्विस वन के पास दो कनेक्शंस हैं और यह जो चैट सर्विस टू है इसके पास सिर्फ एक कनेक्शन है। तो जैसा कि नाम से हमें समझ
आता है कि लीस्ट कनेक्शन। तो जो न्यू रिक्वेस्ट जाएगी वो उस सर्विस के या उस सर्वर के पास जाएगी। उस इंस्टेंस के पास
जाएगी जिसके पास कम कनेक्शन है। तो इस केस में चैट सर्विस टू के पास कम कनेक्शन है। तो यह रिक्वेस्ट जो होगी यह जाएगी इसके
पास। तो अब इसके एक्टिव कनेक्शन हो जाएंगे टू। तो यह होता है हमारा लीस्ट कनेक्शन। अब हमारी जो चैट सर्विस का फर्स्ट
इंस्टेंस है उससे हमारे दो यूज़र्स कनेक्टेड हैं। यूजर वन यूजर टू। और जो हमारा चैट सर्विस का सेकंड इंस्टेंस है
उससे हमारे दो यूज़र्स कनेक्टेड हैं U3 एंड U4। तो अब हमारा बेसिकली हम कह सकते हैं कि ये
यूज़र्स हैं इनका डिफरेंट-डिफरेंट इंस्टेंसेस से चैट सर्विस के डिफरेंट-डिफरेंट इंस्टेंसेस से TCP
कनेक्शन इस्टैब्लिश्ड हो गया है। पर क्या टीसीपी कनेक्शन इस्टैब्लिश होने का यह मतलब है कि ट्रैफिक भी राउट होने लगा है?
नहीं। तो हम ये कह सकते हैं कि कनेक्शन तो इस्टैब्लिश हो गया है लेकिन अभी रिक्वेस्ट नहीं जा रही हैं। तो लेट्स से कि यह जो
यूजर वन है यह कंटिन्यू रिक्वेस्ट कर रहा है और यह यूजर टू भी कंटिन्यू रिक्वेस्ट कर रहा है। लेट्स से इसने रिक्वेस्ट की
फर्स्ट, फिर इसने की, फिर इसने थर्ड की, इसने फोर्थ रिक्वेस्ट की। तो अब ये सारी रिक्वेस्ट कहां जाएंगी? ये सारी रिक्वेस्ट
जाएंगी इस इंस्टेंस के पास। फर्स्ट रिक्वेस्ट जाएगी, सेकंड जाएगी, थर्ड जाएगी, फोर्थ जाएगी। क्यों? क्योंकि यह
यूजर वन और यूजर टू अ इस चैट सर्विस वन इंस्टेंस से इस सर्वर से कनेक्टेड हैं। तो यह सारी रिक्वेस्ट गई यहां पे। अब टीसीp
कनेक्शन तो इसका भी इस्टैब्लिश्ड था लेकिन यहां पे कोई ट्रैफिक नहीं आया। तो यदि हमारे पास ये दोनों सर्वर की कैपेसिटी सेम
है तो तो ठीक है। लेकिन यदि लेट्स से कि दोनों सर्वर की कैपेसिटी में डिफरेंस है। लेट्स से ये हमारा बहुत पावरफुल कंप्यूटर
है। अ या हम कह सकते हैं कि यह वाला हमारा पावरफुल कंप्यूटर है। और यह वाला जो हमारा है वो वीक कंप्यूटर है। हम कह सकते हैं।
तो इस केस में अब देखो कि हमारे वीक वाले कंप्यूटर पे वीक सर्वर पे जा ट्रैफिक जा रहा है। रिक्वेस्ट राउट हो रही है। और जो
हमारा स्ट्रांग कंप्यूटर है, पावरफुल पावरफुल कंप्यूटर है, पावरफुल सर्वर है, वहां पे हमारी अभी एक भी रिक्वेस्ट नहीं
आई। तो, यह एक प्रॉब्लम आती है लीस्ट कनेक्शंस में और इस प्रॉब्लम को सॉल्व करता है वेटेड लीस्ट कनेक्शन। तो जैसे
हमने वेटेड राउंड रबिन में हमारे सर्वर को वेट असाइन कर दिया था। यहां भी हमने हमारे सर्वर को वेट असाइन कर दिया। तो अब हम
इसमें क्या करते हैं? वेटेड लीस्ट कनेक्शन में हम सबसे पहले कैलकुलेट करते हैं रेश्यो ऑफ एक्टिव कनेक्शंस टू वेट। तो
लेट्स से कि हमारे इस इस सिस्टम में ये जो यूजर वन है और ये जो यूजर टू है इसका टीसीp कनेक्शन एस्टैब्लिश्ड हो चुका है इस
सर्वर से। ओके? तो इसके एक्टिव कनेक्शंस हो गए इस सर्वर के एक्टिव कनेक्शंस हो गए टू। राइट? तो हमने हमने सबसे पहले क्या
करना है? कैलकुलेट करना है रेश्यो ऑफ़ एक्टिव कनेक्शंस टू वेट। तो हमारे एक्टिव कनेक्शंस हैं टू और वेट है 10। तो ये हो
गया हमारा वन। राइट? टू। सिमिलरली अब हम यहां पे हमारे एक्टिव कनेक्शन केवल एक ही है। केवल
ये U3 एक्टिव कनेक्शन है। तो हम यहां पे भी वेट कैलकुलेट कर लेंगे। बेसिकली रेश्यो एक्टिव कनेक्शंस और वेट का। तो यह हो
जाएगा हमारा वन। तो इसके बाद ये रेशियो कैलकुलेट करने के बाद हम क्या करेंगे कि जो हमारा दूसरा पॉइंट है कि सर्वर विद लेस
रेशियो विल गेट द रिक्वेस्ट। तो इसमें हमारे पास जो रेश्यो आया जो सबसे कम रेश्यो था वो ये था टू वाला। यहां पे
रेश्यो आया वन। तो हम क्या करेंगे कि हम रिक्वेस्ट को उस सर्वर पे राउट करेंगे जहां पे रेश्यो कम आया। तो हमारा रेश्यो
इस सर्वर के लिए कम आया। तो हम रिक्वेस्ट को लेट्स से यह कोई नई रिक्वेस्ट आई थी लेट्स से रिक्वेस्ट फोर्थ इस U4 की तो हम
इस रिक्वेस्ट को राउट कर देंगे इस वाले सर्वर पे तो अब हमने देखा कि हमने हमारा यह वाला जैसे पावरफुल कंप्यूटर था
पावरफुल सर्वर था यह वाला हमारा पावरफुल सर्वर था तो अब हम देख सकते हैं कि हमने इसमें एक और एक्टिव कनेक्शन बढ़ा दिया U4
बट स्टिल इट हैज़ कैप कैपेसिटी कैपेबिलिटी टू टू हैंडल मोर रिक्वेस्ट। तो अब हमने यहां पे कैपेबिलिटी को कैपेसिटी को भी यूज़
किया सर्वर की कैपेसिटी को। तो ये होता है हमारा सेकंड डायनेमिक एल्गोरिदम। सेकंड डायनेमिक लोड बैलेंसिंग एल्गोरिदम। अब जो
हमारी नेक्स्ट आती है एल्गोरिदम वो है लीस्ट रिस्पांस टाइम। तो इस लीस्ट रिस्पांस टाइम में सबसे
पहले हम TTFB टाइम को कैलकुलेट करते हैं। ये TTFB टाइम इज़ नथिंग बट टाइम टू फर्स्ट बाइट। तो इसका मतलब क्या होता है? कि टाइम
इंटरवल बिटवीन सेंडिंग अ रिक्वेस्ट एंड रिसीविंग रिस्पांस फ्रॉम द सर्वर। लेट्स से ये यूजर ने कुछ रिक्वेस्ट भेजी। लेट्स
से इसने बोला कि मुझे M1 मैसेज सेंड करना है यूजर टू को। राइट? तो यह रिक्वेस्ट गई इस चैट सर्विस वन के पास। तो यह चैट
सर्विस वन इसे एकनॉलेजमेंट सेंड करेगा कि ठीक है आई विल सेंड योर रिक्वेस्ट। उसके बाद यह चैट सर्विस वन यूजर टू को यह M1
मैसेज भेज देगा और फिर यह चैट सर्विस इसे वापस से एकनॉलेज करेगा कि ठीक है मैंने तुम्हारे मैसेज को भेज दिया है यूजर टू
को। तो बेसिकली यह उसका हो जाएगा रिस्पांस। तो इस रिक्वेस्ट को सेंड होने में और रिस्पांस के आने में जितना टाइम
लगता है उसे हम बोल देते हैं TTFB टाइम टाइम टू फर्स्ट बाइट। तो लेट्स से कि यह वाले सर्वर का हमारा TTFB टाइम है थ्री 3
मिलीसे इसका टू और इसका वन। तो हम सबसे पहले TTFB टाइम कैलकुलेट करेंगे हर सर्वर का। उसके बाद हम सर्वर ऐसा सर्वर पिक
करेंगे जिसके लिए इसकी वैल्यू सबसे कम आए। राइट? तो अब देखते हैं हम कैसे काम करेगा। तो सबसे पहले सर्वर वन के लिए देखते हैं।
तो सर्वर वन के लिए एक्टिव कनेक्शंस हैं दो और TTFB टाइम है थ्री। तो यह हो जाएगा हमारा सिक्स। सिमिलरली इसके लिए हम
कैलकुलेट करें सर्वर टू के लिए तो TTFB टाइम है टू और एक्टिव कनेक्शंस हैं ज़ीरो। तो 0 * 2 तो ये हो जाएगा ज़ीरो। अब हम
सर्वर थ्री के लिए कैलकुलेट करें तो ये हो जाएगा फोर एक्टिव कनेक्शंस इन 1 TTFB टाइम तो दैट वुड बी फोर। तो अब हमने क्या
डिसाइड किया कि हम सबसे कम वाला सेलेक्ट करेंगे। हमारे पास एक है सिक्स, एक है ज़ीरो और एक है फोर। तो अब हम सबसे कम वाला
सेलेक्ट करेंगे ये वाला। तो ये कौन सा है हमारा? सर्वर टू। तो हम क्या करेंगे? जो नई रिक्वेस्ट आ रही है लेट्स से इस यूजर
फोर की रिक्वेस्ट आ रही है। तो अब हम इस रिक्वेस्ट को राउट करेंगे या ट्रैफिक को राउट करेंगे इस वाले सर्वर पे। तो अब इसके
एक्टिव कनेक्शंस बढ़ के क्या हो जाएंगे? वन। अब इसके लिए हमारा अभी भी यह सिक्स आ रहा है।
यह हमारा सिक्स आ रहा है। इसके लिए हमारा फोर स्टिल सेम रहेगा। लेकिन अब यहां पे चैट सर्विस टू या सर्वर टू के लिए यह चेंज
हो जाएगा। अब यहां एक्टिव कनेक्शन ज़ीरो की जगह वन हो गया। तो यहां पे वन तो ये हो जाएगा हमारा टू। स्टिल इस केस में भी यहां
पे सिक्स है। यहां पे फोर है। यहां पे टू है। तो इस केस में भी हम इसे ही कंसीडर करेंगे। और हम नई रिक्वेस्ट को लेट्स से
थर्ड रिक्वेस्ट को जो नई रिक्वेस्ट आई है उसे भी हम इसमें राउट कर देंगे। इस सर्वर में राउट कर देंगे। तो ऐसे हमारा ये लीस्ट
रिस्पांस टाइम एल्गोरिदम काम करता है। ये सारी तीनों हमने अ डायनेमिक एल्गोरिदम्स भी डिस्कस कर ली। और हां एक चीज और इस
लीस्ट रिस्पांस टाइम के बारे में कि यदि लेट्स से अ क्लैश होता है दो डिफरेंट सर्वर्स के बीच में लेट्स से दोनों में
फोर फोर आया। तो इस केस में अब हम क्या करेंगे कि हम राउंड रॉबिन का यूज़ कर लेंगे। तो यदि
हमारे दो सर्वर के बीच में क्लैश होता है तो फिर हम राउंड रबिन का यूज कर लेंगे। तो ये था हमारा लेक्चर थ्री जिसमें हमने देखा
लोड बैलेंसर। लोड बैलेंसिंग लोड बैलेंसिंग के डिफरेंट टाइप्स जिसमें हमने L4 लोड बैलेंसर देखा। हमने L7 लोड बैलेंसर देखा।
और फिर हमने देखा कुछ लोड बैलेंसिंग एल्गोरिदम्स जिसमें हमने स्टैटिक एल्गोरिदम भी डिस्कस की। हमने डायनेमिक
एल्गोरिदम्स भी डिस्कस की। स्टैटिक एल्गोरिदम में हमने राउंड रॉबिन, वेटेड राउंड रॉबिन देखे और इनसे इनके क्या
डिसएडवांटेजेस थे वो देखे। हमने आईपी हैश देखा। फिर हमने स्विच किया डायनेमिक एल्गोरिदम्स की तरफ जिसमें हमने देखा
लीस्ट कनेक्शन, वेटेड लीस्ट कनेक्शन। और हमने एक और देखा लीस्ट रिस्पांस टाइम। तो यस, दिस इज़ ऑल फॉर दिस लेक्चर थ्री। आई
होप यू एंजॉयड दिस लेक्चर। सो, याह, दिस इज़ ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो, टिल देन बाय-बाय। शो
सम लव। थैंक्स। [संगीत] हे एवरीवन, वेलकम बैक। वेलकम टू दिस
अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। और आज के इस वीडियो में हम डिस्कस करने वाले हैं एक और इंटरेस्टिंग टॉपिक जिसमें हम
देखेंगे व्हाट इज प्रॉक्सी? प्रॉक्सी सर्वर जिसे हम फॉरवर्ड प्रॉक्सी भी कहते हैं। हम देखेंगे व्हाट इज रिवर्स
प्रॉक्सी। और इसके बाद हम कुछ इंपॉर्टेंट क्वेश्चंस डिस्कस करेंगे। जैसे हाउ प्रॉक्सी इज़ डिफरेंट फ्रॉम वीpए, हाउ
प्रॉक्सी इज़ डिफरेंट फ्रॉम लोड बैलेंसर? डू वी नीड प्रॉक्सी सर्वर एवरीवेयर? और आगे चलके हम वीडियो में देखेंगे कि रिवर्स
प्रॉक्सी जो है हमारा वह लोड बैलेंसिंग का भी काम कर सकता है। तो हम देखेंगे कि यदि रिवर्स प्रॉक्सी लोड बैलेंसिंग कर सकता है
तो फिर लोड बैलेंसर की हमें नीड क्या है? और यदि हम अपने एप्लीकेशन में रिवर्स प्रॉक्सी यूज़ कर रहे हैं। रिवर्स प्रॉक्सी
सर्वर यूज़ कर रहे हैं तो क्या फिर हमें लोड बैलेंस को यूज़ करना भी है या नहीं? तो ये सारे क्वेश्चंस हम डिस्कस करेंगे। तो
स्टार्ट करते हैं और एक बार समझते हैं प्रॉक्सी सर्वर को फॉरवर्ड प्रॉक्सी को एक एग्जांपल की हेल्प से। तो लेट्स से कि एक
5 छ साल का बच्चा है और इस बच्चे को चॉकलेट खाना है। तो अब यह बच्चा क्या करेगा? यह खुद तो शॉप में जाएगा नहीं। यह
क्या करेगा? यह अपने पेरेंट्स को बोलेगा कि आई वांट टू ईट चॉकलेट। तो यह अपने पेरेंट्स को बोलेगा और फिर पेरेंट्स जो
हैं वह जाएंगे शॉप में शॉपकीपर के पास और वहां से यह चॉकलेट लेकर आएंगे और फिर यह चॉकलेट अपने बच्चे को दे देंगे। तो
बेसिकली यहां पे पेरेंट ने क्या किया कि अपने बच्चे को अपने बच्चे को शॉप से या आउटर वर्ल्ड से
हाइड रखा। बेसिकली उन्होंने यहां पे एनोनिमिटी को मेंटेन किया। उन्होंने क्या किया? अह बच्चे को चॉकलेट खाना था तो वह
खुद दुकान में गए। चॉकलेट लाई और बच्चे को चॉकलेट लाकर दे दी। तो बेसिकली यहां पे शॉपकीपर को नहीं पता कि पेरेंट्स ने यह
चॉकलेट किसके लिए ली। तो हम कह सकते हैं कि यहां पे पेरेंट्स ने अपने बच्चे को हाइड रखा शॉपकीपर से इस शॉप से। तो सेम
काम करता है हमारा प्रॉक्सी सर्वर। तो प्रोक्सी सर्वर को अब सेम एग्जांपल की हेल्प से समझते हैं। तो चाइल्ड को हम
मानते हैं क्लाइंट। तो यह हो गया हमारा क्लाइंट और जो हमारा पेरेंट था इस चाइल्ड के
पेरेंट्स थे उसे हम मानते हैं प्रॉक्सी सर्वर। तो यह हो गया हमारा प्रॉक्सी सर्वर और फिर यहां पे आ जाता है हमारा इंटरनेट।
यह हो गया हमारा इंटरनेट। और यहां पे हो गया हमारा सर्वर जिससे हमें रिक्वेस्ट करना है। तो यह
क्लाइंट हो गया हमारा चाइल्ड। यह प्रॉक्सी हो गया पेरेंट्स जो बच्चे को चॉकलेट लाकर दे रहे थे और यह
सर्वर हो गया हमारा शॉप या शॉपकीपर। तो जब यह क्लाइंट कोई रिक्वेस्ट करेगा, तो यह रिक्वेस्ट सबसे जब पहले जाएगी इस प्रॉक्सी
सर्वर के पास। अब इस क्लाइंट का अपना IPपी एड्रेस होगा। राइट? लेट से इस क्लाइंट का IPपी एड्रेस है यह कोई भी ऐसा रैंडम और इस
प्रॉक्सी सर्वर का IP एड्रेस है लेट्स से यह कोई भी ऐसे रैंडम IPपी एड्रेस तो अब क्या होगा कि जब यह रिक्वेस्ट इंटरनेट पे
जाएगी सबसे पहले तो यह क्लाइंट बोलेगा कि लेट्स से इसको Google.com चाहिए तो यह रिक्वेस्ट जाएगी प्रॉक्सी सर्वर के पास।
अब ये प्रॉक्सी सर्वर जब ये इंटरनेट पे IP राउट करेगा तो वो इस क्लाइंट का IPपी राउट ना करके अपना खुद का IP भेजेगा। यह खुद का
IPपी भेजेगा और जब यह रिक्वेस्ट सर्वर के पास जाएगी तो सर्वर के पास भी इस प्रॉक्सी सर्वर का IP एड्रेस जाएगा। तो इस सर्वर को
यह लगेगा कि ये जो रिक्वेस्ट है facebook.com या google.com की ये रिक्वेस्ट मुझे इस IPपी एड्रेस से आई है।
तो ऐसे करके हम हमारे क्लाइंट को हाइड रख सकते हैं टू आउटर नेटवर्क। बेसिकली हम अपने लोकल नेटवर्क को हाइड कर सकते हैं।
तो ऐसे करके प्रॉक्सी सर्वर हमें एनोनिमिटी प्रोवाइड करता है। बेसिकली हम कह सकते हैं कि यह जो हमारा प्रॉक्सी
सर्वर है इट ब्रिंग्स एनोनिमिटी टू क्लाइंट। यह क्लाइंट को एनोनिमस रखता है आउटर वर्ल्ड से। तो अब यह रिक्वेस्ट जाएगी
सर्वर के पास और सर्वर तो सर्वर इस रिक्वेस्ट को फुलफिल करेगा और डाटा सेंड कर देगा इस प्रॉक्सी सर्वर को। अब ये
प्रॉक्सी सर्वर आगे चल के इस डेटा को सेंड कर देगा क्लाइंट को। तो ये काम होता है हमारे प्रॉक्सी सर्वर का। अब प्रॉक्सी
सर्वर का यूज़ करने से क्या हो गया कि अ हमने बेसिकली क्लाइंट को हाइड कर लिया आउटर नेटवर्क से। हमने एनोनिमिटी प्रोवाइड
की क्लाइंट को और उसके बाद अब कोई भी सर्वर क्लाइंट से डायरेक्टली कम्युनिकेट नहीं कर सकता। क्योंकि सर्वर को तो आईडिया
ही नहीं है कि किसने रिक्वेस्ट की थी। बेसिकली उसको यह लगेगा कि यह जो रिक्वेस्ट आई है यह प्रॉक्सी सर्वर से आई है। उसे
नहीं पता एक्चुअल क्लाइंट या एक्चुअल ओरिजिन क्या है इस रिक्वेस्ट का। तो हम कह सकते हैं कि यह प्रॉक्सी सर्वर की मदद से
क्या होगा कि कोई भी सर्वर क्लाइंट से डायरेक्ट कम्युनिकेट नहीं कर सकता। तो यह काम होता है हमारे प्रॉक्सी सर्वर का। अब
कुछ और एडवांटेजेस जो प्रॉक्सी सर्वर हमें प्रोवाइड करता है तो उसे समझते हैं और एक एग्जांपल के थ्रू इसे देखते हैं। तो लेट्स
से कि आप एक कंपनी में काम कर रहे हैं। लेट्स से कोई एक्स वzेड कंपनी है और उस कंपनी में
आपके पास लेट्स से डिफरेंट ऐसे क्लाइंट्स हैं। एक आप हो गए और आपके ऐसे डिफरेंट कलीग्स हो गए। अब उनके पास सबके पास
अपने-अपने डिफरेंट लैपटॉप्स हैं और सबके हर क्लाइंट का एक अपना IPपी एड्रेस होगा। राइट? इसका ये IPपी एड्रेस है। इसका ये
ऐसे करके हमारे हर क्लाइंट के डिफरेंट IPपी एड्रेसेस होंगे। तो अब हमारी कंपनी ने क्या डिसाइड किया? इस XYZ कंपनी ने
क्या डिसाइड किया कि आप जब भी कुछ वेब पे ब्राउज़ करोगे, कुछ भी ब्राउज़ करोगे इंटरनेट पे तो वह जाएगा प्रॉक्सी सर्वर के
थ्रू। मतलब आप डायरेक्ट इंटरनेट को एक्सेस नहीं कर सकते। पहले आपको प्रॉक्सी सर्वर के थ्रू होते हुए जाना पड़ेगा। तो यह हम
हमारी कंपनी ने डिसाइड किया। अब लेट्स से कि चारों चारों ये क्लाइंट चारों यूज़र्स अपनी-अपनी रिक्वेस्ट भेजते हैं। लेट्स से
किसी को google.com चाहिए, किसी को facebook.com कोई चैट जेपीटी को एक्सेस करना चाहता है।
तो ऐसे चारों क्लाइंट ने अपनी-अपनी रिक्वेस्ट की। तो ये रिक्वेस्ट सबसे पहले जाएगी इस प्रॉक्सी सर्वर के पास। अब
प्रॉक्सी सर्वर हमने देखा कि हमें IP एनोनिमिटी तो प्रोवाइड कर ही रहा है। एक फीचर क्या है प्रॉक्सी सर्वर का? यह IP
एनोनिमिटी हमें प्रोवाइड कर रहा है। लेकिन और क्या फीचर है? तो यह जब चारों क्लाइंट्स
रिक्वेस्ट करेंगे तो यह प्रॉक्सी सर्वर चेक करेगा। यह बेसिकली क्या है? हमारे इस XYZ कंपनी का प्रॉक्सी सर्वर है। तो ये
बेसिकली चेक करेगा कि क्लाइंट ने जो भी रिक्वेस्ट किया लेट्स से कि ये C3 क्लाइंट ने बोला है कि मुझे चैट GPT चाहिए। तो यह
चैट चैट GPT को एक्सेस करना चाहता है। तो क्या करेगा कि यह प्रॉक्सी सर्वर चेक करेगा। बेसिकली इसमें पहले से ही डिफाइन
होगा कि हमें क्या यूजर को एक्सेस करने देना है, क्या नहीं एक्सेस करने देना। तो, यह जो हमारा प्रॉक्सी सर्वर है, वह देखेगा
कि क्या चैट जीपीटी को यूजर को एक्सेस करने देना है या नहीं। तो प्रॉक्सी सर्वर बोलेगा नहीं चैट जीपीटी उसके लिए अलाउड
नहीं है। तो, वह क्या करेगा? यूजर की रिक्वेस्ट को कैंसिल कर देगा और बोल देगा कि कुछ भी मैसेज एक्स वzेड कि लेट्स से
दिस साइट इज नॉट अलाउड या दिस साइट इज रेस्ट्रिक्टेड। ऐसा कुछ मैसेज वो उसे भेज देगा क्लाइंट C3 को। अब लेट्स से कोई एक
और यह C2 आता है C2 क्लाइंट और यह बोलता है कि मुझे Google.com खोल के दो। तो ये रिक्वेस्ट जाएगी सबसे पहले कहां? प्रॉक्सी
सर्वर के पास। अब प्रॉक्सी सर्वर चेक करेगा कि क्या यह यूजर की रिक्वेस्ट वैलिड है या नहीं? मतलब क्या हमें यूजर को यह
एक्सेस करने देना है या नहीं? तो लेट्स से वो बोलता है उसमें डिफाइन है कि ठीक है Google.com यूजर एक्सेस कर सकता है। तो
फिर यह प्रॉक्सी सर्वर इस रिक्वेस्ट को Google के सर्वर पे भेजेगा। लेकिन क्या होगा कि जब Google के सर्वर पे यह
रिक्वेस्ट जाएगी तो Google के सर्वर को यह लगेगा कि यह रिक्वेस्ट जो आई है वो इस सोर्स से आई है। उसको इस C2 क्लाइंट या
इसके IPपी एड्रेस का पता नहीं लगेगा। क्यों? क्योंकि यह प्रॉक्सी सर्वर ने यहां पे हमारे क्लाइंट को हाइड कर दिया और आगे
इसने इंटरनेट पे अपने IPपी एड्रेस को एक्सपोज किया। तो इस सर्वर वन के पास जब रिक्वेस्ट जाएगी तो उसको लगेगा कि वो
देखेगा कि ये जो रिक्वेस्ट है ये इस IPपी एड्रेस से आई है। तो वो इस बेसिकली उसके लिए तो यह क्लाइंट ही है। तो यह इस
क्लाइंट की रिक्वेस्ट को फुलफिल करेगा और डेटा को सेंड कर देगा इस प्रॉक्सी सर्वर को और फिर प्रॉक्सी सर्वर इस डेटा को या
रिस्पांस को फर्दर सेंड कर देगा C टू क्लाइंट को। तो यह काम होता है हमारे प्रॉक्सी सर्वर का। तो बेसिकली दूसरा जो
हमने एडवांटेज देखा पहला तो हमने देखा कि इट प्रोवाइड्स आईपी एनोनिमिटी बेसिकली इट ब्रिंग्स एनोनिमिटी टू क्लाइंट जो दूसरा
एग्जांपल हमने देखा वो देखा दूसरा जो हमने एडवांटेज देखा वो हमने देखा एक्सेस कंट्रोल
कि यदि कुछ हमारे लेट्स से कोई एक्स वzेड कंपनी में कुछ साइट्स बैन है तो हम उन साइट्स को एक्सेस नहीं कर सकते तो यह काम
यह हमें कौन एडवांटेज प्रोवाइड करता है यह एडवांट वांटेज भी हमें प्रोवाइड करता है हमारा प्रॉक्सी सर्वर। जो तीसरा एडवांटेज
है वो है कि यह रिक्वेस्ट की ग्रुपिंग कर सकता है। यह रिक्वेस्ट की ग्रुपिंग कर सकता है। अब इसका क्या मतलब है? तो लेट्स
से कि ये चार क्लाइंट्स हैं हमारे पास। चारों क्लाइंट्स के अपने-अपने IPपी एड्रेस हैं। राइट? और ये चारों क्लाइंट्स लेट्स
से Google.com को एक्सेस करना चाहते हैं। तो ये चारों क्लाइंट्स अपनी-अपनी रिक्वेस्ट को प्रॉक्सी सर्वर को देंगे। तो
ये प्रॉक्सी सर्वर क्या करेगा? इन इन रिक्वेस्ट की चारों क्लाइंट्स की रिक्वेस्ट की ग्रुपिंग कर देगा। क्यों?
क्योंकि वो सेम रिसोर्स को एक्सेस करना चाहते हैं। तो यह प्रॉक्सी सर्वर इन चारों क्लाइंट्स की रिक्वेस्ट की ग्रुपिंग कर
देगा। बेसिकली वह चारों क्लाइंट्स की रिक्वेस्ट को क्लब कर देगा और एज अ सिंगल रिक्वेस्ट भेज देगा Google.com के सर्वर
पे। उसके बाद Google.com Google सर्वर से हमारे पास रिस्पांस आएगा और फिर यह प्रॉक्सी सर्वर उस रिस्पांस को
भेज देगा चारों डिफरेंट-डिफरेंट क्लाइंट्स को। तो थर्ड एग्जाम थर्ड एडवांटेज क्या है इस प्रॉक्सी सर्वर का कि ये रिक्वेस्ट की
ग्रुपिंग करने में हेल्प करता है। और एक और क्या हो सकता है कि यदि कोई रिस्ट्रिक्टेड कंटेंट आप कंटेंट आप अपने
लेट्स से पर्सनल लैपटॉप में देखना चाहते हैं तो यह प्रॉक्सी सर्वर आपको उस रेस्ट्रिक्टेड कंटेंट को भी एक्सेस करने
में हेल्प कर सकता है। तो यह होता है हमारा प्रॉक्सी सर्वर। अब आप समझ गए होंगे कि प्रॉक्सी सर्वर बेसिकली क्या कर रहा है
कि क्लाइंट को एनोनिमस रख के क्लाइंट नेटवर्क को हाइड रख के अ काम कर रहा है। उसकी रिक्वेस्ट को फुलफिल कर रहा है और
कोई भी सर्वर डायरेक्टली कम्युनिकेट नहीं कर सकता अब क्लाइंट से। तो बेसिकली सर्वर को क्या सर्वर को पता ही नहीं चलेगा कि जो
रिक्वेस्ट उसके पास आ रही है उसका एक्चुअल ओरिजिन क्या है। तो यह काम होता है हमारे प्रॉक्सी सर्वर का। तो ये हमने समझ लिया
प्रॉक्सी सर्वर जिसे हम फॉरवर्ड प्रॉक्सी भी कहते हैं। और ये जो प्रॉक्सी है हमारे पास ये दो टाइप की होती है। फॉरवर्ड
प्रॉक्सी और रिवर्स प्रॉक्सी। तो फॉरवर्ड प्रॉक्सी हमने डिस्कस कर लिया। अब हम डिस्कस करते हैं रिवर्स प्रॉक्सी। और हां
एक चीज और कि यह जो हमारी फॉरवर्ड प्रॉक्सी या प्रॉक्सी सर्वर होता है यह हमेशा
क्लाइंट और इंटरनेट के बीच में होता है। क्लाइंट और इंटरनेट के बीच में होता है यह हमारा प्रॉक्सी सर्वर और यह प्रॉक्सी
सर्वर हमें कैशिंग में भी हेल्प करता है। अब ये कैशिंग में कैसे हमें हेल्प करता है लेट्स से तो यह हमारा क्लाइंट है और यहां
पे हमारा एक प्रॉक्सी सर्वर है। अब लेट्स से कि यह क्लाइंट कुछ रिक्वेस्ट करता है। लेट्स से सेम google.com तो यह रिक्वेस्ट
जाएगी प्रॉक्सी सर्वर के थ्रू। तो यह रिक्वेस्ट जाएगी प्रॉक्सी सर्वर के थ्रू। फिर यहां पे यह रिक्वेस्ट जाएगी इंटरनेट
पे और फिर यहां पे हमारा होगा सर्वर Google का सर्वर। तो ऐसे करके हमारी रिक्वेस्ट जाएगी। Google रिस्पांस देगा।
यह रिस्पांस आएगा प्रॉक्सी सर्वर के बाद। उसके बाद प्रॉक्सी सर्वर इस रिस्पांस को दे देगा क्लाइंट को। तो प्रॉक्सी सर्वर को
एक बार पता चला कि ठीक है Google क्लाइंट ने Google.com एक्सेस किया। Google.com एक्सेस किया। तो अब क्या होगा कि यह जो ये
जो प्रॉक्सी सर्वर है यह कैशिंग भी करता है। तो नेक्स्ट टाइम जब क्लाइंट सेम रिक्वेस्ट करेगा सेम google.com तो इस
प्रॉक्सी सर्वर के पास यह डाटा होगा। प्रॉक्सी सर्वर को पता होगा कि यूजर को क्या दिखाना है। तो ये प्रॉक्सी सर्वर अब
सर्वर के पास ना जाके यहीं से क्लाइंट को रिस्पांस दे देगा। तो यह एक एक और एडवांटेज होता है कैशिंग
एक और एडवांटेज होता है प्रॉक्सी सर्वर का। तो ये अब हमने देख लिया प्रॉक्सी सर्वर। अब हम समझते हैं रिवर्स प्रॉक्सी
को। तो रिवर्स प्रॉक्सी बेसिकली सीट्स इन फ्रंट ऑफ सर्वर्स। तो ये जो रिवर्स प्रॉक्सी सर्वर हमारा होता है यह सर्वर्स
के सामने होता है। बेसिकली इट सीट्स इन फ्रंट ऑफ सर्वर्स। लेट्स से हमारे पास एक ये सर्वर वन है,
सर्वर टू है, सर्वर थ्री है। लेट्स से ये हमारे तीनों लेट्स से facebook.com के सर्वर्स हैं। तो
जो हमारे रिवर्स प्रॉक्सी होता है, यह सर्वर्स के सामने बैठता है। तो अब ये इसकी हेल्प यह क्या मदद करता है हमें? इसको हम
समझते हैं। तो रिवर्स प्रॉक्सी लगाने से अब क्या होगा कि इंटरनेट से कोई भी रिक्वेस्ट आएगी तो वह यह रिक्वेस्ट सबसे
पहले रिवर्स प्रॉक्सी से होते हुए जाएगी। रिवर्स प्रॉक्सी लेट्स से कि किसी यूजर ने किसी क्लाइंट ने
google.com लेट्स से facebook.com एक्सेस किया एक्सेस करना चाहता है facebook.com तो यह डायरेक्ट Facebook के किसी सर्वर पे
ना जाते हुए सबसे पहले इस रिवर्स प्रॉक्सी पे जाएगी। की यह रिक्वेस्ट रिवर्स प्रॉक्सी पे। उसके बाद यह रिवर्स प्रॉक्सी
फ़र्दर इस रिक्वेस्ट को सेंड करेगा टू वन ऑफ़ द सर्वर। तो, हम कह सकते हैं कि रिवर्स प्रॉक्सी के आने से यह जो सर्वर्स हैं,
इनके IPपी एड्रेस एक्सपोज नहीं हुए इंटरनेट पे। बेसिकली इंटरनेट को नहीं पता लगा कि इन सर्वर्स के facebook.com
सर्वर्स के IP एड्रेसेस क्या हैं। तो, यह चीज हमने इंटरनेट को एक्सपोज नहीं की। कैसे?
रिवर्स प्रॉक्सी की हेल्प से। तो यह जो रिवर्स प्रॉक्सी है, यह बेसिकली IP एनोनिमिटी प्रोवाइड करता है सर्वर्स को।
तो, जैसे हमारा जो प्रॉक्सी सर्वर था, वो IP एनोनिमिटी ला रहा था क्लाइंट के लिए। बेसिकली इट वाज़ ब्रिंगिंग IPपी एनोनिमिटी
टू क्लाइंट। और यहां पे सेम जो हमारा रिवर्स प्रॉक्सी है, यह IP एनोनिमिटी प्रोवाइड कर रहा है सर्वर्स को। तो, यह
पहला एडवांटेज होगा रिवर्स प्रॉक्सी का IP एनोनिमिटी। टू सर्वर।
अब जो दूसरा एडवांटेज होता है, वह यह होता है कि रिवर्स प्रॉक्सी हमें लोड बैलेंसिंग में भी हेल्प करता है। बेसिकली इट कैन
राउटर द ट्रैफिक टू मल्टीपल सर्वर्स या मल्टीपल सर्वर इंस्टेंसेस। तो जब ये रिक्वेस्ट लेट्स से Facebook.com की
रिक्वेस्ट इंटरनेट पे आती है। फिर इंटरनेट से रिवर्स प्रॉक्सी पे आती है। तो रिवर्स प्रॉक्सी देखेगा कि कौन सा हमारा सर्वर
कौन सा हमारा सर्वर एक्टिव है। बेसिकली ट्रैफिक लेने के लिए अवेलेबल है, एक्टिव है और कौन सा डाउन नहीं है। तो, ऑन द
बेसिस ऑफ़ हेल्थ, चेक एंड अवेलेबिलिटी यह क्या करेगा? इस यूजर की रिक्वेस्ट को राउट कर देगा टू वन ऑफ़ द सर्वर। तो हम कह सकते
हैं कि जो हमारा रिवर्स प्रॉक्सी है यह ट्रैफिक को भी राउट कर रहा है। ट्रैफिक को भी डिस्ट्रीब्यूट कर रहा है। तो ये लोड
बैलेंसिंग का भी काम कर रहा है। उसके बाद सेम यह कैशिंग में भी हेल्प करता है। यह कैशिंग में भी मदद करता है। अब उसके बाद
जो एक और एडवांटेज है वो है कि हमें डिफरेंट अटैक से बचाता है। लेट्स से डीडॉस अटैक। तो क्या होगा कि हमारे हमारा जो
सर्वर्स हैं ये जो हमारे तीनों सर्वर्स हैं इनके आईपी तो एक्सपोज है नहीं। इंटरनेट पे। तो जब भी कोई रिक्वेस्ट आएगी
तो सबसे पहले रिक्वेस्ट जाएगी रिवर्स प्रॉक्सी के पास। तो बेसिकली हमने हमारे रिवर्स प्रॉक्सी के IP को एक्सपोज किया है
इंटरनेट पे। हमने इन सर्वर्स के IP को एक्सपोज नहीं किया है। तो जब भी कोई अटैक होगा तो वो सबसे पहले इस रिवर्स प्रॉक्सी
पे जाएगा। हमारे सर्वर्स पे कोई अटैक नहीं होगा। क्योंकि हमने इसके आईपी को एक्सपोज ही नहीं किया। हमने IP को हमने किसके IP
को एक्सपोज किया? हमने रिवर्स प्रॉक्सी के IP को एक्सपोज़ किया है इंटरनेट पे। तो ये कुछ एडवांटेजेस होते हैं हमारे रिवर्स
प्रॉक्सी के। और ये जो रिवर्स प्रॉक्सी है इट सीट्स इन फ्रंट ऑफ सर्वर्स। तो ये इंटरनेट और सर्वर के बीच में होता है। अब
हमने समझ लिया प्रॉक्सी सर्वर को रिवर्स प्रॉक्सी को। और हमने देखा कि दोनों में सिर्फ डायरेक्शन ऑफ कम्युनिकेशन का
डिफरेंस है। जो हमारा प्रॉक्सी सर्वर है वो क्लाइंट के लिए काम कर रहा है। वो क्लाइंट नेटवर्क को हाइड कर रहा है। और जो
हमारा रिवर्स प्रॉक्सी है वो सर्वर के लिए काम कर रहा है। वो सर्वर के नेटवर्क को हाइड कर रहा है। तो बेसिकली हम कह सकते
हैं कि दोनों में सिर्फ डायरेक्शन ऑफ कम्युनिकेशन का डिफरेंस है। तो ये होता है हमारे प्रॉक्सी सर्वर और रिवर्स प्रॉक्सी।
अब हम देखते हैं कुछ इंपॉर्टेंट क्वेश्चंस रिगार्डिंग दिस प्रॉक्सी एंड रिवर्स प्रॉक्सी। तो जो सबसे पहला क्वेश्चन है वो
कि हाउ प्रॉक्सी इज़ डिफरेंट फ्रॉम वीpए। तो हमने देखा कि जो प्रॉक्सी सर्वर है यह हमें क्या एडवांटेजेस प्रोवाइड कर रहा है?
यह IP एनोनिमिटी प्रोवाइड कर रहा है। IP एनोनिमिटी प्रोवाइड कर रहा है। यह क्या कर रहा है? हमें एक्सेस कंट्रोल प्रोवाइड कर
रहा है कि क्या हमें यूजर को एक्सेस करने देना है, क्या नहीं देना। हम इसके थ्रू रिस्ट्रिक्टेड कंटेंट कंटेंट को एक्सेस कर
सकते हैं। रिस्ट्रिक्टेड कंटेंट को यह हमें कैशिंग का एक एडवांटेज प्रोवाइड कर रहा है कि प्रॉक्सी सर्वर के थ्रू हम
कैशिंग कर सकते हैं। तो ये कुछ एडवांटेजेस हैं और एक और कि हां रिक्वेस्ट की ग्रुपिंग। तो ये कुछ एडवांटेजेस हैं जो
हमें प्रॉक्सी सर्वर प्रोवाइड कर रहा है। तो अब समझते हैं वीपीए को। तो लेट्स से कि एक हमारा क्लाइंट है और यह क्लाइंट वीपीए
से कनेक्टेड है। तो यह हो गया हमारा वीपीए क्लाइंट और यह क्लाइंट को लेट्स से कुछ रिक्वेस्ट करना है सर्वर से तो यहां पे हो
गया हमारा इंटरनेट और यह हो गया हमारा सर्वर। अब क्लाइंट वीपीए से कनेक्टेड है तो लेट्स से यह हो गया हमारा वीपीए सर्वर।
अब क्लाइंट जो भी रिक्वेस्ट करेगा वह रिक्वेस्ट जाएगी एक वीपीए टनल से होते हुए। क्योंकि क्लाइंट अभी वीpए से
कनेक्टेड है। तो यह एक वीपीए टनल बना लेगा। तो अब इस टनल से होके यूज़र्स की या क्लाइंट की रिक्वेस्ट जाएगी। और इस टनल से
होके जो भी रिक्वेस्ट जाएगी वो एक एज इंक्रिप्टेड डेटा जाएगी। इंक्रिप्टेड डेटा। तो क्लाइंट की जो भी रिक्वेस्ट
रहेगी वो इंक्रिप्टेड फॉर्म में सर्वर के पास जाएगी। और सर्वर के पास मैकेनिज्म होगा उसे डिक्रिप्ट करने का। तो यह सर्वर
इस रिक्वेस्ट को डिक्रिप्ट कर लेगा। और ऐसे करके हम इस वीपीए टनल में से इंक्रिप्टेड डेटा पास करेंगे। तो ये काम
होता है हमारे वीपीए का। तो बेसिकली हमने क्या देखा कि वीpए इंक्रिप्टेड डेटा को ट्रांसफर कर रहा है। और यह जो हमारा
प्रॉक्सी सर्वर था, यह बेसिकली क्या कर रहा था? यह IP मास्किंग कर रहा था। IP मास्किंग यह क्लाइंट नेटवर्क को हाइड कर
रहा था सर्वर से इंटरनेट से। तो, यह काम था हमारे प्रॉक्सी सर्वर का। आईपी मास्किंग अ बेसिकली यहां पे वो कुछ
भी एज इंक्रिप्टेड डेटा सेंड नहीं कर रहा था। वो सिर्फ आईपी मास्किंग कर रहा था। यहां पे कुछ भी इंक्रिप्टेड डेटा जैसा
नहीं था। लेकिन जो हमारा वीपीए है उसमें मतलब क्लाइंट के वीpए से कनेक्ट करने के बाद वीpए टनल में जो भी डेटा जाएगा वो एक
वो एज इंक्रिप्टेड डेटा ट्रांसफर होगा। और सर्वर में मैकेनिज्म होगा उसे डिक्रिप्ट करने का। तो सर्वर उस डेटा को डिक्रिप्ट
कर लेगा। उस रिक्वेस्ट को डिक्रिप्ट कर लेगा। तो यह डिफरेंस होता है हमारा प्रॉक्सी सर्वर और वीपीए में। अब जो
नेक्स्ट क्वेश्चन हमारा था वो था कि हाउ प्रॉक्सी इज़ डिफरेंट फ्रॉम लोड बैलेंसर। तो लोड बैलेंसर को हम जैसा सब जानते हैं
कि यह बेसिकली ट्रैफिक को डिस्ट्रीब्यूट कर देता है अमोंग मल्टीपल सर्वर्स सर्वर इंस्टेंसेस। तो लोड बैलेंसर क्या करता है
कि ट्रैफिक को डिस्ट्रीब्यूट कर देता है अमोंग मल्टीपल सर्वर इंस्टेंसेस लेट्स से हमारा सर्वर वन हो गया। यह सर्वर टू हो
गया, सर्वर थ्री हो गया। तो लोड बैलेंसर क्या करेगा? हेल्थ चेक और सर्वर की अवेलेबिलिटी के हिसाब से ट्रैफिक को राउट
कर देगा टू मल्टीपल सर्वर्स। तो ये काम हमारा होता है लोड बैलेंसर का। अब सेम काम हमारा रिवर्स प्रॉक्सी भी कर
रहा है। हमने देखा कि हमारा रिवर्स प्रॉक्सी जो है या हमारा जो रिवर्स प्रॉक्सी है ये सर्वर्स के सामने है। हमने
देखा कि इट सीट्स इन फ्रंट ऑफ सर्वर्स। तो जो हमारा रिवर्स प्रॉक्सी है ये सर्वर्स के सामने है और हमने देखा कि ये हमारा
रिवर्स प्रॉक्सी भी लोड बैलेंसिंग कर सकता है। हमने देखा कि ये जो हमारा रिवर्स प्रॉक्सी है यह भी ट्रैफिक को राउट कर
सकता है टू डिफरेंट अ सर्वर इंस्टेंसेस। तो हमने यह देखा तो एक तरीके से रिवर्स प्रॉक्सी हमें लोड बैलेंसिंग का फीचर
प्रोवाइड कर रहा है ऑलरेडी। तो दोनों में डिफरेंस क्या है? तो लेट्स से कि इसे एक एग्जांपल के थ्रू समझते हैं। लेट्स से कि
हमारा कोई एप्लीकेशन है उसमें अभी ज्यादा यूज़र्स नहीं है। तो हमारे पास उस एप्लीकेशन का केवल एक ही सर्वर है। लेट्स
से S1 सर्वर। तो अब यदि हमारे पास केवल एक ही सर्वर है तो क्या हमें लोड बैलेंसर की नीड है? नहीं है। क्यों? क्योंकि हमारे
पास सिर्फ एक ही सर्वर है और हमें लोड बैलेंसर की नीड कब होती है? जब हमें ट्रैफिक को डिस्ट्रीब्यूट करना होता है टू
मल्टीपल सर्वर इंस्टेंसेस। लेकिन यहां पे तो हमारे पास सिर्फ एक ही सर्वर है। तो क्या हमें यहां लोड बैलेंसर की नीड है? तो
यहां पे हमें लोड बैलेंसर की नीड नहीं है। लेकिन क्या हमें रिवर्स प्रॉक्सी की नीड यहां है? तो यस हमें रिवर्स प्रॉक्सी की
नीड हो सकती है क्योंकि रिवर्स प्रॉक्सी लोड बैलेंसिंग के अलावा भी एक हमें आईपी एनोनिमिटी फीचर प्रोवाइड कर रहा है। IP
एनोनिमिटी यह बेसिकली सर्वर को एनोनिमस रखता है इंटरनेट से। उसके आईपी को एनोनिमस रखता है। आईपी मास्किंग करता है। यह लॉगिन
प्रोवाइड कर रहा है। यह कैशिंग में हमारी हेल्प करता है। यह कैशिंग कर रहा है। तो, हम कह सकते हैं एसएसएल टर्मिनेशन
तो हम कह सकते हैं कि जो हमारा रिवर्स प्रॉक्सी है यह लोड बैलेंसिंग लोड बैलेंसिंग के अलावा भी बहुत सारे फीचर्स
प्रोवाइड कर रहा है। तो भले ही हमारे एप्लीकेशन में यदि केवल एक ही सर्वर है तो भी हमें रिवर्स प्रॉक्सी की नीड हो सकती
है। हमें भले लोड बैलेंसर की नीड ना पड़े लेकिन हमें रिवर्स प्रॉक्सी की नीड हो सकती है। तो, यह होता है हमारा दूसरा
क्वेश्चन कि हाउ प्रॉक्सी बेसिकली रिवर्स प्रॉक्सी इज़ डिफरेंट फ्रॉम लोड बैलेंसर। अब जो नेक्स्ट क्वेश्चन है कि डू वी नीड
प्रॉक्सी सर्वर एवरीवेयर? तो यदि हमारे पास छोटे एप्लीकेशनेशंस हैं जहां ज्यादा ट्रैफिक नहीं आ रहा है और जहां सिक्योरिटी
ज्यादा कंसर्न नहीं है। बेसिकली बहुत छोटे एप्लीकेशन लेट्स से टू डू लिस्ट काइंड ऑफ़ एप्लीकेशन। वहां हमें प्रॉक्सी सर्वर्स की
नीड नहीं होती। लेकिन हां यदि हमारे हमारा एक ग्लोबल एप्लीकेशन है, ग्लोबल प्लेटफार्म है तो यस
वी डू नीड प्रॉक्सी सर्वर्स। तो ये हो गया हमारा एक और क्वेश्चन का आंसर। अब जो नेक्स्ट क्वेश्चन है कि इफ रिवर्स
प्रॉक्सी कैन डू लोड बैलेंसिंग जो कि हमने देखा कि यस रिवर्स प्रॉक्सी कैन डू लोड बैलेंसिंग देन व्हाट्स द नीड ऑफ लोड
बैलेंसर्स? और एक क्वेश्चन यह और आता है कि यदि रिवर्स प्रॉक्सी लोड बैलेंसिंग का काम कर ले रहा है तो क्या हमें लोड
बैलेंसर की नीड है भी या नहीं? तो जब भी हम कोई ग्लोबल एप्लीकेशन या लार्ज स्केल सिस्टम बनाते हैं तो हमारे पास ग्लोबली
ट्रैफिक आ रहा है आ रहा होता है डिफरेंट-डिफरेंट रीजंस से डिफरेंट-डिफरेंट अवेलेबिलिटी ज़ोंन से। तो जब भी हमारा
लार्ज स्केल एप्लीकेशन है यदि हमारे पास हमने लार्ज स्केल एप्लीकेशन बनाया तो यस वी डू नीड लोड बैलेंसर एंड वी आल्सो नीड
रिवर्स प्रॉक्सी। तो हम ग्लोबली ट्रैफिक को डिस्ट्रीब्यूट करने के लिए लोड बैलेंसर यूज करेंगे ही।
हम रिवर्स प्रॉक्सी भी यूज करेंगे। पर फिर यह जो हमारा रिवर्स प्रॉक्सी है, यह लोड बैलेंसिंग के अलावा सारे फीचर्स प्रोवाइड
करेगा। लोड बैलेंसिंग के लिए हम लोड बैलेंसर यूज़ करेंगे। IP एनोनिमिटी IPपी एनोनिमिटी आईपी मास्किंग लॉगिंग कैशिंग
कैशिंग एसएसएल टर्मिनेशन ये सब फीचर्स के लिए हम रिवर्स प्रॉक्सी यूज़ करेंगे। तो तो ये था हमारा लेक्चर फोर जिसमें हमने देखा
प्रॉक्सी सर्वर रिवर्स प्रॉक्सी। हमने इनसे जुड़े कुछ क्वेश्चंस भी डिस्कस किए। तो आई होप अब आपको प्रॉक्सी और रिवर्स
प्रॉक्सी अच्छे से समझ आ गया है। एंड यस दिस इज ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन बय शो सम
लव। थैंक्स। [संगीत] हे एवरीवन वेलकम बैक। वेलकम टू दिस
अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। और आज के इस वीडियो में हम बात करने वाले हैं नेटवर्किंग प्रोटोकॉल्स के बारे में
जिसमें मेनली हमारा फोकस होने वाला है ट्रांसपोर्ट लेयर के प्रोटोकॉल्स में और एप्लीकेशन लेयर के प्रोटोकॉल्स में। तो
स्टार्ट करते हैं और समझते हैं कि ये नेटवर्किंग प्रोटोकॉल्स है क्या? इसकी हमें क्या नीड है और कैसे डिफरेंट लेयर के
प्रोटोकॉल्स साथ में काम करते हैं और कैसे हमारी हेल्प करते हैं। तो स्टार्ट करते हैं और समझते हैं कि नेटवर्किंग
प्रोटोकॉल्स होता क्या है? लेट मी जस्ट मिनिमाइज माय वीडियो ताकि पूरी स्क्रीन आपको विज़िबल हो।
ओके? तो सबसे पहले ये डेफिनेशन देखते हैं कि नेटवर्किंग प्रोटोकॉल्स आर द सेट ऑफ रूल्स एंड कन्वेंशंस दैट गवर्न्स हाउ डेटा
इज़ ट्रांसमिटेड एंड रिसीव्ड अक्रॉस अ नेटवर्क। तो बेसिकली ये नेटवर्किंग प्रोटोकॉल्स हमें बताते हैं कि ओवर द
इंटरनेट ओवर द नेटवर्क दो डिवाइसेस के बीच में डेटा कैसे ट्रांसफर होना चाहिए, कैसे रिसीव होना चाहिए। तो बेसिकली हम कह सकते
हैं कि ये नेटवर्किंग प्रोटोकॉल्स हमें बताते हैं कि ओवर द नेटवर्क ओवर द इंटरनेट दो डिवाइसेस आपस में कैसे कम्युनिकेट
करेंगी। तो ये काम होता है हमारे नेटवर्किंग प्रोटोकॉल्स का। अब इन ने नेटवर्किंग प्रोटोकॉल्स की नीड क्या है और
कैसे ये डिफरेंट लेयर के नेटवर्किंग प्रोटोकॉल्स साथ में काम करते हैं। तो एक बार इसे समझते हैं। तो हमारे ओएसआई मॉडल
में कुछ हमारे पास डिफरेंट लेयर्स होती है। हमारे पास सेवन डिफरेंट लेयर्स होती हैं। उन सेवन डिफरेंट लेयर्स में एक हमारे
पास होती है नेटवर्क लेयर। नेटवर्क लेयर। एक हमारे पास होती है ट्रांसपोर्ट लेयर।
और एक होती है हमारे पास एप्लीकेशन लेयर। अब यह तीन मैंने मेंशन क्यों किए हैं? क्योंकि यहां पे हम इन तीनों को यूज़ करने
वाले हैं। बेसिकली हम इन तीनों के प्रोटोकॉल्स को डिस्कस करने वाले हैं। तो नेटवर्क लेयर में हमारे पास IPV4
और IPV6 प्रोटोकॉल्स होते हैं। IPV4 और IPV6। तो ये नेटवर्किंग प्रोटोकॉल्स हमें बेसिकली राउटिंग और IP एड्रेसिंग में
हेल्प करते हैं। उसके बाद हमारा आ जाता है TCP प्रोटोकॉल और यूडीपी प्रोटोकॉल। ये प्रोटोकॉल्स होते हैं हमारे ट्रांसपोर्ट
लेयर में और एप्लीकेशन लेयर में हमारे पास क्लाइंट सर्वर प्रोटोकॉल्स होते हैं। क्लाइंट सर्वर प्रोटोकॉल्स। इन क्लाइंट
सर्वर प्रोटोकॉल्स में हमारे पास HTTP प्रोटोकॉल होता है, HTTPS होता है, वेब सॉकेट्स होता है। तो कई बार लोग कंफ्यूज
हो जाते हैं कि वेब सॉकेट एक पीियर टू पीियर प्रोटोकॉल है। बट इट इज़ नॉट वो पीियर टू पीियर प्रोटोकॉल नहीं है। वो
क्लाइंट सर्वर प्रोटोकॉल है। तो यहां पे एक हमारा हो जाता है वेब सॉकेट। उसके बाद अह एप्लीकेशन लेयर प्रोटोकॉल्स में ही एक
हमारे पास होता है पीियर टू पीियर प्रोटोकॉल। पीियर टू पीियर और इस पीियर टू पीियर प्रोटोकॉल में हमारे पास होता है
वेब आरटीसी। तो यह ऐसे हमारे पास डिफरेंट लेयर के डिफरेंट नेटवर्किंग प्रोटोकॉल्स होते हैं।
तो अब समझते हैं एक एग्जांपल के थ्रू कि कैसे ये डिफरेंट लेयर के नेटवर्किंग प्रोटोकॉल्स साथ में काम करते हैं। तो
लेट्स से कि आप WhatsApp एप्लीकेशन यूज कर रहे हैं। यह आपकी डिवाइस है। लेट्स से दिस इज़ योर डिवाइस एंड दिस इज़ योर फ्रेंड्स
डिवाइस। अब आपको WhatsApp के थ्रू आपको एक मैसेज भेजना है अपने फ्रेंड को। लेट्स से हाय हाउ आर यू? ऐसा कुछ मैसेज आपको अपने
फ्रेंड को भेजना है। तो जो सबसे पहला टास्क हमारे लिए होगा वो होगा कि हमें ओवर द नेटवर्क ओवर द इंटरनेट हमारे फ्रेंड की
डिवाइस को ढूंढना है। राइट? बेसिकली यहां से हमें मैसेज को यहां भेजना है। तो जो हमारा सबसे पहला काम होगा वो यह होगा
कि हम इस डिवाइस को या इस डिवाइस के IPपी एड्रेस को फाइंड करें। राइट? क्योंकि ओवर द इंटरनेट ओवर द नेटवर्क तो बहुत सारी
डिवाइसेस हैं। अ हर डिवाइस के अपने-अपने IPपी एड्रेस हैं। तो हमें सबसे पहले फाइंड आउट करना होगा इस डिवाइस को या इस डिवाइस
के IPपी एड्रेस को ताकि हम जो भी हमें मैसेज भेजना है लेट्स से हाय मैसेज। तो यह हम सही जगह मैसेज को भेज सकें। इसके लिए
जो हमारा सबसे पहला काम होगा वो होगा डिवाइस को फाइंड करना। अपने फ्रेंड की डिवाइस को फाइंड करना। तो अब अपने फ्रेंड
की डिवाइस को फाइंड करने के लिए यहां पे हमारा नेटवर्क प्रोटोकॉल्स, नेटवर्क लेयर के प्रोटोकॉल्स, IPV4 और IPV6 प्रोटोकॉल
हमारी हेल्प करते हैं। क्यों? क्योंकि ये IPV6 प्रोटोकॉल और IPV4 प्रोटोकॉल राउटिंग में और IP एड्रेसिंग में हेल्प करते हैं।
तो ये काम होता है हमारा नेटवर्क लेयर के प्रोटोकॉल्स का। यह बेसिकली ओवर द नेटवर्क ओवर द इंटरनेट हमें दूसरी डिवाइस या
रिक्वायर्ड डिवाइस का IP एड्रेस हमें लाके देते हैं। तो ये यहां पे काम आते हैं हमारे नेटवर्क लेयर के प्रोटोकॉल्स। अब
केवल IPपी एड्रेस फाइंड करना इज नॉट इनफ। तो अब हमें क्या होता है कि हमें इस डिवाइस से इस डिवाइस पे मैसेज भेजना है।
अब हमने पढ़ा है सबने देखा है कि ये मैसेज हम डायरेक्ट इस डिवाइस से इस डिवाइस पे नहीं भेज सकते। बीच में हमें सर्वर्स की
नीड होगी। राइट? तो लेट्स से ये हमारी डिवाइस ए है। यह हमारे फ्रेंड की डिवाइस है। डिवाइस बी। तो यहां पे हम डायरेक्ट
मैसेज को हाय मैसेज को डिवाइस बी को नहीं भेज सकते। हमें सर्वर की नीड होगी। राइट? तो ये हो गया हमारा सर्वर। बेसिकली ये
हमारे WhatsApp के सर्वर्स हो गए। तो सबसे पहले हम इस मैसेज को सर्वर को भेजेंगे। WhatsApp के सर्वर को
भेजेंगे। इंक्रिप्टेड फॉर्म में हमारा मैसेज एज इंक्रिप्टेड फॉर्म में जाएगा सर्वर के पास। उसके बाद यह सर्वर इस
इंक्रिप्टेड मैसेज को भेज देगा इस डिवाइस बी को। फिर ये डिवाइस भी उस मैसेज को डिक्रिप्ट करके रीड कर लेगा। तो बेसिकली
हम कह सकते हैं कि हम डायरेक्ट मैसेज डिवाइसेस के बीच में ट्रांसफर नहीं करने वाले। हम मैसेज को वाया सर्वर भेजेंगे। तो
हमने अब IPपी एड्रेस तो फाइंड कर लिया हमारी डिवाइस बी का। लेकिन ओवर द इंटरनेट ओवर द नेटवर्क केवल IPपी एड्रेस फाइंड
करना इज़ नॉट इनफ। तो हमें सबसे पहले मैसेज भेजना है इस सर्वर को। तो हमारे पास एक रिलायबल पाथ होना चाहिए फ्रॉम डिवाइस ए टू
सर्वर। राइट? तभी हम इस मैसेज को इस सर्वर को भेज पाएंगे और फिर यह सर्वर इस मैसेज को डिवाइस बी को भेजेगा। तो यहां हमें नीड
आती है एक रिलायबल पाथ की। रिलायबल पाथ की और एक सिक्यर्ड कनेक्शन की बिटवीन दिस डिवाइस एंड सर्वर। क्यों? क्योंकि जब इन
इस डिवाइस और सर्वर के बीच में एक कनेक्शन इस्टैब्लिश होगा तभी तो हम अपने मैसेज इस इस सर्वर को भेज पाएंगे। राइट? WhatsApp
सर्वर को भेज पाएंगे। राइट? तो नेक्स्ट जो हमें नीड आती है वो आती है रिलायबल पाथ की और एक सिक्यर्ड कनेक्शन की। सिक्यर्ड
कनेक्शन की। तो अब यह रिलायबल पाथ और सिक्यर्ड कनेक्शन हमें कौन प्रोवाइड करता है? तो ये रिलायबल पाथ और सिक्यर्ड
कनेक्शन हमें ट्रांसपोर्ट लेयर के प्रोटोकॉल्स प्रोवाइड करते हैं। जिसमें हमारे पास होता है टीसीp प्रोटोकॉल और
यूडीपी प्रोटोकॉल। ओके? तो अब हमारे नेटवर्क लेयर के प्रोटोकॉल ने हमें IP एड्रेस दे दिया। इन्होंने हमें IP
एड्रेसिंग और राउटिंग में हेल्प की। ट्रांसपोर्ट लेयर ने हमें एक सिक्यर्ड कनेक्शन दे दिया और रिलायबल पाथ दे दिया
फ्रॉम दिस डिवाइस A टू सर्वर। बेसिकली यह ट्रांसपोर्ट लेयर के प्रोटोकॉल्स हमें बताएंगे कि हाउ डेटा शुड ट्रैवल बिटवीन
दिस क्लाइंट एंड दिस सर्वर। तो ये काम होगा हमारे ट्रांसपोर्ट लेयर के प्रोटोकॉल्स का। ओके? तो अब हमारे पास IP
एड्रेस भी है हमारे सर्वर का और हमारे क्लाइंट बी का या डिवाइस बी का और हमारे पास एक सिक्यर्ड रिलायबल कनेक्शन भी है,
रिलायबल पाथ भी है। अब क्वेश्चन यह आता है कि हाउ एग्जैक्टली आई वुड से हाय हाउ आर यू टू माय फ्रेंड किस फ़ॉर्मेट में यह होगा
और कैसे हम उस फॉर्मेट को मैनेज करेंगे ताकि दोनों एप्स इसे समझ सकें। तो दैट्स वेयर द एप्लीकेशन लेयर प्रोटोकॉल कम्स इन।
अब एप्लीकेशन लेयर में हमारे पास डिफरेंट प्रोटोकॉल्स होते हैं। हमारे पास HTTP होता है। हमारे पास HTTPS होता है। तो अब
ये हमारे HTTP और HTTPS प्रोटोकॉल ये सब प्रोटोकॉल डिफाइन करते हैं रूल्स ऑफ कॉन्वर्सेशन बिटवीन एप्लीकेशनेशंस। अब
WhatsApp में हम वेब सॉकेट कम्युनिकेशन या वेब सॉकेट प्रोटोकॉल का यूज़ करते हैं। वो हम देखेंगे आगे कि यह वेब सॉकेट प्रोटोकॉल
होता क्या है? पर इन ऑर्डर टू कम्युनिकेट या हम कह सकते हैं कि क्लाइंट और सर्वर के बीच में कम्युनिकेशन के लिए हम वेब सॉकेट
प्रोटोकॉल का यूज़ करते हैं WhatsApp में। तो अब ये हमारा एप्लीकेशन लेयर के प्रोटोकॉल्स हमें बताते हैं कि मैसेज
एक्चुअल में डिलीवर कैसे होगा। तो ये होता है हमारे एप्लीकेशन लेयर के प्रोटोकॉल। अब हमने देखा कि नेटवर्क लेयर के प्रोटोकॉल
हमें क्या बता रहे हैं? यह हमें डिवाइस फाइंड करके दे रहे हैं। दे फाइंड्स द डिवाइस। फाइंड्स द डिवाइस। उसके
बाद जो हमारे ट्रांसपोर्ट लेयर के प्रोटोकॉल हैं, यह एक रिलायबल पाथ क्रिएट कर रहे हैं और
यह सिक्यर्ड सिक्यर्ड कनेक्शन इस्टैब्लिश कर रहे हैं बिटवीन क्लाइंट एंड सर्वर। तो, यहां पे
यह ट्रांसपोर्ट लेयर के प्रोटोकॉल दे क्रिएट्स अ पाथ। और जो एप्लीकेशन लेयर के प्रोटोकॉल हैं,
वह हमें क्या बता रहे हैं कि मैसेज एक्चुअल में कैसे डिलीवर होगा। तो डिलीवर द एक्चुअल मैसेज
एक्चुअल मैसेज। तो ये हमारे डिफरेंट लेयर्स के प्रोटोकॉल्स और हमने देखा कि कैसे ये डिफरेंट लेयर्स के प्रोटोकॉल साथ
में काम करते हैं। अब देखते हैं ट्रांसपोर्ट लेयर के प्रोटोकॉल्स क्योंकि इस लेक्चर में हमारा टारगेट होने वाला है
ट्रांसपोर्ट लेयर के प्रोटोकॉल्स और एप्लीकेशन लेयर के प्रोटोकॉल्स को कवर करना। तो ट्रांसपोर्ट लेयर में हमारे पास
होते हैं TCP प्रोटोकॉल और यूडीपी प्रोटोकॉल। तो अब TCP प्रोटोकॉल को सबसे पहले समझते हैं। तो ये जो TCP प्रोटोकॉल
होता है ये एक रिलायबल कनेक्शन प्रोवाइड करता है। रिलायबल कनेक्शन और यहां पे हमारे जो भी पैकेट्स बेसिकली
हम डेटा को पैकेट्स के फॉर्म में डिलीवर करते हैं। तो जो भी हमारे पैकेट्स की डिलीवरी होगी वो एक ऑर्डर में होती है। तो
पैकेट्स की जो डिलीवरी होगी हमारे वो एक ऑर्डर में होगी। एक सीक्वेंस में होगी और यह टीसीp प्रोटोकॉल मेक श्योर करता है कि
हर पैकेट एव्री पैकेट शुड बी डिलीवर्ड। मतलब ऐसा नहीं होना चाहिए कि लेट्स से हमने कोई पैकेट डिलीवर के लिए भेजा और वह
डिलीवर नहीं हुआ तो हम ऐसे ही उसे छोड़ दें। तो बेसिकली हम कह सकते हैं कि यह जो टीसीp प्रोटोकॉल होता है, यह मेक श्योर
करता है कि पैकेट डिलीवर हो ही। तो यहां पर हम कह सकते हैं कि डिलीवरी पैकेट्स यहां पर डिलीवर होगा ही। तो यह होता है
हमारा TCP प्रोटोकॉल। अब ये TCP प्रोटोकॉल में इस रिलायबल कनेक्शन के लिए हम थ्री वे हैंडशेक टेक्निक का यूज़ करते हैं। अब ये
थ्री वे हैंडशेक टेक्निक क्या होती है? तो इसमें सबसे पहला पॉइंट होता है कि क्लाइंट और सर्वर एक दूसरे को इंट्रोड्यूस करते
हैं। लेट्स से कि यह हमारे पास एक क्लाइंट है। तो यह हमारा हो गया क्लाइंट और यहां पे हो गया हमारा सर्वर। तो सबसे पहले एक
दूसरे को वो इंट्रोड्यूस करेंगे। जो दूसरा पॉइंट होता है वो यह कि दे एग्री ऑन हाउ दे विल टॉक। तो यहां वो सीक्वेंस नंबर
शेयर करते हैं और पोर्ट शेयर करते हैं। थर्ड होता है कि वो दोनों कंफर्म करते हैं कि ठीक है वी बोथ आर रेडी फॉर
कम्युनिकेशन। तो इसे एक एग्जांपल के थ्रू समझते हैं। तो सबसे पहले यह क्लाइंट एक कनेक्शन रिक्वेस्ट भेजेगा इस सर्वर को।
लेट्स से कि यह क्लाइंट आप हैं। दिस इज़ यू। एंड यह जो सर्वर है, यह आपका फ्रेंड है। तो, सबसे पहले यह क्लाइंट क्या करेगा?
यह कनेक्शन रिक्वेस्ट भेजेगा और लेट्स से यह बोलेगा हे हाउ आर यू? तो यहां पे बेसिकली हमने कॉन्वर्सेशन को स्टार्ट किया
और यहां हम एक कोई ऐसा रैंडम सीक्वेंस नंबर शेयर करेंगे सर्वर से। अब उसके बाद सर्वर बोलेगा लेट्स से आपका फ्रेंड बोलेगा
कि यस आई एम हियर आर यू रेडी? तो यह वो ऐसे एक एकनॉलेजमेंट सेंड करेगा और वहां यहां पे वो अपना भी एक सीक्वेंस नंबर शेयर
करेगा। अपना भी सीक्वेंस नंबर शेयर करेगा। और यहां हम सर्वर के रिस्पांस पे एक और एकनॉलेजमेंट सेंड करेंगे इस सर्वर को। तो
यहां पे ये थ्री डिफरेंट वेज़ में या थ्री डिफरेंट स्टेप्स में हमारा यह प्रोसेस कंप्लीट हुआ रिलायबल कनेक्शन इस्टैब्लिश
करने का। तो इसीलिए हम इसे बोलते हैं थ्री वे हैंडशेक। तो अब जैसे ही ये क्लाइंट ने सर्वर को एक और एकनॉलेजमेंट सेंड किया तो
हम कह सकते हैं कि अब दोनों ही साइड ये क्लाइंट एंड सर्वर दे बोथ आर रेडी फॉर कम्युनिकेशन और यहां फिर यहां फिर हम एक
क्लाइंट और सर्वर के बीच में कनेक्शन ओपन कर देंगे। तो यह होता है हमारा रिलायबल कनेक्शन थ्रू अह थ्री वे हैंडशेक। तो अब
इस टीसीp प्रोटोकॉल में क्या होता है कि क्लाइंट और सर्वर के बीच में लेट्स से ये क्लाइंट है और ये सर्वर है। तो यहां डेटा
को हम पैकेट्स के फॉर्म में सेंड करते हैं। और हर पैकेट के लिए हर डेटा पैकेट के लिए
सर्वर एक एकनॉलेजमेंट सेंड करता है। लेट्स से यहां हमने एक डेटा पैकेट सेंड किया। डेटा पैकेट सेंड किया। तो हर डेटा पैकेट
के लिए सर्वर एकनॉलेजमेंट सेंड करता है। अब लेट्स से कि बिकॉज़ ऑफ सम एक्स वz रीजन कोई डेटा पैकेट अच्छे से या सही से सर्वर
तक डिलीवर नहीं हुआ। तो इस केस में ऐसा नहीं होगा कि हम उसे छोड़ देंगे या उस पैकेट को डेटा पैकेट को वापस दोबारा सेंड
नहीं करेंगे। तो TCP प्रोटोकॉल में TCP कनेक्शन में यदि कोई डाटा पैकेट सही से डिलीवर नहीं हुआ तो इस केस में क्लाइंट
उसे रिसेंड करता है। वापस से उसे भेजता है सर्वर को और सर्वर फिर उस पैकेट के लिए एकनॉलेजमेंट सेंड करता है। तो यहां हम मेक
श्योर करते हैं कि हमारा हर पैकेट अच्छे से डिलीवर हो सर्वर तक। तो यहां डिलीवरी इज़ मस्ट। या हम डिलीवरी पर फोकस करते हैं।
और दूसरी चीज क्या होती है कि यहां पे हर पैकेट का एक सीक्वेंस होता है। यहां हम ऑर्डर मेंटेन करते हैं पैकेट्स के सेंड
होने का। हम ऑर्डर या सीक्वेंस मेंटेन करते हैं। तो लेट्स से कि यहां पे हमारे पास थ्री डिफरेंट डेटा पैकेट्स हैं। तो यह
एक ऑर्डर में डिलीवर होंगे और हर और हर पैकेट का एक सीक्वेंस नंबर होता है। तो यहां पे हम ऑर्डर पे भी फोकस कर रहे हैं
या सीक्वेंस पे भी फोकस कर रहे हैं। तो ये होता है हमारा TCP प्रोटोकॉल। अब यूडीपी प्रोटोकॉल इसका एकदम अपोजिट
होता है टीसीp प्रोटोकॉल का। तो यूडीपी प्रोटोकॉल इज़ कनेक्शन। यहां पे हम यहां पे बेसिकली थ्री वे हैंडशेक जैसा कुछ नहीं
होता। तो यह कनेक्शन है। यह अनरिलायबल है। अनरिलायबल है। अब इसका क्या मतलब है? कि लेट्स से डेटा हम सेंड कर रहे हैं। डेटा
पैकेट्स सेंड कर रहे हैं और लेट्स से कि कोई एक डेटा पैकेट सही से सेंड नहीं हुआ। डेटा पैकेट इज़ लॉस्ट। तो इस केस में कोई
भी उस डेटा पैकेट को दोबारा सेंड करने का ट्राई नहीं करता। तो हम कह सकते हैं कि ये अनरिलायबल है, कनेक्शन लेस है क्योंकि
यहां पे कोई कुछ भी थ्री वे हैंडशक जैसा नहीं है। सीधे हम डेटा पैकेट्स को स्टार सेंड करना स्टार्ट कर देते हैं। सो दिस इज़
कनेक्शन लेस। उसके बाद यहां पे कोई भी हम ऑर्डर मेंटेन नहीं करते कि डेटा पैकेट से एक ऑर्डर में या एक सीक्वेंस में जाएंगे।
तो यहां हम ऑर्डर मेंटेन जैसा भी कुछ नहीं है। तो अब यह यूडीपी प्रोटोकॉल क्योंकि अनरिलायबल है। यहां पे डेटा पैकेट्स को
दोबारा सेंड नहीं करना अ यह ऑर्डर भी मेंटेन नहीं करता। तो इस वजह से यह यूडीपी प्रोटोकॉल फास्ट बन जाता है। यूडीपी
प्रोटोकॉल फास्ट बन जाता है। और जो हमारा टीसीp प्रोटोकॉल है वो फास्ट नहीं होता। क्यों? क्योंकि यहां पे हम डिलीवरी को देख
रहे हैं कि सही से हर पैकेट डिलीवर हो रहा है या नहीं। बेसिकली यह टीसीपी प्रोटोकॉल रिलायबल होता है। तो यहां हर डिलीवरी हर
पैकेट की डिलीवरी पे ध्यान दिया जाता है। उसके बाद यहां हम ऑर्डर या सीक्वेंस भी मेंटेन करते हैं। तो इस वजह से ये टीसीपी
प्रोटोकॉल थोड़ा स्लो होता है। और यूडीपी प्रोटोकॉल इसका एकदम अपोजिट है। ये अनरिलायबल है। यहां ऑर्डर मेंटेन नहीं
करते। कनेक्शन लेस है। तो इस वजह से यूडीपी प्रोटोकॉल फास्ट होता है। तो ये था हमारा यूडीपी प्रोटोकॉल। अब यह यूडीपी
प्रोटोकॉल का हम यूज करते हैं वीडियो कॉल में, वीडियो स्ट्रीमिंग में, वीडियो कॉल में, वीडियो स्ट्रीमिंग में, वीडियो गेम्स
में। तो इन जगहों पर हम यूडीपी प्रोटोकॉल का यूज करते हैं। तो अब लेट्स से कि आप आपके फ्रेंड के साथ वीडियो कॉल कर रहे
हैं। तो ऐसा होता है कि बिकॉज़ ऑफ सम नेटवर्क इशू या किसी और वजह से कई बार कुछ फ्रेम्स मिस हो जाते हैं। कुछ फ्रेम्स मिस
हो जाते हैं। तो हम कह सकते हैं कि डेटा पैकेट्स मिस हो जाते हैं। तो क्या वो डेटा पैकेट्स या फ्रेम्स वापस से आपको देखने को
मिलते हैं? नहीं। उस पे जोर नहीं दिया जाता। हमारा वीडियो कॉल कंटिन्यू चालू रहता है। यूडीपी डाटा पैकेट्स को सेंड
करते रहता है। और जो लॉस्ट होते जा रहा है, जो फ्रेम्स मिस होते जा रहे हैं, तो उस पे वह ध्यान नहीं देता। और सिमिलरली
ऐसे ही यहां पे ऑर्डरिंग भी मेंटेन नहीं होती। लेट्स से बिकॉज़ ऑफ़ सम ग्लिच, कोई ग्लिच की वजह से कोई फ्रेम्स आगे पीछे चले
गए। तो, यहां पे यह भी मैटर नहीं करता। लेट्स से फ्रेम वन को पहले आना था, लेकिन, फ्रेम टू पहले चला गया। तो यहां पे इसका
भी ज्यादा कुछ फर्क नहीं पड़ता। तो ये होता है हमारा यूडीपी प्रोटोकॉल। तो अब हमने डिस्कस कर लिया हमारे ट्रांसपोर्ट
लेयर के प्रोटोकॉल्स। अब हम डिस्कस करते हैं हमारे एप्लीकेशन लेयर के प्रोटोकॉल्स को। तो एप्लीकेशन लेयर के प्रोटोकॉल्स में
हमारे पास होते हैं क्लाइंट सर्वर प्रोटोकॉल, क्लाइंट सर्वर प्रोटोकॉल और एक हमारे पास
होता है पीियर टू पीियर प्रोटोकॉल। पीियर टू पीियर प्रोटोकॉल। तो आप सबसे पहले समझते हैं क्लाइंट सर्वर प्रोटोकॉल्स को।
तो यह जो क्लाइंट सर्वर प्रोटोकॉल्स होते हैं, यह डिफाइन करते हैं कि कैसे क्लाइंट और सर्वर डेटा एक्सचेंज करेंगे। कैसे इनके
बीच में कम्युनिकेशन होगा। तो, यह क्लाइंट सर्वर प्रोटोकॉल में एक यहां हमारे पास क्लाइंट होता है और एक यह हमारे पास सर्वर
होता है। तो क्लाइंट सर्वर प्रोटोकॉल में क्लाइंट मेक्स अ रिक्वेस्ट। क्लाइंट हमेशा रिक्वेस्ट करता है और सर्वर उस रिक्वेस्ट
के लिए रिस्पांस देता है। तो यहां पे क्लाइंट हमेशा कनेक्शन इस्टैब्लिश करता है। सर्वर कभी भी सामने से रिस्पांस नहीं
देता। वो हमेशा रिस्पांस तभी देता है जब क्लाइंट रिक्वेस्ट करता है। तो इट इज़ अ वन वे कम्युनिकेशन काइंड ऑफ़ प्रोटोकॉल। तो
यहां हमें हमारे पास क्लाइंट हमेशा रिक्वेस्ट को इनिशिएट करेगा या कनेक्शन को इनिशिएट करेगा और सर्वर उस रिक्वेस्ट के
लिए रिस्पांस सेंड करेगा। तो इस क्लाइंट सर्वर प्रोटोकॉल में हमारे आ जाते हैं http प्रोटोकॉल, https
हमारे पास एफटीपी है जो कि फाइल ट्रांसफर के लिए यूज़ होता है। हमारे पास एसएमटीपी हैं। तो दे ऑल बेस्ड ऑन क्लाइंट सर्वर
प्रोटोकॉल। तो इन सब में क्या होता है कि ये वन वे कम्युनिकेशन प्रोटोकॉल्स हैं। जहां हमेशा क्लाइंट रिक्वेस्ट इनिशिएट
करेगा या कनेक्शन इनिशिएट करेगा। अब जो हमारा वेब सॉकेट है वो भी है क्लाइंट सर्वर प्रोटोकॉल ही लेकिन ये थोड़ा
डिफरेंट है। ये बायरेक्शनल होता है। जो हमारे ये प्रोटोकॉल्स थे http, https, एफटीपी, एसएमटीपी ये यूनडायरेक्शनल थे।
यहां पे हमेशा क्लाइंट रिक्वेस्ट इनिशिएट करता है। क्लाइंट कनेक्शन इनिशिएट करता है और सर्वर फिर रिस्पांस देता है और यहां
हमारा कनेक्शन क्लोज हो जाता है। लेकिन वेब सॉकेट जो है वो हमारा बायडायरेक्शनल है। अब वेब सॉकेट में क्या होता है कि
सर्वर और क्लाइंट लेट्स से ये हमारा क्लाइंट है। यह हमारा सर्वर है। तो वेब सॉकेट में क्लाइंट और सर्वर एक दूसरे को
इंडिपेंडेंटली मैसेजेस भेज सकते हैं। यहां जरूरी नहीं है कि यह सर्वर तभी रिस्पांस देगा जब क्लाइंट रिक्वेस्ट करेगा। यदि
सर्वर के पास इस क्लाइंट के लिए कुछ मैसेज है तो वह सामने से भी मैसेज कर सकता है। अब इन प्रोटोकॉल्स में क्या हो रहा था कि
लेट्स से इस सर्वर के पास यदि कुछ इंफॉर्मेशन है भी इस क्लाइंट के लिए तो भी यह तभी रिस्पांस देगा जब यह क्लाइंट
रिक्वेस्ट करेगा। लेकिन वेब सॉकेट में यदि इस सर्वर के पास लेट्स से कुछ इंफॉर्मेशन है इस क्लाइंट के लिए तो वो सामने से भी
मैसेज कर सकता है। इस इस वेब सॉकेट कम्युनिकेशन में यह जरूरी नहीं है कि क्लाइंट को हर बार रिक्वेस्ट करना पड़े।
तो ये होता है हमारा वेब सॉकेट कनेक्शन। अब यहां हमारे http, https, एफटीपी और एसएमटीपी यह होते हैं यूनीडरेक्शनल और यह
वेब सॉकेट होता है हमारा बायडरेक्शनल। इस वेब सॉकेट प्रोटोकॉल का यूज हम WhatsApp, Telegram जैसे एप्लीकेशन बनाने
में करते हैं। तो लेट्स से यह हम एक यूजर है। हमारा यूजर ए है WhatsApp का। यह यूजर बी है। और यहां हमारे पास लेट्स से
WhatsApp का सर्वर है। तो हम क्या करते हैं? सर्वर और क्लाइंट के बीच में या यूजर के बीच में एक वेब सॉकेट कनेक्शन
इस्टैब्लिश कर देते हैं। उससे क्या होता है कि वेब सॉकेट कनेक्शन इस्टैब्लिश हो जाने के बाद अब यह क्लाइंट और सर्वर एक
दूसरे को इंडिपेंडेंटली मैसेज भेज सकते हैं। तो यह क्लाइंट इस सर्वर को इंडिपेंडेंटली मैसेज भेज सकता है और यह
सर्वर क्लाइंट को इंडिपेंडेंटली मैसेज भेज सकता है। और इस सर्वर को वेट नहीं करना पड़ेगा इस क्लाइंट के रिक्वेस्ट करने के
लिए। यदि उसके पास कुछ मैसेज है इस क्लाइंट ए के लिए तो वो सामने से ही रिस्पांस भेज सकता है। तो यह होता है
हमारा वेब सॉकेट कम्युनिकेशन या वेब सॉकेट प्रोटोकॉल। अब हम देखते हैं http और https तो ये http https प्रोटोकॉल दे आर
रिस्पांसिबल फॉर द कंटेंट ऑफ योर वेब रिक्वेस्ट लाइक आस्किंग फॉर अ वेब पेज और सेंडिंग लॉग इन इनेशन तो लेट्स से आप कोई
एप्लीकेशन यूज़ लेट्स से Amazon या कोई और ई-कॉमर्स एप्लीकेशन तो वहां पे हम लॉगिन इनेशन से लॉगिन इनेशन सेंड करते हैं। लॉग
इन के लिए हम अपने पासवर्ड और ईमेल एड्रेस प्रोवाइड करते हैं। तो ये सारी रिक्वेस्ट होती हैं। ये होती हैं थ्रू http।
अब ये हो गया हमारा एचटीटीp कनेक्शन। अब ये HTTP प्रोटोकॉल हमारा अनइंक्रिप्टेड फॉर्म में डेटा भेजता है। तो जो हमारी
रिक्वेस्ट होती है वो अनइंक्रिप्टेड फॉर्म में जाती है। तो इस वजह से क्या होता है? डिफरेंट अटैक्स होने का हमें डर रहता है।
तो जो भी हमारे बड़े एप्लीकेशनेशंस होते हैं उसमें हम HTTPS का यूज़ करते हैं। HTTPS स्टैंड्स फॉर हाइपर टेक्स्ट
ट्रांसफर प्रोटोकॉल और एस का मतलब होता है सिक्योर। तो हम HTTP प्रोटोकॉल को जब सिक्योर कर देते हैं
थ्रू एसएसएल और टीएलएस। टीएलएस स्टैंड्स फॉर ट्रांसपोर्ट लेयर सिक्योरिटी। तो ये इंक्रिप्शन लेयर हम ऐड कर देते हैं थ्रू
टीएलएस जो हमें एक सिक्योर कम्युनिकेशन प्रोवाइड करता है ओवर द नेटवर्क। तो अब टी http में क्या हो रहा था कि जो भी हम
रिक्वेस्ट कर रहे थे वो अनइंक्रिप्टेड फॉर्म में जा रही थी। लेकिन https में हमने क्या किया कि एसएसएल और टीएलएस का
यूज़ करके एक इंक्रिप्शन लेयर ऐड कर दी। तो अब हमारे HTTPS में जो भी रिक्वेस्ट जाएगी वह वह इंक्रिप्टेड डाटा के फॉर्म में
जाएगी। तो यह होते हैं हमारे HTTP और HTTPS प्रोटोकॉल। अब एफटीपी प्रोटोकॉल हमारा होता है फाइल ट्रांसफर के लिए।
एसएमटीपी होता है हमारा मेल के लिए। तो एफटीपी हो गया हमारा फाइल ट्रांसफर के लिए। यह भी एक क्लाइंट सर्वर प्रोटोकॉल
है। और एसएमटीपी जो होता है हमारा वह होता है मेल के लिए। मेल सेंड करने के लिए, मेल सेंड के लिए और वेब सॉकेट हमने डिस्कस
कर ही लिया कि जो हमारा वेब सॉकेट होता है, यह WhatsApp और Telegram जैसे एप्लीकेशन बनाने में यूज़ हम करते हैं।
जहां हमें बायडायरेक्शनल कम्युनिकेशन की नीड होती है। तो, यह हो गए हमारे क्लाइंट सर्वर प्रोटोकॉल्स। अब आपने अक्सर सुना
होगा कि जो हमारा HTTP और HTTPS है यह TCP बेस्ड है। TCP प्रोटोकॉल बेस्ड है। तो इसका क्या मतलब होता है? तो इसका ये मतलब
होता है कि अब ये हमारे क्या है? ये हमारे एप्लीकेशन लेयर प्रोटोकॉल्स हैं। राइट? जिसके जिसके थ्रू हम डेटा को सेंड करेंगे
जिसके थ्रू हमारे डेटा की एक्चुअल डिलीवरी होगी। तो ये होता है हमारा डिलीवरी के लिए प्रोटोकॉल्स और टीसीp होता है हमारा
कनेक्शन स्टैब्लिश करने के लिए रिलायबल कनेक्शनस्टैब्लिश करने के लिए। तो अक्सर हमने सुना है कि हम बोलते हैं http और
https टीसीp बेस्ड प्रोटोकॉल है। तो इसका ये मतलब होता है कि http और https के थ्रू डेटा सेंड करने के पहले क्लाइंट और सर्वर
के बीच में एक थ्री वे हैंडशेक होता है जिसके थ्रू वो एक रिलायबल कनेक्शन या कम्युनिकेशन इस्टैब्लिश करते हैं और फिर
हम डेटा को या कोई भी रिक्वेस्ट को सेंड करते हैं थ्रू एचटीटीp और एचटीटीपीएस प्रोटोकॉल। तो ये मतलब होता है हमारा जब
हम सुनते हैं कि HTTP और HTTPS TCP बेस्ड प्रोटोकॉल है। तो इसका ये मतलब होता है। तो अब हमने देख लिया हमारे क्लाइंट सर्वर
प्रोटोकॉल्स। अब जो हमारा नेक्स्ट है वो है पीियर टू पीियर प्रोटोकॉल। पीियर टू पीियर प्रोटोकॉल। तो अब इस पीियर टू पीियर
प्रोटोकॉल में क्या होता है कि यहां पे क्लाइंट और सर्वर के बीच में कोई डिस्क्रिमिनेशन नहीं होता। क्लाइंट सर्वर
के बीच में कोई डिस्क्रिमिनेशन नहीं होता। हर कोई एक दूसरे को मैसेज सेंड कर सकता है। लेट्स से यहां पर हमारे पास दो
क्लाइंट हैं। क्लाइंट ए एंड क्लाइंट बी। तो पीियर टू पीियर में कोई भी किसी को भी इंडिपेंडेंटली मैसेजेस भेज सकता है। कोई
भी किसी को भी इंडिपेंडेंटली मैसेज भेज सकता है। तो यह होता है हमारा पीियर टू पीियर प्रोटोकॉल। क्लाइंट सर्वर प्रोटोकॉल
में क्या हो रहा था कि लेट्स से हमारे पास यह दो क्लाइंट हैं। क्लाइंट ए और क्लाइंट बी। तो क्लाइंट सर्वर प्रोटोकॉल में क्या
हो रहा था कि यह दोनों क्लाइंट आपस में एक दूसरे से डायरेक्ट कम्युनिकेट नहीं कर सकते। उनको कम्युनिकेशन के लिए एक सर्वर
की नीड थी। पर पीियर टू पीियर प्रोटोकॉल में क्या होता है कि दोनों ही क्लाइंट यह क्लाइंट ए और क्लाइंट बी दोनों आपस में एक
दूसरे से डायरेक्ट कम्युनिकेट कर सकते हैं। तो ये होता है हमारा पीियर टू पीियर प्रोटोकॉल और क्लाइंट सर्वर प्रोटोकॉल में
डिफरेंस। तो यस दिस इज ऑल फॉर दिस वीडियो। और इस वीडियो में अब हमने कवर कर लिया कि ट्रांसपोर्ट लेयर प्रोटोकॉल्स क्या होते
हैं? एप्लीकेशन लेयर प्रोटोकॉल्स क्या होते हैं? और कैसे डिफरेंट लेयर के प्रोटोकॉल्स साथ में काम करते हैं? सो यस
दिस इज़ ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन ब बाय। शो सम लव। थैंक्स। [संगीत]
हे एवरीवन, वेलकम बैक। वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। और आज के इस वीडियो में हम बात करने वाले हैं
स्केलिंग के बारे में। हम देखेंगे कि व्हाट इज़ स्केलिंग? स्केलिंग के डिफरेंट टाइप्स। और हम देखेंगे कि हमें स्केलिंग
की नीड क्या है? तो स्टार्ट करते हैं और स्केलिंग को समझते हैं एक एग्जांपल के थ्रू। तो, लेट्स से कि एक आपका पिज़्ज़ा
पार्लर है और उस पिज़्ज़ा पार्लर में पिज़्ज़ा शॉप में आपके पास केवल एक सिंगल शेफ है। सिंगल शेफ है। अब इस शेफ की दो क्वालिटीज
हैं। पहला तो यह कि यह बहुत स्लो है। दूसरा कि यह 1 घंटे में हर घंटे केवल दो ही ऑर्डर दो ही पिज़्ज़ा ऑर्डर प्रिपेयर कर
सकता है। सो, टू ऑर्डर पर आवर। तो यह इस शेफ की क्वालिटीज हैं। अब लेट्स से वीकेंड्स पे वीकेंड्स पे आपके पिज़्ज़ा
पार्लर पे या आपके पिज़्ज़ा शॉप पे हर घंटे 10 पिज़्ज़ा ऑर्डर्स 10 पिज़्ज़ा ऑर्डर आते हैं। हर घंटे 10 पिज़्ज़ा ऑर्डर आते हैं।
तो, अब इस केस में यह शेफ तो 10 पिज़्ज़ा ऑर्डर ले ही नहीं पाएगा क्योंकि इसकी मैक्सिमम कैपेसिटी है टू ऑर्डर्स पर आवर।
यह 1 घंटे में केवल दो ही आर्डर प्रिपेयर कर सकता है। तो अब इस केस में हम हमारे कस्टमर्स को वेट करने तो बोल नहीं सकते।
तो इस केस में हमें कुछ सॉल्यूशन चाहिए ताकि हम कस्टमर्स को कस्टमर्स को वेट भी ना कराएं और हम उन्हें पिज़्ज़ा भी टाइम पर
डिलीवर कर दें। तो अब इस केस में हमारे पास दो सॉल्यूशन हो सकते हैं। पहला कि हम इस स्लो शेफ की जगह ये जो हमारा शेफ है ये
स्लो है। तो इस स्लो शेफ की जगह हमें एक फास्ट शेफ रख लें। तो पहला हमारा सॉल्यूशन क्या है? कि हम एक फास्ट शेफ रख लें जो
तेजी से पिज़्ज़ा बना सकता है और जो 1 घंटे में 10 ऑर्डर बना सकता है। 10 पिज़्ज़ा बना सकता है। तो पहला सॉल्यूशन हमारा यह है कि
हम एक फास्ट शेफ रख लें। फास्ट शेफ रखेंगे। मतलब इसमें ज्यादा कैपेबल कैपेबिलिटी होगी पिज़्ज़ा
ऑर्डर बनाने की। और ये और ये स्ट्रांग होगा। पावरफुल होगा। पावरफुल होगा। स्ट्रांग होगा। तभी यह पिज़्ज़ा बना पा रहा
है। पावरफुल इन द सेंस पिज़्ज़ा बनाने में। तो, यह हो गया हमारा पहला सॉल्यूशन। और जो दूसरा सॉल्यूशन है, वो क्या हो सकता है कि
हम एक सिंगल शेफ ना रख के हम ऐसे तीन-चार शेफ हायर कर लें। तीन-चार शेफ हायर कर लें। तो, यह दो सॉल्यूशन होते हैं हमारे
पास इस प्रॉब्लम को सॉल्व करने के लिए। जहां हमारे पास वीकेंड्स पे दिन के 10 पिज़्ज़ा ऑर्डर आ रहे हैं। तो अब इसको
कंप्यूटर साइंस लैंग्वेज में बोलते हैं वर्टिकल स्केलिंग। वर्टिकल स्केलिंग या स्केल अप और इसे
बोलते हैं हॉरिजॉन्टल स्केलिंग। हॉरिजॉन्टल स्केलिंग।
या हम इसे बोलते हैं स्केल आउट। तो वर्टिकल स्केलिंग में बेसिकली हमने क्या किया कि हमने जो हमारा स्लो शेफ था उसको
हमने रिप्लेस कर दिया और हम एक फास्ट शेफ ले आए जो तेजी से पिज़्ज़ा बना सकता है। और हॉरिजॉन्टल स्केलिंग में हमने क्या किया
कि हमने नंबर ऑफ शेफ बढ़ा दिए। अब हमारा केवल एक शेफ नहीं है। अब हमारे पिज़्ज़ा शॉप में ऐसे मल्टीपल शेफ हो गए। तो अब कितने
भी ऑर्डर्स आएंगे? ये आपस में डिस्ट्रीब्यूट हो जाएंगे। लेट से 15 ऑर्डर्स आ रहे हैं। तो यह आपस में
डिस्ट्रीब्यूट हो जाएंगे ऑर्डर्स। कुछ ऑर्डर्स फर्स्ट शेफ को मिल जाएंगे। कुछ सेकंड को,
कुछ थर्ड को, कुछ फोर्थ को। ऐसे करके ये ऑर्डर्स को डिस्ट्रीब्यूट कर लेंगे एंड दे विल प्रिपेयर फूड एट टाइम। तो ये दो
सॉल्यूशन हमारे पास आते हैं। अब वर्टिकल स्केलिंग और हॉरिजॉन्टल स्केलिंग को समझते हैं। तो सबसे पहले हमें वी ऑल नो कि एक
हमारे पास होता है क्लाइंट एक हमारे पास होता है सर्वर। अब इस सर्वर पे हम क्या करते हैं? हम हमारा कोई भी एप्लीकेशन
होस्ट कर देते हैं। लेट्स से आपने कोई एप्लीकेशन बनाया तो उस एप्लीकेशन को आपने एक सर्वर या कंप्यूटर पे होस्ट कर दिया।
राइट? अब इस सर्वर की अपनी कैपेबिलिटी होगी। इसकी कुछ रैम होगी। इसमें कुछ सीपीयूस होंगे, पावरफुल सीपीू हो सकते
हैं। वीक CPU हो सकते हैं। तो ऐसे इस सर्वर की कुछ अपनी कैपेबिलिटी होगी। अब हमने एप्लीकेशन को हमारे एप्लीकेशन को इस
सर्वर पे होस्ट कर दिया। तो, यह जो हमारा क्लाइंट है, यह यूजर रिक्वेस्ट करेगा। यह रिक्वेस्ट करेगा और फिर यह सर्वर हमारा
एप्लीकेशन यहां इसे रिस्पांस देगा। तो बेसिकली यहां हम हमारा रिक्वेस्ट रिस्पांस साइकिल होगा। अब यदि हमारे एप्लीकेशन में
नंबर ऑफ यूज़र्स कम है लेट्स से नंबर ऑफ यूज़र्स फाइव 10 या लेट्स से 100 की रेंज में है तो इस केस में हम इस केस में
पॉसिबल है कि हमारा ये सर्वर हमारा जो सर्वर जहां हमने एप्लीकेशन होस्ट किया ये इन 100 यूज़र्स को ईजीली मैनेज कर सकता है।
लेकिन फ्यूचर में लेट्स से यदि हमारे एप्लीकेशन में नंबर ऑफ यूज़र्स बढ़ गए। लेट्स से नंबर ऑफ यूज़र्स 10,000 हो गए या
1 मिलियन नंबर ऑफ यूज़र्स हो गए। तो इस केस में अब यह पॉसिबल हो सकता है कि ये ये सर्वर हमारा इतना सारा लोड हैंडल ना कर
पाए। तो ये सर्वर अब क्योंकि हमारे नंबर ऑफ यूज़र्स बढ़ गए तो इस सर्वर पे आने वाली नंबर ऑफ रिक्वेस्ट भी बढ़ जाएंगी। तो इसकी
वजह से क्या होगा? क्या हो सकता है कि यह सर्वर शायद इतने ज्यादा लोड को हैंडल ना कर पाए। और ये सर्वर हमारा सिंगल पॉइंट ऑफ
फेलियर सिंगल पॉइंट ऑफ फेलियर बन सकता है। तो अब इस केस में हम क्या कर सकते हैं? हमारे पास दो ऑप्शंस हैं। या तो हम इस
सर्वर की कैपेसिटी को बढ़ा सकते हैं। इस सर्वर की कैपेसिटी को बढ़ा सकते हैं। और जो दूसरा ऑप्शन हमारे पास है वो है कि हम
ऐसे ही तीनचार और सर्वर को यूज़ कर लेंगे। बेसिकली हम क्या करेंगे? हम ऐसे ही तीन-चार और सर्वर को यूज़ कर लेंगे। और इन
तीनों चारों सर्वर में हमारे एप्लीकेशन को हमारे एप्लीकेशन को होस्ट कर देंगे। तो यहां पे हमने क्या किया? हमने नंबर ऑफ
सर्वर्स बढ़ा दिए। पहले हमारे पास केवल एक सर्वर था। अब हमने नंबर ऑफ सर्वर्स बढ़ा दिए। तो ये दो ऑप्शंस हैं हमारे पास। पहला
ऑप्शन है यह है कि हम अपने सर्वर की कैपेसिटी को बढ़ा दें। और जो दूसरा ऑप्शन हमारे पास है वह है कि हम नंबर ऑफ सर्वर्स
बढ़ा दें। अब हम सबसे पहले देखते हैं वर्टिकल स्केलिंग जिसमें हमने देखा कि हम अपने सर्वर की कैपेसिटी को बढ़ा दें। तो
वर्टिकल स्केलिंग में वर्टिकल स्केलिंग में हम क्या कर सकते हैं कि जो हमारा सर्वर था जो हमारे सर्वर की
कुछ कैपेसिटी होगी। उसकी कुछ रैम होगी। लेट से 16GB रैम 16GB रैम कुछ उसमें CPU होंगे। तो ऐसे
हमारे सर्वर की कैपेसिटी होगी। तो हम क्या कर सकते हैं? हम जो हमारा करंट सर्वर था उसकी जगह हम एक बड़ा सा मशीन या बड़ा सा
सर्वर खरीद सकते हैं। बड़ा सा सर्वर बाय कर सकते हैं। तो यहां हमारा जो सर्वर था इसको हमने रिप्लेस कर दिया और हम बड़ी
मशीन या बिग मशीन को लेकर आए। तो यहां हमने ये किया और अब इस सर्वर की लेट्स से रैम हो गई 32GB 32GB रैम रैम
और लेट्स से इसमें कुछ CPU हो गए स्ट्रांग CPU हो गए पावरफुल CPU हो गए तो हमने बेसिकली क्या किया हमने हमारे सर्वर को
हमारा जो प्रीवियस सर्वर था उसको रिप्लेस कर दिया एंड वी बोट बिगर मशीन अब वर्टिकल स्केलिंग में दूसरी चीज़ हम क्या कर सकते
हैं कि हम इसी सर्वर को इसी सर्वर की कैपेसिटी को बढ़ा दें। इसकी लेट्स से पहले रैम थी 16GB
16GB तो हम इसे एनहांस करके 32GB कर सकते हैं और सिमिलरली हम यहां नंबर ऑफ CPU भी बढ़ा सकते हैं और पावरफुल सीपीयूस लगा
सकते हैं। तो ये दो काम कर सकते हैं हम वर्टिकल स्केलिंग में। अब हॉरिजॉन्टल स्केलिंग में हम क्या करेंगे कि हम अ
सर्वर की कैपेसिटी को नहीं बढ़ाएंगे। इसके बजाय हम क्या करेंगे? हम नंबर ऑफ सर्वर्स को ही बढ़ा देंगे। लेट्स से पहले हमारे
पास केवल ये एक सर्वर था। अब हॉरिजॉन्टल स्केलिंग में हम क्या करते हैं? हम नंबर ऑफ सर्वर्स को ही बढ़ा देते हैं। अब यहां
हमारे पास नंबर ऑफ सर्वर्स तीन हो गए। तो तीनों सर्वर में हमने हमारे एप्लीकेशन को होस्ट कर दिया। तो अब
डिफरेंट-डिफरेंट यूज़र्स आएंगे। लेट्स से ये डिफरेंट-डिफरेंट यूज़र्स आएंगे। तो अब हमारे केवल एक ही सर्वर पे लोड नहीं
पड़ेगा। हमारे केवल एक ही सर्वर पे लोड नहीं पड़ेगा। अब यहां पे हम यूज़र्स की रिक्वेस्ट को डिस्ट्रीब्यूट कर सकते हैं
टू मल्टीपल सर्वर इंस्टेंसेस। तो ये काम होता है हमारे हॉरिजॉन्टल स्केलिंग का। अब एक बार हॉरिजॉन्टल स्केलिंग और वर्टिकल
स्केलिंग दोनों में डिफरेंस को देखते हैं। तो जो हमारा हॉरिजॉन्टल स्केलिंग होता है, हॉरिजॉन्टल स्केलिंग होता है। यहां पे
हमारे पास नंबर ऑफ मशीनंस ज्यादा होती है। लेट्स से हमारे पास नंबर ऑफ मशीनंस या नंबर ऑफ कंप्यूटरटर्स, नंबर ऑफ सर्वर्स
थ्री हैं। और वर्टिकल स्केलिंग में हमारे पास केवल एक बड़ा कंप्यूटर होता है। बड़ा कंप्यूटर होता है। तो ये हो गया हमारा
पहला डिफरेंस। अब हॉरिजॉन्टल स्केलिंग में हमें लोड बैलेंसर्स की नीड होती है। क्योंकि लोड बैलेंसर डिसाइड करता है कि
यूजर की रिक्वेस्ट को किस सर्वर इंस्टेंस पे राउट करना है। तो इसके लिए हमें यहां लोड बैलेंसर की नीड होती है। यहां पे
क्योंकि हमारे पास सिंगल एप्लीकेशन सर्वर है तो यहां हमें लोड बैलेंसर की नीड लोड बैलेंसर्स की नीड नहीं होती। अब जो तीसरा
हमारा पॉइंट है वह है कि यहां पर हमारे पास केवल एक सिंगल सर्वर है। और यदि इस सिंगल सर्वर में कुछ भी
प्रॉब्लम आती है या यह क्रैश हो जाता है तो इट विल बिकम सिंगल पॉइंट ऑफ फेलियर। सिंगल पॉइंट ऑफ फेलियर। लेकिन यहां पे
हमारे पास नंबर ऑफ सर्वर्स ज्यादा हैं तो यदि एक सर्वर या दो सर्वर क्रैश भी हो गए या किसी वजह से ये स्लो स्लो डाउन हो गए
एंड दे आर नॉट एबल टू हैंडल द ट्रैफिक। तो इस केस में हमारे पास हमारे पास अदर सर्वर्स भी होते हैं। अदर सर्वर
इंस्टेंसेस भी होते हैं। तो हम यूजर की रिक्वेस्ट को वहां राउट कर देते हैं। तो यहां पे हमारा सिंगल पॉइंट ऑफ फेलियर का
हमें डर नहीं रहता। तो हम कह सकते हैं कि इट इज़ रेिलिएंट।
रेिलिएंट। अब जो नेक्स्ट पॉइंट है हमारा वो है डेटा कंसिस्टेंसी। तो यहां पे हमारे पास केवल
एक ही सिंगल सर्वर है, बिगर सर्वर है। तो यहां पे डेटा हमेशा कंसिस्टेंट होता है। तो यहां हमें डेटा कंसिस्टेंसी देखने को
मिलती है। डेटा कंसिस्टेंसी देखने को मिलती है। लेकिन यहां पे हमारे पास अ डिफरेंट एप्लीकेशन सर्वर्स हैं। तो यहां
पे डेटा कंसिस्टेंसी कैन बिकम एन इशू। तो ये यहां पर डेटा कंसिस्टेंसी एक प्रॉब्लम हो सकती है। डेटा कंसिस्टेंसी
कैन बिकम अ बॉटल नेक हियर। जो नेक्स्ट पॉइंट है वो है स्केलिंग। अब यहां पे हम हमने क्या किया? हमने नंबर ऑफ मशीनंस या
नंबर ऑफ सर्वर्स को बढ़ा दिया। तो यदि अब हमारे नंबर ऑफ यूज़र्स इनक्रीस भी होते हैं। तो हम क्या कर सकते हैं? हम और
मशीनंस लगा सकते हैं। लेट्स से फोर फाइव। वैसे हम और मशीनंस भी लगा सकते हैं और हम ईजीली हमारे एप्लीकेशन को हमारे सिस्टम को
ईजीली स्केल कर सकते हैं। यदि हमारे नंबर ऑफ यूज़र्स बढ़ते हैं तो। लेकिन यहां पे हम एक हद तक ही इस सर्वर की कैपेसिटी को बढ़ा
सकते हैं। एक हद तक ही हम इसकी RAM को बढ़ा सकते हैं। पावरफुल CPU प्रोवाइड कर सकते हैं। तो यहां पे स्केलिंग जो होती है,
इट्स नॉट दैट इजी। तो यहां हम कह सकते हैं कि हमारे हार्डवेयर की एक लिमिट होती है। हार्डवेयर की एक लिमिट होती है। लेकिन
यहां पे स्केलिंग इज़ ईजी। स्केलिंग इज़ ईजी। अब जो नेक्स्ट पॉइंट है हमारा वो है कम्युनिकेशन से रिलेटेड। तो यहां पे
हॉरिजॉन्टल स्केलिंग में हमारे पास नंबर ऑफ सर्वर्स होते हैं। मल्टीपल सर्वर्स होते हैं। मल्टीपल सर्वर इंस्टेंसेस होते
हैं। तो इनमें आपस में कम्युनिकेशन होता है नेटवर्क कॉल्स के थ्रू। इनमें बेसिकली आरपीसी कम्युनिकेशन होता है। और जो
वर्टिकल स्केलिंग होती है यहां पे हमारे पास सिंगल एप्लीकेशन सर्वर होता है। और सिंगल एप्लीकेशन में हमारे पास मल्टीपल
सर्विसेज हो सकती हैं। मल्टीपल मॉड्यूल्स हो सकते हैं। तो यहां पे इंटरप्रो कम्युनिकेशन होता है। इंटर प्रोसेस
कम्युनिकेशन होता है। और यहां पे हमारे कम्युनिकेशन जो होता है सर्वर्स के बीच में वह होता है थ्रू नेटवर्क कॉल्स।
नेटवर्क कॉल्स। तो नेटवर्क कॉल्स की वजह से ये हमारा हॉरिजॉन्टल स्केलिंग होती है। ये थोड़ा स्लो हो जाती है और इंटरप्रोस
कम्युनिकेशन की वजह से हमारी वर्टिकल स्केलिंग जो होती है वो होती है फास्ट। अब क्वेश्चन ये आता है कि एक रियल वर्ल्ड में
रियल वर्ल्ड प्रोजेक्ट में रियल वर्ल्ड सिनेरियो में हमें कौन सी स्केलिंग यूज़ करना चाहिए? हॉरिजॉन्टल स्केलिंग या
वर्टिकल स्केलिंग? तो रियल वर्ल्ड केस में हम हाइब्रिड अप्रोच को देखते हैं। हाइब्रिड अप्रोच को अपनाते हैं। जिसमें हम
कुछ हॉरिजॉन्टल स्केलिंग की की फीचर्स को लेते हैं। और वर्टिकल स्केलिंग के भी कुछ फीचर्स को लेते हैं। हॉरिजॉन्टल
स्केलिंग के फीचर में हम लेते हैं एक रेिलिएंट। और दूसरा लेते हैं हम स्केलिंग। कि यहां
पे स्केलिंग इजी होती है। और वर्टिकल स्केलिंग में हम लेते हैं डेटा कंसिस्टेंसी और फास्ट। क्योंकि यह हमारा
वर्टिकल स्केलिंग होती है। वह फास्ट होती है बिकॉज़ ऑफ इंटर प्रोसेस कम्युनिकेशन। अब हॉरिजॉन्टल स्केलिंग में हम लोड
बैलेंसर का कांसेप्ट लेके आते हैं। यहां पे हमारा होता है लोड बैलेंसर और यहां पे हमारे पास मल्टीपल सर्वर इंस्टेंसेस होते
हैं। लेट्स से सर्वर वन, सर्वर टू, सर्वर थ्री। ऐसे हमारे पास मल्टीपल सर्वर इंस्टेंसेस होते हैं। और लेट्स से कि अब
हमारे पास ऐसे थाउजेंड्स ऑफ यूजर आ रहे हैं हमारे एप्लीकेशन में। थाउजेंड्स ऑफ यूजर आ रहे हैं। तो इस केस में एक सिंगल
सर्वर पे लोड नहीं पड़ता। एक सिंगल सर्वर पे लोड नहीं आता। जो यूज़र्स की रिक्वेस्ट होती हैं, वह डिस्ट्रीब्यूट हो जाती हैं
टू मल्टीपल सर्वर इंस्टेंसेस। और ऐसे करके हम ट्रैफिक को डिस्ट्रीब्यूट कर देते हैं। और केवल एक सर्वर पे केवल एक सर्वर
इंस्टेंस पे लोड नहीं पड़ता। सो दिस इज़ अबाउट हॉरिजॉन्टल स्केलिंग एंड वर्टिकल स्केलिंग। और हमने इसके डिफरेंस भी देखे
दोनों में। हमने देखा स्केलिंग की हमें नीड क्या है? हमने स्केलिंग को एक एग्जांपल के थ्रू भी समझा। सो यस दिस इज़
ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन बय। शो सम लव। थैंक्स।
[संगीत] हे एवरीवन वेलकम बैक वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज और
आज के इस वीडियो में हम बात करने वाले हैं कि कैसे हमारे एप्लीकेशन को फ्रॉम ज़ीरो टू मिलियन यूज़र्स तक स्केल कर सकते हैं। तो
स्टार्ट करते हैं और सबसे पहले डिस्कस करते हैं कि हमें स्केल करने की नीड क्या है? तो इसे एक एग्जांपल के थ्रू समझते
हैं। लेट्स से कि आप एक टिकट काउंटर पर खड़े हो। लेट्स से मूवी टिकट काउंटर पे। वहां पे यह कोई एक बंदा है। यह आपको
टिकट्स प्रोवाइड कर रहा है। अब लेट्स से कि अचानक से इस टिकट काउंटर पे लेट्स से 1000 यूज़र्स आ जाते हैं। जिनको मूवी टिकट
चाहिए। तो 1000 यूज़र्स के अचानक आने से क्या होगा कि सबसे पहले तो इस बंदे पे बहुत ज्यादा लोड आ जाएगा। दूसरा क्या कि
जो हमारा टिकट प्रोवाइड करने की स्पीड है, पेस है वह स्लो हो जाएगी क्योंकि अब 1000 पीपल हैं तो वन बाय वन प्रोसेसिंग होगी।
तो जो लेट्स से 500 के बाद के यूज़र्स हैं उनको बहुत लेट टिकट मिलेगी। तो इससे क्या हो रहा है? सबसे
पहले तो कि इस बंदे पे बहुत ज्यादा लोड आ जा रहा है। दूसरा क्या हो रहा है कि हमारा सिस्टम स्लो हो जा रहा है। तो इस प्रॉब्लम
को हम कैसे सॉल्व कर सकते हैं? हम इस प्रॉब्लम को ऐसे सॉल्व कर सकते हैं कि हम एक और टिकट काउंटर बना दें और वहां पे भी
हम किसी एक आदमी को बिठा दें तो यह भी सेम टिकट प्रोवाइड करेगा। तो अब यह 1000 लोगों को
हम 500 500 में डिवाइड कर सकते हैं। 500 500 में हम डिवाइड कर सकते हैं। तो 500 पीपल विल गो देयर। 500 पीपल विल कम हियर।
तो ऐसे करके हम इन पे से लोड कम कर सकते हैं। और अब जो लेट्स से 500 के बाद के यूज़र्स थे उनको भी जल्दी टिकट मिलेगी। तो
ऐसे करके हमारा जो सिस्टम की जो परफॉर्मेंस डिक्रीज हो गई थी उसको भी हम हमने मेंटेन कर लिया। तो ये होती है हमें
स्केलिंग की नीड। अब सेम काम हमारे सिस्टम्स में होता है। लेट्स से कि हमारा कोई एप्लीकेशन है और उसमें एक साथ हमारे
पास 1000 रिक्वेस्ट या 5000 रिक्वेस्ट आ रही हैं या 10,000 रिक्वेस्ट आ रही हैं। तो उससे क्या होता
है? सबसे पहले जो हमारा सर्वर वो स्लो काम करने लगता है तो वह स्लो काम करने लगता है। उसकी परफॉर्मेंस डिक्रीज हो
जाती है। दूसरा क्या होता है कि वो पूरा का पूरा सिस्टम हमारा क्रैश कर सकता है। तो ये सारी प्रॉब्लम्स से बचने के लिए हम
हमारे सिस्टम को स्केल करते हैं। अब देखते हैं और समझते हैं कि कैसे हम हमारे एप्लीकेशन को फ्रॉम ज़ीरो टू मिलियन यूज़र्स
तक स्केल कर सकते हैं। तो जब हम कॉलेज में कॉलेज स्टेज़ में कोई भी प्रोजेक्ट बनाते हैं तो उसमें क्या होता है कि हम सेम
सर्वर के अंदर अपना एप्लीकेशन भी रखते हैं। सेम सर्वर के अंदर हमारा एप्लीकेशन भी होता है। एप्लीकेशन दैट मींस बिनेस
लॉजिक। तो यह एप्लीकेशन एक नोट js एप्लीकेशन हो सकता है या स्प्रिंग बूट एप्लीकेशन हो सकता है। तो हम हमारे सेम
सर्वर में सिंगल सर्वर में हमारा एप्लीकेशन भी रन हो रहा होता है और उसी सेम सर्वर में हमारा डेटाबेस भी होता है।
अ इट कैन बी अ मंगो डीबी डेटाबेस और एनी सीक्वल डेटाबेस। तो क्या होता है कि हमारे सिंगल सर्वर में एप्लीकेशन भी रन होता है
और डेटाबेस भी रन होता है। तो इस केस में हमारा क्लाइंट सर्वर से डायरेक्ट कम्युनिकेट कर सकता है। और अब इस सर्वर
में एप्लीकेशन भी है और डेटाबेस भी है। तो ये जो हमारा क्लाइंट है यह सर्वर के साथ डायरेक्ट कम्युनिकेट कर सकता है। तो ये था
हमारा पहला पॉइंट जहां पे हमारे पास केवल एक सिंगल सर्वर होता है और उसी सिंगल सर्वर में हमारे पास एप्लीकेशन भी होता
है। दैट मींस बिनेस लॉजिक और डेटाबेस भी होता है। तो ये था हमारा पहला पॉइंट। अब नेक्स्ट क्या होता है कि लेट्स से हमारे
एप्लीकेशन में कुछ यूज़र्स आते हैं। कुछ यूज़र्स बढ़ जाते हैं हमारे सिस्टम में। तो अब हम क्या करते हैं कि हम हम एप्लीकेशन
के लिए बिजनेस लॉजिक के लिए एक सेपरेट सर्वर यूज करते हैं और डेटाबेस के लिए हम एक सेपरेट सर्वर यूज़ करते हैं। तो अब यहां
पे देखिए कि हमने हमारे डेटाबेस को एक सिंगल सर्वर में रखा और यहां पे एप्लीकेशन को भी एक सिंगल सर्वर में रखा। तो क्लाइंट
विल मेक अ रिक्वेस्ट और ये रिक्वेस्ट जाएगी एप्लीकेशन सर्वर के पास और फिर एप्लीकेशन सर्वर इस डेटाबेस को कॉल करेगा।
यदि वो रिक्वेस्ट में कोई डेटाबेस रिलेटेड ऑपरेशन परफॉर्म होना है तो ये एप्लीकेशन इस डेटाबेस को क्वेरी करेगा। तो अब इस केस
में हमने क्या किया कि जो हमारे सिंगल सर्वर पे लोड पड़ रहा था यह सर्वर हमारा एप्लीकेशन को भी लॉ मेंटेन कर रहा था और
डेटाबेस को भी मेंटेन कर रहा था। तो अब इस केस में हमने क्या किया कि हमने लोड को डिस्ट्रीब्यूट कर दिया। अब हमारा जो
एप्लीकेशन सर्वर होगा वो सिर्फ बिजनेस लॉजिक से रिलेटेड अ टास्क परफॉर्म करेगा और उस पे सिर्फ उतना ही लोड रहेगा। और जो
हमारा डेटाबेस सर्वर होगा उस पे सिर्फ डेटाबेस का लोड होगा। तो ऐसे करके हमने हमारे एप्लीकेशन और डेटाबेस के लिए
डिफरेंट-डिफरेंट सर्वर्स यूज़ किए। अब लेट्स से कि हमारे एप्लीकेशन में और यूज़र्स बढ़ जाते हैं और जो हमारा सिंगल
एप्लीकेशन सर्वर था यह सिंगल एप्लीकेशन सर्वर था यह बहुत ज्यादा ट्रैफिक को कंट्रोल नहीं कर पा रहा था। तो इससे क्या
हो रहा था कि या तो हमारा सिस्टम क्रैश कर सकता था। हमारा सिस्टम क्रैश कर सकता था। हमारे सिस्टम की परफॉर्मेंस स्लो हो सकती
थी। क्योंकि अब यहां पे रिसोर्सेज बहुत ज्यादा यूज़ हो रहे होंगे। CPU, हमारा मेमोरी। तो ये सब बहुत ज्यादा यूज हो रहे
होंगे। इनका इनका यूटिलाइजेशन बढ़ जाएगा। तो इससे क्या होगा? हमारे सिस्टम की परफॉर्मेंस स्लो हो सकती है। और एक एक चीज
और कि अब यहां पे हमारे पास केवल एक सिंगल एप्लीकेशन सर्वर था। तो इट कैन बिकम अ सिंगल पॉइंट ऑफ़ फेलियर। तो अब क्या होता
है कि जैसे ही हमारे पास नंबर ऑफ यूज़र्स बढ़ते हैं, तो हम क्या करते हैं? हम मल्टीपल एप्लीकेशन सर्वर्स का यूज़ कर लेते
हैं। अब हम हमने क्या किया कि हमने ऐप सर्वर्स को बढ़ा दिया। पहले हमारे पास एक सिंगल एप्लीकेशन सर्वर था। अब हमारे पास
तीन एप्लीकेशन सर्वर्स हैं। लेकिन अब इस क्लाइंट को तो नहीं पता कि उसको अपनी रिक्वेस्ट को कौन किस एप्लीकेशन सर्वर पे
भेजना है। राइट? तो, यह काम कौन करता है? यह काम करता है हमारा लोड बैलेंसर। लोड बैलेंसर डिसाइड करता है कि यूजर की
रिक्वेस्ट को इस क्लाइंट की रिक्वेस्ट को किस ऐप सर्वर में राउट करना है। बेसिकली यह लोड बैलेंसर
डिसीजन करेगा कि यूजर की रिक्वेस्ट को किस ऐप सर्वर पे भेजना है बेस्ड ऑन द ट्रैफिक एंड सम अदर पैराटर्स कि कौन सा हमारा
एप्लीकेशन सर्वर एक्टिव है, कौन सा हमारा एप्लीकेशन सर्वर इनएक्टिव है। तो ये सारे पैराटर्स के बेसिस पे लोड बैलेंसर डिसाइड
करेगा कि यूजर की रिक्वेस्ट को किस एप्लीकेशन सर्वर पर भेजना है। तो यहां ये होता है हमारा थर्ड पॉइंट जहां हमने नंबर
ऑफ यूज़र्स के बढ़ने से मल्टीपल एप्लीकेशन सर्वर्स यूज़ किए। प्लस हमने लोड बैलेंसर का कांसेप्ट भी यूज़ किया। अब लोड बैलेंसर
के बारे में मैंने ऑलरेडी वीडियोस बना चुकी हैं। सो इफ यू वांट टू नो कि कैसे लोड बैलेंसर्स काम करते हैं लोड बैलेंसर
के डिफरेंट टाइप्स एंड सम ऑफ़ द लोड बैलेंसिंग एल्गोरिदम। सो आई हैव मेड अ सेपरेट वीडियो ऑन दैट। सो, प्लीज गो एंड
वॉच दैट वीडियो फॉर बेटर अंडरस्टैंडिंग। तो, यह था हमारा तीसरा पॉइंट जहां हमने मल्टीपल एप्लीकेशन सर्वर्स को यूज़ किया।
प्लस हमने लोड बैलेंसर को यूज़ किया टू डिस्ट्रीब्यूट टू द ट्रैफिक। अब जो नेक्स्ट पॉइंट हमारा आता है वो था डेटाबेस
रेप्लीकेशन। अब यहां क्या हो रहा था कि हमने एप्लीकेशन सर्वर्स को तो स्केल कर दिया था। हमने नंबर ऑफ एप्लीकेशन सर्वर
बढ़ा दिए थे। लेकिन हमारा के हमने डेटाबेस हमारा केवल एक ही था। तो व्हाट इफ कि हमारा ये डेटाबेस क्रैश हो जाता है। व्हाट
इफ हमारा डेटाबेस क्रैश हो जाता है या इसमें कुछ प्रॉब्लम आ जाती है। तो इस केस में कोई भी यूजर की रिक्वेस्ट फुलफिल नहीं
हो पाएगी। राइट? क्योंकि डेटाबेस ऑलरेडी क्रैश हो चुका है। तो लेट्स से कि कोई यूजर आता है और उसे अपनी पर्सनल डिटेल
चाहिए या पर्सनल इनेशन चाहिए। तो अब यह डेटाबेस उस यूजर की रिक्वेस्ट को अ फुलफिल नहीं कर पाएगा क्योंकि ये डेटाबेस अभी
डाउन है या प्रॉपर्ली वर्क नहीं कर रहा है फॉर सम बिकॉज़ ऑफ़ सम एक्स वzेड रीज़न। तो, क्या हो रहा था कि हमें यहां पे डेटाबेस
हमारा सिंगल पॉइंट ऑफ़ फेलियर बन गया था। कि यदि ये डेटाबेस हमारा फेल होता है तो अब कोई भी यूजर की रिक्वेस्ट फुलफिल नहीं
हो पाएगी। तो इसके लिए हमने क्या किया? हमने डेटाबेस स्केल कर दिया। हमने डेटाबेस रेप्लिकेशन किया। हमने यहां मास्टर स्लेव
आर्किटेक्चर को यूज़ किया। तो अब समझते हैं कि इसमें हुआ क्या? तो पहले हमारे पास क्या था कि डेटाबेस के लिए हमने केवल एक
सिंगल सर्वर यूज किया था और यदि वो हमारा सर्वर क्रैश हो जा रहा था तो हमारा यूजर की हम कोई भी क्वेरी को कोई भी उसकी
रिक्वेस्ट को फुलफिल नहीं कर पा रहे थे। लेकिन अब यहां पे क्या हुआ कि हमने एक मास्टर नोड लिया अ इट कैन बी अ सर्वर वन
ऑफ़ द सर्वर और यहां पे हमने डिफरेंट स्लेव नड्स भी लिए। तो अब क्या हो रहा है कि लेट्स से कोई यूजर या क्लाइंट रिक्वेस्ट
करेगा। यह रिक्वेस्ट जाएगी वन ऑफ द एप्लीकेशन सर्वर पे और उसके बाद लेट्स से क्लाइंट को या यूजर को अपनी पर्सनल डिटेल
चाहिए। तो यह रीड ऑपरेशन के लिए रीड रिक्वेस्ट के लिए यह रिक्वेस्ट जाएगी वन ऑफ द स्लेव के पास। तो यह स्लेव सर स्लेव
सर्वर या स्लेव नोट्स क्या करेंगे? यूजर की रीड रिक्वेस्ट को फुलफिल करेंगे। लेट्स से कि इस यूजर को अपनी पर्सनल डिटेल चाहिए
तो यह रिक्वेस्ट जाएगी वन ऑफ द स्लेव के पास। तो यह स्लेव यूजर की रिक्वेस्ट को फुलफिल करेंगे। और यदि कोई राइट ऑपरेशन
आता है लेट्स से यूजर को अपना ईमेल एड्रेस चेंज करना है या कोई और इंफॉर्मेशन अपडेट करनी है बेसिकली राइट ऑपरेशन राइट
रिक्वेस्ट। तो ये राइट ऑपरेशन जाएगा हमेशा मास्टर नोड के पास। मास्टर नोड के पास। तो बेसिकली यहां पे हमने क्या किया? हमने
डेटाबेस रेप्लिकेशन किया। तो अब हमारे मास्टर नोड में या हमारे मास्टर डेटाबेस में कोई भी राइट ऑपरेशन परफॉर्म होगा हम
उस हम उस चेंज को या हम उस राइट ऑपरेशन को हर एक स्लेव नोड में रेप्लिकेट कर देंगे। तो हम कह सकते हैं कि ये जो हमारे स्लेव
नोड्स होते हैं यह कॉपी होती है इस मास्टर नोड की। तो बेसिकली कोई भी राइट ऑपरेशन आएगा वो इस मास्टर नोड में वो चेंज होगा
और फिर ये मास्टर नोड उस चेंज को रेप्लिकेट कर देगा टू ऑल इट्स स्लेव नोड। तो ये होता है हमारा डेटाबेस रेप्लिकेशन।
तो डेटाबेस रेप्लिकेशन करके अब हमने क्या किया कि ये जो हमारा डेटाबेस से सिंगल पॉइंट ऑफ फेलियर वाली प्रॉब्लम बन रही थी
कि हमारा डेटाबेस सिंगल पॉइंट ऑफ फेलियर बन रहा था। उस प्रॉब्लम को हमने सॉल्व कर दिया। तो अब लेट्स से कि यदि हमारा स्लेव
वन डाउन होता है तो हमारे पास मल्टीपल स्लेव नोड्स हैं। राइट? स्लेव वन यदि डाउन होगा तो यूजर की रिक्वेस्ट को स्लेव टू
सर्व कर सकता है। स्लेव थ्री कर सर्व कर सकता है। स्लेव फोर सर्व कर सकता है। और एक अब यहां पे डाउट आता है कि व्हाट इफ
हमारा मास्टर नोड ही डाउन हो जाए। तो यदि ऐसा कुछ होता है कि हमारा मास्टर नोड डाउन हो जाता है तो इस केस में क्या होता है कि
वन ऑफ द स्लेव नोड विल बिकम अ मास्टर नोड। तो हमारा स्लेव नोड मास्टर नोड बन जाएगा और वो एज अ मास्टर नोड वर्क करेगा। और फिर
यह स्लेव नोड क्या करेगा? यह राइट ऑपरेशंस को लेने लगेगा। क्यों? क्योंकि अब ये मास्टर नोड एज अ मास्टर नोड वर्क कर रहा
है। तो ऐसे करके हमने हमारे डेटाबेस की सिंगल पॉइंट ऑफ फेलियर वाली प्रॉब्लम को सॉल्व कर दिया थ्रू मास्टर स्लेव
आर्किटेक्चर। तो ये था हमारा फोर्थ पॉइंट जहां हमने डेटाबेस रेप्लिकेशन किया। अब जो थर्ड फिफ्थ पॉइंट हमारा आता है वो है कैश
मेमोरी फॉर बेटर परफॉर्मेंस। तो अब इसे समझते हैं कि कैश मेमोरी होती क्या है? तो ये हमारे डिफरेंट एप्लीकेशन सर्वर्स हैं।
बेसिकली हम कह सकते हैं कि हमारा एप्लीकेशन टियर है और ये हमारा डेटा टियर है जहां हमारा डेटाबेस है। तो ये हमारे
पास डिफरेंट ऐसे एप्लीकेशन सर्वर्स हैं। राइट? और यहां पर यह डाटा टियर है। जहां हमारे डिफरेंट स्लेव नोड्स हैं और एक
हमारा मास्टर नोड है। तो अब लेट्स से कि ये कोई क्लाइंट रिक्वेस्ट करता है। तो रिक्वेस्ट सबसे पहले पहले वन ऑफ द
एप्लीकेशन सर्वर्स के पास जाती है। राइट? यह लोड बैलेंसर डिसाइड करता है कि किस एप्लीकेशन सर्वर के पास यूजर की रिक्वेस्ट
जाएगी। अब लेट्स से कि यह क्लाइंट रिक्वेस्ट करता है कि मुझे अपनी पर्सनल इनेशन चाहिए। लेट्स से हमारे पास कोई
एप्लीकेशन है। लेट्स से ई-कॉमर्स काइंड ऑफ़ एप्लीकेशन है। और उस एप्लीकेशन में क्लाइंट बोलता है कि मुझे अपनी पर्सनल
इंफॉर्मेशनेशन चाहिए। तो लेट्स से कि इस क्लाइंट से इस ऐप सर्वर वन तक जाने में रिक्वेस्ट जाने में 2 मिलीसे का टाइम लग
रहा है। राइट? अब ये एप्लीकेशन सर्वर के पास इंफॉर्मेशनेशन नहीं है। ये एप्लीकेशन सर्वर कहां से इंफॉर्मेशन लेके आ रहा है?
ये एप्लीकेशन सर्वर जाएगा किसी स्लेव नड के पास और वहां से पूछेगा कि ये यूजर है। इसकी मुझे डिटेल चाहिए। तो अब लेट्स से कि
ये एप्लीकेशन सर्वर वन स्लेव वन के पास जाता है। स्लेव नड के पास जाता है और वहां से यह यूजर की पर्सनल इंफॉर्मेशनेशन लेके
आता है। अब लेट्स से कि ऐप सर्वर वन से स्लेव नड तक जाने में 4 मिलीसे का टाइम लग रहा है। क्यों?
क्योंकि डेटाबेस ऑपरेशंस जो होते हैं दे आर वेरी कॉस्टली। स्पेशली जब हमारे नंबर ऑफ यूज़र्स बढ़ जाते हैं तो डेटाबेस क्वेरीज़
स्लो हो जाती हैं। तो डेटाबेस ऑपरेशंस वैसे ही दे आर वेरी कॉस्टली। तो अब क्या हो रहा है कि ऐप सर्वर वन को स्लेव वन तक
जाने में बेसिकली उससे रिक्वेस्ट करने में 4 मिलीसे का टाइम लग रहा है। अब 4 मिलीसे लेट्स से रिक्वेस्ट को स्लेव वन से ऐप
सर्वर आने में भी लगेगा। राइट? तो यहां 4 मिलीसे यह हो गया और फिर यह ऐप सर्वर से वन से वापस इस क्लाइंट तक रिस्पांस जाने
में भी लेट्स से 2 मिलीसे का टाइम लग रहा है। तो इफ वी कैलकुलेट तो ये कितना हो जाएगा? 2 + 4 6 + 4 10 + 2 12 तो बेसिकली
हम कह सकते हैं कि 12 मिलीसे में यूजर को अपना रिस्पांस मिल जा रहा है या यूजर को अपनी पर्सनल डिटेल्स मिल जा रही हैं। पर
यदि हम कैश मेमोरी यूज़ करते हैं तो उससे क्या फायदा होगा? अब हम देखते हैं तो कैश मेमोरी हम डिस्ट्रीब्यूटेड कैश यहां यूज़
कर रहे हैं। तो अब कोई भी रिक्वेस्ट आएगी उसको डायरेक्ट डेटाबेस में या डेटाबेस में चेक नहीं करना कि लेट्स से यूजर ने कुछ
रिक्वेस्ट किया तो हर बार ये ऐप सर्वर को यहां डेटाबेस या किसी स्लेव डेटाबेस के पास नहीं आना। वो क्या करेगा? सिंपली इस
कैश मेमोरी में चेक करेगा कि लेट्स से मेरे पास एक यूजर है। क्या इस यूजर की इंफॉर्मेशन यहां स्टर्ड है। यदि यह यूजर
की इंफॉर्मेशनेशन स्टर्ड होगी तो यह ऐप सर्वर यहीं से कैश मेमोरी से ही यूजर की रिक्वेस्ट को फुलफिल कर देगा और उसे
डेटाबेस तक जाना नहीं पड़ेगा। तो लेट्स से कि अब क्लाइंट को ऐप सर क्लाइंट की रिक्वेस्ट को ऐप सर्वर थ्री तक आने में
लेट्स से 2 मिली सेकंड का टाइम लग रहा है और कैश से वो इंफॉर्मेशनेशन फाइंड आउट करने में लेट्स से 1 मिलीसे का टाइम लग
रहा है। ऐसा क्यों? क्योंकि जो हमारी कैश मेमोरी होती है इट इज़ फास्ट बिकॉज़ इट इज़ इन मेमोरी सॉल्यूशन। तो यहां पे 1 मिलीसे
का टाइम लगा और इस कैश से इस डेटा को लेने में यहां पे भी लेट्स से 1 मिलीसे। बेसिकली ऐप सर्वर ने रिक्वेस्ट किया ऐप
सर्वर 3 ने कैश से तो इसमें 1 मिलीसे का टाइम और कैश से इस ऐप सर्वर 3 तक रिस्पांस जाने में 1 मिलीसे का टाइम और उसके बाद ऐप
सर्वर थ्री से क्लाइंट तक वापस रिस्पांस जाने में 2 मिलीसे और टाइम लगा। तो ये कितना हो गया? 2 + 2 4 5 एंड 6 तो यू कैन
सी कि जो रिक्वेस्ट 12 मिलीसे में फुलफिल हो रही थी वो यहां पे 6 मिलीसे में फुलफिल हो गई इफ वी आर यूजिंग कैश मेमोरी तो यू
कैन सी कि कैश मेमोरी का यूज़ करने से हमने क्वेरीज़ को या हमने हमारे सिस्टम को की परफॉर्मेंस को बढ़ा दिया और हमने हमारे
सिस्टम को फास्ट कर दिया। तो यह हो गया हमारा कैश मेमोरी का यूज़। अब व्हाट इफ की कैश मेमोरी में यूजर की डिटेल नहीं है।
लेट्स से ये क्लाइंट आया। ये यूजर आया और बोला मुझे पर्सनल डिटेल चाहिए। अब व्हाट इफ की इस कैश मेमोरी में यूजर की डिटेल
नहीं है। तो इस केस में क्या होता है? फिर ऐप सर्वर को वापस स्लेव नड में ही जाना पड़ता है। स्लेव नड के पास जाना पड़ता है।
और फिर यह स्लेव नड से यूजर की डिटेल लेके आएगा। और यहां पे फिर यह डिटेल को कैश मेमोरी में स्टोर करेगा फॉर फ्यूचर
रेफरेंस। और फिर यह यूजर की डिटेल को क्लाइंट को भेज देगा। तो, यह होता है हमारा कैश मेमोरी का यूज़। और हमने देखा कि
कैसे हम कैश का यूज करके कैश मेमोरी का यूज करके हम हमारे सिस्टम की परफॉर्मेंस को बढ़ा सकते हैं। और हमारे जो रिक्वेस्ट
का रिस्पांस टाइम है या हम कह सकते हैं हम लेटेंसी को हम डिक्रीज कर सकते हैं। जो काम हमारा डेटाबेस के थ्रू 12 मिलीसे में
हो रहा था वो हमने कैश के थ्रू 6 मिलीसे में कंप्लीट कर दिया। तो ये था हमारा फिफ्थ पॉइंट जहां हमने देखा कैश मेमोरी।
अब जो हमारा नेक्स्ट पॉइंट है वो है सीडीएन। तो सीडीएन को हम बोलते हैं कंटेंट डिलीवरी नेटवर्क। और यह जो हमारा सीडीएन
होता है इट डज़ कैशिंग। बेसिकली हम कह सकते हैं कि सीडीएन हमारा कैशिंग करता है और यह हमारा सीडीएन हमें स्टैटिक डेटा स्टोर
करने में हेल्प करता है। स्टैटिक डेटा जैसे HTML पेजेस, HTML पेजेस, अ वीडियोस, वीडियोस, इमेजेस। तो ऐसा यदि हमारे पास
कोई स्टैटिक डेटा है तो ये स्टैटिक डेटा स्टोर करने में सीडीए हमारी हेल्प करता है। अब सीडीए को हम एक एग्जांपल के थ्रू
समझते हैं। लेट्स से कि हमने कोई एक ग्लोबल एप्लीकेशन बनाया अ Netflix जैसा या लेट्स से SWGI जैसा। तो हमने कोई एक
ग्लोबल एप्लीकेशन बनाया। अब इस ग्लोबल एप्लीकेशन में हमारे पास डे डेटा सेंटर्स हैं। राइट? इस डेटा सेंटर में हमारे पास
एप्लीकेशन सर्वर्स भी आ जाएंगे। एप्लीकेशन सर्वर आ जाएंगे। हमारे पास डेटाबेस सर्वर्स आ जाएंगे। जहां हम मास्टर नोड और
स्लेव नोड देखेंगे। तो हमारे पास ऐसे डेटा सेंटर में एक डेटा सेंटर के अंदर हमारे पास एप्लीकेशन सर्वर्स भी होंगे।
डाटा सेंटर के अंदर हमारे पास एप्लीकेशन सर्वर्स भी होंगे और हमारे पास डेटाबेस सर्वर्स भी होंगे जिसमें हमारे
पास मास्टर नोड भी होंगे प्लस स्लेव नोड भी होंगे। तो ये हो गया हमारा एक डेटा सेंटर। अब यदि हम ग्लोबल एप्लीकेशन बनाते
हैं Netflix जैसा तो क्या होता है कि हम डेटा सेंटर्स को इन डेटा सेंटर्स को ज्योग्राफिकली डिस्ट्रीब्यूट कर देते हैं।
तो क्या होता है कि लेट्स से एक डाटा सेंटर हमारा इंडिया में है। एक डेटा सेंटर हमारा इंडिया में है और एक डेटा सेंटर
हमारा लेट्स से यूएसए में है। एक डेटा सेंटर हमारा लेट्स से यूएसए में है। तो ऐसे करके हमने डिस्ट्रीब्यूट कर दिया।
रीजन वाइज रीजन वाइज डिस्ट्रीब्यूट कर दिया। एक डाटा सेंटर हमारा इंडिया रीजन में है। एक डाटा सेंटर हमारा लेट्स से
यूएसए रीजन में है। अब क्या हो सकता है कि लेट्स से बहुत ज्यादा ट्रैफिक एक दूसरे रीजन से यूके रीजन से आ रहा है। तो इस केस
में क्या होता है कि यूजर की रिक्वेस्ट को बहुत ट्रैवल करना पड़ता है और यह हमारा लेटेंसी को इंक्रीस कर देता है। क्यों?
क्योंकि यह यूजर जो है यह यूके में है और डेटा सेंटर इंडिया में है या यूएसए में है। तो इस केस में क्या होता है कि यूजर
की रिक्वेस्ट को बहुत ट्रैवल करना पड़ता है और इससे क्या होता है? लेटेंसी इनक्रीस हो जाती है और इट गिव्स बैड यूजर
एक्सपीरियंस टू यूजर। अब क्यों ऐसा हो रहा है? क्योंकि लेट्स से कोई यूजर इंडिया में है तो इंडिया में तो ऑलरेडी डेटा सेंटर
है। तो यूजर की रिक्वेस्ट को यहां ज्यादा ट्रैवल नहीं करना। लेकिन व्हाट इफ ह्यूज ट्रैफिक इज कमिंग
फ्रॉम यूके। तो इस केस में क्या होता है कि हम सीडीएन को नए सीडीएन को होस्ट कर देते हैं यहां यूके में। तो अब क्या होगा
कि यूके से किसी भी यूजर की रिक्वेस्ट जाएगी। तो वो इन डेटा सेंटर्स में इंडिया और यूएसए के डेटा सेंटर में ना जाके वो
यूजर की रिक्वेस्ट इस सीडीएन में जाएगी और यह सीडीएन यूजर की रिक्वेस्ट को सर्व कर देगा। तो बेसिकली हमने क्या किया? हमने
लोकल सीडीएन होस्ट कर दिया यूके में। हमने एक सीडीएन होस्ट कर दिया यूके में। और अब यही सीडीए यहां यूके के यूज़र्स की
रिक्वेस्ट को सर्व करेगा। अब लेट्स से कि जो डेटा यूजर को चाहिए वो लेट्स से इस सीडीएन में नियरेस्ट सीडीएन में या सीडीएन
जो यूके में होस्टेड है उस सीडीएन में वो डेटा नहीं है जो यूजर को चाहिए। तो इस केस में क्या होता है? इस यूजर की रिक्वेस्ट
एक और नियरेस्ट सीडीए में जाती है। लेट्स से एक और यहां पे नियरेस्ट सीडीएन है। नियरेस्ट सीडीए तो इस यूजर की रिक्वेस्ट
इस सीडीएन में जाएगी और यहां से इस यूजर की रिक्वेस्ट फिर फुलफिल होगी। एंड व्हाट इफ कि इस सीडीएन में भी वो डेटा नहीं है
जो यूजर को चाहिए। तो फिर क्या होता है कि फिर यह यूजर की रिक्वेस्ट वन ऑफ द डेटा सेंटर में जाएगी जो या तो इंडिया में है
या यूएसए में है। तो ऐसे करके सीडीएन हमें लेटेंसी को रिड्यूस करने में हेल्प करता है और बेसिकली हम इसे यूज़ करते हैं टू
स्टोर स्टैटिक डेटा। स्टैटिक डेटा में हमारा हो गया इमेजेस, वीडियोस, HTML पेजेस और ऑडियोज़। तो इफ वी हैव स्टैटिक डेटा तो
वी आर गोइंग टू यूज़ सीडीएन। और हमने देखा कि सीडीएन का यूज करके हम कैसे हमारे सिस्टम की लेटेंसी को कम कर सकते हैं। तो
यह था हमारा सिक्स्थ पॉइंट जहां हमने देखा सीडीएन और सीडीएन का भी हम यूज़ करते हैं इफ वी हैव ह्यूज नंबर ऑफ यूज़र्स। क्योंकि
नंबर ऑफ यूज़र्स बढ़ने का मतलब है कि अब जो हमारा ट्रैफिक है वह ग्लोबली आ रहा होगा अह फ्रॉम डिफरेंट रीजंस फ्रॉम डिफरेंट
अवेलेबिलिटी ज़ोंस। तो हम क्या करते हैं? डिफरेंट-डिफरेंट रीजंस में हमारे सीडीएन को होस्ट कर देते हैं और नियरेस्ट पॉसिबल
सीडीए यूजर की रिक्वेस्ट को सर्व करता है। तो ये था हमारा सिक्स्थ पॉइंट। अब जो हमारा नेक्स्ट पॉइंट है वो है मल्टीपल
डेटा सेंटर्स। तो अब इसे भी एक एग्जांपल के थ्रू समझते हैं। लेट्स से कि हमारे पास एक ग्लोबल एप्लीकेशन है Netflix जैसा। और
इस एप्लीकेशन के हमारे पास लेट्स से दो डेटा सेंटर्स हैं। एक है इंडिया में एंड एक है यूएसए में। अब लेट्स से कि बिकॉज़ ऑफ़
सम एक्स वzेड रीजन ये हमारा यूएसए वाला रीजन यूएसए रीजन का डेटा सेंटर लेट्स से फेल हो गया। तो इस केस में क्वेश्चन ये
आता है कि जो हमारे यूएसए के यूज़र्स हैं उनकी रिक्वेस्ट को हम कैसे फुलफिल करेंगे? तो अब इस केस में हमारे पास क्या है कि
हमारे पास सिर्फ दो डेटा सेंटर हैं। जिसमें से एक डाउन हो गया। जो हमारा यूएसए रीजन का डेटा सेंटर है वो ऑलरेडी डाउन हो
गया। तो अब इस केस में यूएसए के यूज़र्स की रिक्वेस्ट को यह इंडिया रीजन का डेटा सेंटर यूएसए के यूज़र्स की रिक्वेस्ट को
फुलफिल करेगा। तो यह काम होता है हमारे डेटा सेंटर्स का। हम बेसिकली एक रीजन के अंदर लेट्स से कि हमारा कोई एक इंडिया
रीजन है। तो हम इस इंडिया रीजन के अंदर मल्टीपल डाटा सेंटर्स रख सकते हैं। लेट से डाटा सेंटर वन, डाटा सेंटर टू, डाटा सेंटर
थ्री। तो ऐसे हमारे पास मल्टीपल डेटा सेंटर्स हो सकते हैं। अब लेट्स से कि यदि हमारा डेटा सेंटर वन फेल होता है या किसी
वजह से यह क्रैश कर जाता है तो हमारा डेटा सेंटर टू इंडिया के यूज़र्स की रिक्वेस्ट को फुलफिल करेगा। राइट? और यदि ये भी
क्रैश हो जाता है तो हमारे पास डेटा सेंटर थ्री है। तो ऐसे करके हमने हमारे सिस्टम की हाई अवेलेबिलिटी को मेंटेन किया। मतलब
यदि हमारे एकद डेटा सेंटर्स फेल भी हो जाते हैं तब भी हमारे पास और डेटा सेंटर्स अवेलेबल हैं। और यदि लेट्स से हमारे ये
तीनों डेटा सेंटर्स फेल हो जाते हैं तो हम कह सकते हैं कि यदि हमारा ये पूरा रीजन ही फेल हो जाता है तो फिर हमारे पास एक दूसरा
रीजन है यूएसए रीजन। इस यूएसए रीजन में भी हमारे पास मल्टीपल डेटा सेंटर्स हैं। डेटा सेंटर वन, डेटा सेंटर टू। तो यदि हमारे
पूरा इंडिया रीजन ही फेल हो जाता है तो फिर हम यूज़र्स की रिक्वेस्ट को इस यूएसए रीजन से यूज़र्स की रिक्वेस्ट को फुलफिल
करेंगे। तो ये था हमारा सेवंथ पॉइंट जहां हम देखते हैं मल्टी मल्टीपल डेटा सेंटर्स। अब जो हमारा नेक्स्ट पॉइंट है वो है
डेटाबेस शार्डिंग। तो डेटाबेस शार्डिंग में हम क्या करते हैं कि हम ह्यूज डेटा सेट को इसे हम एक एग्जांपल से समझते हैं
कि लेट्स से एक हमारे पास डेटाबेस है। डेटाबेस की कोई टेबल है लेट्स से यूजर टेबल और इस यूजर टेबल में लेट्स से 1
मिलियन रोज़ हैं। 1 मिलियन रोज़ हैं। राइट? अब लेट्स से कि हमें कोई सर्च ऑपरेशन परफॉर्म करना है। सर्च ऑपरेशन परफॉर्म
करना है। अब हमने देखा कि डेटाबेस क्वेरीज या डेटाबेस ऑपरेशंस जो होते हैं दे आर ऑलरेडी वेरी कॉस्टली। ऊपर से क्या है कि
अब हमें कोई सर्च ऑपरेशन परफॉर्म करने के लिए हम हमें पूरे के पूरे 1 मिलियन एंट्रीज पे आइट्रेट करना पड़ेगा। तो एक
ऑप्शन होता है वह होता है हमारे पास कि हम इंडेक्सिंग का यूज़ कर लें। लेकिन इंडेक्सिंग के भी कुछ हमें
डिसएडवांटेजेस या कुछ ड्रॉबैक्स होते हैं। वह इस वीडियो का पार्ट नहीं है। तो हम उसे डिस्कस नहीं करते हैं। लेकिन क्या होता है
कि सर्च क्वेरीज को और डेटाबेस परफॉर्मेंस को इंक्रीस करने के लिए हम एक और टॉपिक का यूज़ करते हैं। एक और कांसेप्ट का यूज़ करते
हैं जिसे हम डेटाबेस शार्डिंग बोलते हैं। अब इस डेटाबेस शार्डिंग में हम बेसिकली क्या करते हैं कि ह्यूज डेटा सेट को जैसे
यहां पे 1 मिलियन यूज़र्स का जो हमारे पास डेटा सेट है उसको हम स्मालस्मॉल पीसेस में डिवाइड करते हैं। और ईच पीस को लेट्स से
हमने 1 मिलियन रोज़ को फाइव ऐसे डिफरेंट पीसेस में डिवाइड कर लिया। तो हर पीस को हम क्या बोलते हैं? एक शार्ड बोलते हैं।
एक डिफरेंट शार्ड बोलते हैं। लेट से यह हो गया शार्ड वन शार्ड टू शार्ड थ्री ऐसे करके हमारे पास डिफरेंट
शार्ड्स हैं। तो अब यह शार्डिंग हमें कैसे डेटाबेस शार्डिंग हमें कैसे हेल्प करता है? तो इसको हम समझते हैं। लेट्स से कि
हमारे पास 1 मिलियन यूज़र्स का रिकॉर्ड है। तो हमारे पास 1 मिलियन रोज़ हैं। 1 मिलियन रोज़। अब हम क्या करते हैं? शार्डिंग में
इन रोज़ को मल्टीपल शार्ड्स में डिवाइड कर देते हैं। हम बेसिकली क्या करते हैं? लार्ज डेटा सेट को ऐसे डिफरेंट-डिफरेंट
शार्ड्स में डिवाइड कर देते हैं। लेट्स से ये हो गया हमारा शार्ड वन, ये हो गया हमारा शार्ड टू, ये हो गया हमारा शार्ड
थ्री। ऐसे करके हमारे डेटा सेट को डिफरेंट-डिफरेंट शार्ड्स में डिवाइड कर देते हैं। अब यहां पे ईच शार्ड इज़ एन
इंडिविजुअल डेटाबेस। यहां पे हर शार्ड एक इंडिविजुअल डेटाबेस की तरह काम करता है। तो अब हमारे पास लेट्स से 1 मिलियन रोज़
थी। तो ये जो हमारा S1 शार्ड है ये लेट्स से वन से लेके 1000 रोज़ को मैनेज कर रहा है। ये शार्ड टू टू 1000 से लेके लेट्स से
2000 रोज़ को मैनेज कर रहा है। ऐसे करके हमने हमारे डेटा सेट को डिफरेंट शार्ड्स में डिवाइड कर दिया। तो हर डेटा से हर श
यहां पे एक इंडिविजुअल डेटाबेस है और हम हर चार्ट के लिए एक इंडिविजुअल सर्वर भी कॉफ़िगर कर सकते हैं। बेसिकली हम कह सकते
हैं कि हमने यहां पे हॉरिजॉन्टली स्केल कर दिया। तो, यह काम है हमारे शार्डिंग का। और अब देखिए कि हमारे पास 1 मिलियन रोज़
में हमें आइट्रेट नहीं करना। हमें यदि कोई रिकॉर्ड फाइंड करना है, तो हम बेसिकली क्या करेंगे? रेलेवेंट चार्ट को कॉल कर
देंगे और उस रेलेवेंट चार्ट में अब नंबर ऑफ एंट्रीज कम होंगी। तो हम ईजीली उस शार्ड में डेटा को फाइंड कर सकते हैं। तो
ऐसे रेलेवेंट शार्ड को कॉल करके हम हमारे सर्च ऑपरेशंस को सर्च क्वेरीज को फास्ट बना सकते हैं। और ऐसे हमारा यह शार्डिंग
सिस्टम की परफॉर्मेंस में हेल्प करता है। तो ये था हमारा एट्थ पॉइंट जहां हमने डेटाबेस शार्डिंग को देखा। अब ये डेटाबेस
शार्डिंग हमारी नेम बेस्ड शार्डिंग भी हो सकती है। लेट्स से हमारे पास फ्रॉम ए टू जेड नेम्स हो सकते हैं किसी भी यूजर के।
राइट? तो हम ऐसा कर सकते हैं कि नेम बेस्ड शार्डिंग कर सकते हैं कि ए से आने वाले जो यूज़र्स होंगे उनको एक डिफरेंट शार्ड में
रख दिया। जिन यूज़र्स के नेम एस से स्टार्ट हो रहे हैं उनको हमने एक डिफरेंट शार्ड में रख दिया। तो ऐसे करके हम नेम बेस्ड
शार्डिंग कर सकते हैं। हम एज बेस्ड शार्डिंग कर सकते हैं। हम जी हम Jio बेस्ड या लोकेशन बेस्ड शार्डिंग कर सकते हैं। हम
हम जेंडर बेस्ड शार्डिंग कर सकते हैं। तो ऐसे हम शार्डिंग डिफरेंट-डिफरेंट पैराटर्स के बेसिस पे कर सकते हैं। और हमारे पास एक
शार्ड की होता है जिसके बेसिस पे हम फिगर आउट करते हैं कि कोई यदि हमारे पास डेटा है तो वो किस शार्ड को बिलॉन्ग करता है।
तो ये था हमारा डेटाबेस शार्डिंग। अब जो हमारा नेक्स्ट पॉइंट है वो है मैसेजिंग कज़। तो अब मैसेजिंग कज़ को आई हैव डिस्कस्ड
अ लॉट इन माय सिस्टम डिज़ वीडियोस जहां हमने Netflix सिस्टम डिज़ाइन में SWGI सिस्टम डिज़ ब्लिंकट सिस्टम डिज़ाइन इन सब
में हमने मैसेजिंग कज़ को काफका को बहुत डिस्कस किया। तो अब समझते हैं, देखते हैं कि कैसे मैसेजिंग कज़ हमें स्केल करने में
हेल्प करता है। बेसिकली ये डायरेक्ट स्केल करने में हेल्प तो नहीं करता पर इसकी वजह से हम हमारे सिस्टम की परफॉर्मेंस को
इंक्रीस कर लेते हैं और हम हमारे सिस्टम को क्रैश होने से भी बचाते हैं। तो अब समझते हैं इसे एक एग्जांपल से। लेट्स से
हमारे पास एक ई-कॉमर्स एप्लीकेशन है Amazon काइंड ऑफ। तो यदि उस एप्लीकेशन में हम मैसेजिंग क्यूज़ को यूज़ ना करें तो तब
क्या होता है? उसको एक बार समझते हैं। तो यदि हम हमारे एप्लीकेशन में मैसेजिंग कज़ को यूज़ ना करें तो सबसे पहले क्या होगा?
लेट्स से कोई यूजर ने प्लेस ऑर्डर पे क्लिक किया तो यह ऑर्डर सर्विस इनवोक होगी। अब ये ऑर्डर सर्विस इनवोक होगी। तो
सबसे पहले क्या होगा कि लेट्स से किसी यूजर ने लेट्स से पीनट बटर ऑर्डर किया। तो सबसे पहले हमें उसका इन्वेंटरी काउंट
डिक्रीज करना होगा। राइट? तो सबसे पहले हमारा इन इन्वेंटरी सर्विस इनवोक होगी। फिर हम पेमेंट सर्विस को कॉल करेंगे। तो
यह हो गया हमारा सेकंड सेकंड टास्क। फिर उसके बाद एक बार पेमेंट सक्सेसफुल हो जाएगी। फिर हम यह शिपमेंट सर्विस को कॉल
कर देंगे कि अब आगे कैसे प्रोडक्ट को शिप करना है। उसकी शिपिंग करना है। इसलिए हम शिपमेंट सर्विस को कॉल करेंगे। हम
नोटिफिकेशन सर्विस को भी कॉल कर देंगे कि यह यूजर को नोटिफाई करेगी और नोटिफिकेशन देगी कि ठीक है तुम्हारा ऑर्डर जो है यह
प्लेस हो गया है सक्सेसफुली और उसका जो भी लाइव ट्रैकिंग होगी तो उसका उस सब के लिए हम नोटिफिकेशन सर्विस यूज़ करेंगे। तो यदि
हम मैसेजिंग कज़ नहीं यूज़ करते हैं तो क्या होता है कि लेट्स से हमारे पास 10 मिलियन रिक्वेस्ट एक साथ आई। राइट?
लेट्स से कोई फेस्टिव सीजन चल रहा है तो या सेल चल रही है तो 10 मिलियन रिक्वेस्ट एक साथ आई इस ऑर्डर सर्विस के पास। अब
ऑर्डर सर्विस सबसे पहले क्या करेगा? इन्वेंटरी काउंट को कम करेगा। तो यह इन्वेंटरी काउंट के लिए इन्वेंटरी सर्विस
इनवोक होगी। तो एक साथ 10 मिलियन रिक्वेस्ट इस इन्वेंटरी सर्विस को भी हिट करेंगी। राइट? एक साथ 10 मिलियन रिक्वेस्ट
इस पेमेंट सर्विस को भी हिट करेंगी। एक साथ 10 मिलियन रिक्वेस्ट इस शिपमेंट को और इस नोटिफिकेशन सर्विस को भी हिट करेंगी।
अब इनमें से किसी एक के भी फेल हो जाने की वजह से क्या होगा कि पूरा ऑर्डर पूरा का पूरा ऑर्डर जो यूजर ने किया था वो फेल हो
जाएगा। वो क्रैश हो जाएगा। तो यह एक प्रॉब्लम आती है हमारे सिस्टम में इफ वी डोंट यूज़ मैसेजिंग क्यूज़। अब ऐसा क्यों
हो रहा है कि लेट्स से कि ये जो पेमेंट सर्विस है इसकी कैपेसिटी है केवल लेट्स से 1 मिलियन रिक्वेस्ट को हैंडल करने की एक
बार में और एक साथ यहां पे आ गई 10 मिलियन रिक्वेस्ट। तो इस केस में यह पेमेंट सर्विस जो होगी यह
ओवरवेल्म हो जाएगी और यहां पे यह इतना सारा ट्रैफिक को मैनेज नहीं कर पाएगी। तो ये हमारा पूरा सिस्टम को क्रैश कर सकती
है। अब मैसेजिंग कज़ के आने से क्या होता है कि इतनी सारी रिक्वेस्ट डायरेक्ट इन सर्विसेस को हिट नहीं करेंगी। अ लेट्स से
हमारे पास 1 मिलियन रिक्वेस्ट हैं। तो मैसेजिंग क्यूज़ के आने से अब ये इतनी सारी रिक्वेस्ट एक साथ डायरेक्ट इन सर्विसेज को
हिट नहीं करेंगी। क्या होगा सिंपली कि ये काफका मैसेजिंग क्यू में या कोई भी रैबिट एमक्यू मैसेजिंग क्यू एस क्यूएस इनमें
क्या करेंगे हम इन रिक्वेस्ट को अ स्टोर कर लेंगे इस मैसेजिंग क्यू में और हम यहीं से यूजर को नोटिफाई कर देंगे कि ओके योर
ऑर्डर हैज़ बीन प्लेस्ड और उसके बाद क्या होगा कि यह जो डिफरेंट सर्विसेस हैं यह अपनी कैपेसिटी के अकॉर्डिंग इन रिक्वेस्ट
को कंज्यूम करेंगे। लेट्स से पेमेंट सर्विस की कैपेसिटी है 100 रिक्वेस्ट पर सेकंड। 100 रिक्वेस्ट पर सेकंड। तो इस
मैसेजिंग क्यूस के आने से क्या हुआ कि अब यह अपनी कैपेसिटी के अकॉर्डिंग इन रिक्वेस्ट को लेगा और फिर उन्हें मैनेज
करेगा। उन पे काम करेगा। तो जब यह मैसेजिंग क्यों नहीं था तो क्या हो रहा था कि जितनी रिक्वेस्ट थी वह सारी एक साथ इस
पेमेंट सर्विस को हिट कर जा रही थी। लेकिन अब क्या हुआ? पेमेंट इस मैसेजिंग क्यू के आने से यह पेमेंट सर्विस अपने कैपेसिटी के
अकॉर्डिंग काम करेगा और एक अपनी नॉर्मल पेस पे चलेगा। जितनी रिक्वेस्ट वो हैंडल कर सकता है। लेट्स से 100 रिक्वेस्ट पर
सेकंड वो हैंडल कर सकता है। तो वो सिर्फ 100 रिक्वेस्ट पर सेकंड इस मैसेजिंग क्यू से लेगा। उन्हें प्रोसेस करेगा। उन पे काम
करेगा। देन फिर वह नेक्स्ट 100 पे काम करेगा। तो यह काम होता है हमारे मैसेजिंग क्यूज़ का। बेसिकली हम कह सकते हैं कि दिस
इज़ वन ऑफ द एडवांटेज या वन ऑफ द वर्क ऑफ मैसेजिंग कज़। और हां एक चीज और कि लेट्स से कि यदि ये नंबर ऑफ यूज़र्स और बढ़ जाते
हैं, नंबर ऑफ रिक्वेस्ट और बढ़ जाती हैं, तो हम पेमेंट सर्विस के और इंडिविजुअल इंस्टेंसेस यूज़ कर सकते हैं। बेसिकली हम
कह सकते हैं कि हम पेमेंट सर्विस को हॉरिजॉन्टली स्केल कर सकते हैं। यह हमने ऑलरेडी पिछले वीडियोस में भी काफी डिस्कस
किया है। तो, यह था हमारा नाइंथ पॉइंट जहां हमने देखा मैसेजिंग कज़। अब ये मैसेजिंग कज़ में हमारे पास प्रोड्यूसर
होता है जो बेसिकली एक इवेंट को ट्रिगर करता है। इस केस में इवेंट हो सकता है ऑर्डर कंफर्म्ड, ऑर्डर प्लेस्ड ऑर्डर रेडी
टू शिप्ड। तो ऐसे यह डिफरेंट इवेंट्स को यह ऑर्डर सर्विस प्रोड्यूस करेगा और यह फिर इवेंट जाएगा इस काफका में जहां यह
स्टोर होगा और फिर अकॉर्डिंग टू द वर्क यह डिफरेंट-डिफरेंट सर्विसेज उन इवेंट्स को कैप्चर करेंगी और फिर उन पे काम करेंगी।
तो, यह होता है हमारा नाइंथ पॉइंट जहां हमने देखा मैसेजिंग कज़ कि कैसे मैसेजिंग क्यूज़ हमें स्केल करने में मदद करता है
फ्रॉम जीरो टू मिलियन यूज़र्स। तो आई गेस आपको यह वीडियो पसंद आया होगा। एंड दिस इज ऑल फॉर दिस वीडियो। वी विल सी यू इन द
नेक्स्ट वीडियो। सो टिल देन बाय-ब शो सम लव। थैंक्स। [संगीत]
हे एवरीवन, वेलकम बैक। वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। और आज के इस वीडियो में हम बात करने वाले हैं
कैशिंग के बारे में कि कैशिंग होता क्या है? हमें कैशिंग की नीड क्या है? और हम देखेंगे कुछ पॉपुलर कैशिंग की स्ट्रेटजीस
को। तो स्टार्ट करते हैं और इस कैशिंग को समझते हैं हम एक एग्जांपल के थ्रू। तो लेट्स से कि आप एक ई-कॉमर्स एप्लीकेशन यूज़
कर रहे हैं Amazon, Flipkart जैसा। तो उस एप्लीकेशन में कुछ डेटा ऐसा होगा जो आप बहुत फ्रीक्वेंटली एक्सेस करेंगे। कॉमनली
आस्क्ड डेटा। उस डेटा में हमारा आ सकता है प्रोफाइल यूजर प्रोफाइल या हम किसी पर्टिकुलर आइटम की बार-बार हम उसका प्राइस
चेक करेंगे उस आइटम को सर्च करेंगे तो ऐसे हमारे वेबसाइट में कुछ कॉमनली आस्क्ड डेटा या फ्रीक्वेंटली आस्क्ड डेटा हो सकता है।
तो उस डेटा को हम एक्सेस कैसे करेंगे? यह हम पहले भी प्रीवियस वीडियोस में देख चुके हैं कि यह क्लाइंट रिक्वेस्ट करेगा और यह
रिक्वेस्ट सबसे पहले जाएगी सर्वर के पास। उसके बाद यह सर्वर डेटाबेस से क्वेरी करेगा उस डेटा को और डेटाबेस रिजल्ट या
रिस्पांस सेंड करेगा। फिर यह सर्वर उस रिस्पांस को सेंड कर देगा क्लाइंट को। अब लेट्स से कि ये क्लाइंट लेट्स से ये यूजर
ए है। ये यूजर ए है हमारा और ये यूजर ए अपनी प्रोफाइल को एक्सेस करना चाहता है। एक ई-कॉमर्स एप्लीकेशन में अपनी प्रोफाइल
को एक्सेस करना चाहता है। तो सबसे पहले यह रिक्वेस्ट जाएगी सर्वर के पास। तो लेट्स से कि क्लाइंट से सर्वर तक रिक्वेस्ट जाने
में 2 मिलीसे का टाइम लग रहा है। और फिर यह सर्वर क्या करेगा? यह सर्वर जाएगा इस डाटा पे डेटाबेस के पास इस यूजर ए की
प्रोफाइल को लेने के लिए या इस यूजर ए की प्रोफाइल को एक्सेस करने के लिए। तो लेट्स से कि सर्वर ए से सर्वर से डेटाबेस तक
जाने में हमें फिर से 2 मिलीसे का टाइम लगा क्योंकि ये एक नेटवर्क कॉल होगी। हम डेटाबेस तक जा रहे हैं। सो इट विल बी अ
नेटवर्क कॉल। तो यह हमें सर्वर से डेटाबेस तक जाने में लगा 2 मिलीसे का टाइम। अब लेट्स से कि वापस डेटाबेस
सर्वर को रिस्पांस सेंड करेगा। तो उसमें भी हमें लेट्स से 2 मिलीसे का टाइम लग रहा है। तो ये रिस्पांस आ गया सर्वर के पास।
उसके बाद ये सर्वर इस रिस्पांस को भेज देगा इस क्लाइंट को। तो लेट्स से इसमें भी हमें लग रहा है 2 मिलीसे का टाइम। तो यदि
हमारे पास कैश मेमोरी जैसा कुछ नहीं होता है तो एक रिक्वेस्ट को फुलफिल करने के लिए हमें 2 + 2 4 6 8 मिली सेकंड का टाइम लग
रहा है। 8 मिलीसे का टाइम यूजर की प्रोफाइल को एक्सेस करने के लिए। क्यों? क्योंकि यहां पे हमारे पास एक नेटवर्क कॉल
बढ़ जा रही है। डेटाबेस तक जाने के लिए नेटवर्क कॉल बढ़ जा रही है। उसके बाद क्या हो रहा है कि लेट्स से यूजर ने एक बार
प्रोफाइल एक्सेस कर ली। अब उसको लेट्स से फिर से अपनी प्रोफाइल एक्सेस करना है तो वो फिर से सेम स्टेप्स फॉलो करेगा। पहले
वो रिक्वेस्ट करेगा। रिक्वेस्ट जाएगी सर्वर के पास। फिर सर्वर डेटाबेस के पास जाएगा। उसकी रिक्वेस्ट लेके फिर डेटाबेस
यूजर की प्रोफाइल को सर्वर को सेंड करेगा। फिर सर्वर इस रिस्पांस को सेंड कर देगा क्लाइंट को। तो एव्री टाइम वी हैव टू
रिपीट द सेम स्टेप्स। तो बार-बार हमें डेटाबेस बार-बार हमें डेटाबेस को एक्सेस करना पड़ रहा है। इसकी वजह से क्या होगा
कि डेटाबेस पे लोड बढ़ जाएगा। डेटाबेस पे लोड बढ़ जाएगा। और जो हमारा डेटाबेस होता है, डेटाबेस ऑपरेशंस होते हैं, दे आर वेरी
कॉस्टली। और यह हमारे रिक्वेस्ट रिस्पांस टाइम को स्लो कर देते हैं। क्योंकि एक हम एक्स्ट्रा नेटवर्क कॉल बढ़ा देते हैं। और
सेम टास्क के लिए एक बार तो हमने प्रोफाइल एक्सेस कर ली कि अब हमें दोबारा करना है तो हम वापस से सेम चीजें रिपीट करते हैं।
तो इससे क्या होता है कि हम सेम काम के लिए डेटाबेस को बार-बार कॉल करते हैं। डेटाबेस सही से ऑप्टिमाइज नहीं हो पाता
है। हम हमारे रिसोर्सेज का सही से यूज़ नहीं करते। तो यहां पे डेटाबेस पे एक्स्ट्रा लोड बढ़ जाता है। क्योंकि यहां
पे तो सिर्फ एक ही यूजर था यूजर ए। लेट्स से सेम ऐसे ही 10,000 या 1 मिलियन यूज़र्स एक साथ आ गए। एंड दे दे आर आस्किंग फॉर
देयर प्रोफाइल बार-बार रिपीटेडली। तो एक सिंगल डे में हमें एक ऑपरेशन के लिए बेसिक से ऑपरेशन के लिए हर बार डेटाबेस को
क्वेरी करना पड़ेगा। व्हिच इज़ नॉट अ गुड थिंग। क्योंकि डेटाबेस ऑपरेशंस आर वेरी कॉस्टली। जहां पे हमारी एक एक्स्ट्रा
नेटवर्क कॉल बढ़ जाती है। तो यहां पे इफ वी आर नॉट यूज़िंग कैशिंग इफ वी डोंट हैव कैश कैश मेमोरी। तो एक हमारा नेटवर्क कॉल बढ़
गई। हमारा डेटाबेस पे लोड बढ़ गया। एंड डेटाबेस ऑपरेशंस आर वेरी कॉस्टली। तो जो हमारा एंटायर रिक्वेस्ट रिस्पांस टाइम
होता है वो उसको स्लो कर देते हैं। तो यहां पे एक सिंपल रिक्वेस्ट को सर्व करने के लिए 8 मिलीसे का टाइम लगा। अब लेट्स से
कि हमारे पास कैश मेमोरी है। तो कैश मेमोरी होने से हमें क्या फायदा है? तो सबसे पहले सेम यह रिक यूजर ए वांट्स टू
एक्सेस ह प्रोफाइल। तो यह रिक्वेस्ट जाएगी सर्वर के पास। अब लेट्स से सर्वर तक जाने में सर्वर तक रिक्वेस्ट जाने में 2 मिली
सेकंड का टाइम लगा। अब कैश मेमोरीज के होने से क्या फायदा है कि यह सर्वर यूजर ए की प्रोफाइल के लिए डेटाबेस के पास ना
जाकर इस कैश मेमोरी के पास जाएगा और पूछेगा कि डू यू हैव प्रोफाइल ऑफ यूजर ए? इफ कैश मेमोरी हैव द प्रोफाइल ऑफ यूजर ए?
तो वह सिंपली यहां से इस सर्वर को रिस्पांस रिटर्न कर देगा। अब ये जो कैश मेमोरी होती है इट इज वेरी फास्ट और ये
टेंपरेरी डेटा को स्टोर करती है। तो फास्ट होने की वजह से यहां पे रिक्वेस्ट रिस्पांस टाइम भी कम हो जाएगा। राइट? तो
सर्वर इस कैश मेमोरी से पूछेगा कि डू यू हैव प्रोफाइल ऑफ यूजर ए? तो कैश मेमोरी बोलेगी कि यस आई हैव अ प्रोफाइल ऑफ़ यूजर
ए। तो यहां पे लेट्स से कि सर्वर से कैश मेमोरी तक रिक्वेस्ट जाने में 1 मिलीसे का टाइम लगा। बिकॉज़ इट इज़ फास्ट। और यहां पे
कैश ने 1 मिलीसे में रिस्पांस दे दिया सर्वर को। यहां भी 1 मिलीसे का टाइम लगा। उसके बाद सर्वर से रिस्पांस जाने क्लाइंट
तक रिस्पांस जाने में लेट्स से 2 मिसे का टाइम लगा। तो यहां पे यदि हम कैलकुलेट करें तो इट वुड बी 2 + 2 4 5 6 तो अब यहां
पे 6 मिलीसे्स में 6 मिलीसे्स में हमने यूजर की रिक्वेस्ट को फुलफिल कर दिया। तो ये काम होता है हमारे कैश मेमोरी का।
बेसिकली ये एक स्टोरेज होता है टेंपरेरी स्टोरेज जो कि टेंपरेरी डेटा को स्टोर करने में हमारी हेल्प करता है और यह फास्ट
होता है क्योंकि ये इन मेमोरी सॉल्यूशन है। सो इफ वी हैव फ्रीक्वेंटली एक्सेस्ड डेटा, फ्रीक्वेंटली आस्क्ड डेटा तो हम उसे
टेंपरेरी स्टोर कर सकते हैं हमारे फास्ट स्टोरेज में व्हिच इज़ आवर कैश मेमोरी। तो अब कैशिंग के आने से हमने नेटवर्क कॉल्स
को अवॉइड कर दिया। जो हमारी डेटाबेस तक एक्स्ट्रा नेटवर्क कॉल आ रही थी उसको हमने हटा दिया। उसको हमने रिमूव कर दिया। अब
हमें चीजें रिकंप्यूट नहीं करना। लेट्स से कि हमने किसी यूजर की प्रोफाइल को एक बार एक्सेस कर लिया। तो हम उसे सिंपली कैश
मेमोरी में स्टोर कर देंगे। और फिर कैश मेमोरी से ही हम उस यूजर की रिक्वेस्ट को या प्रोफाइल को क्लाइंट को या यूजर को
बार-बार भेजते रहेंगे। तो हमें यहां चीजें रिकंप्यूट नहीं करना। हमने डेटाबेस पे जो एक्स्ट्रा लोड था उसे हटा दिया। उसे
रिड्यूस कर दिया। और ये सब की वजह से नेटवर्क कॉल्स रिमूव करने की वजह से, रिकंप्यूटेशन को अवॉइड करने से, डेटाबेस
लोड कम करने से हमारा रिक्वेस्ट रिस्पांस टाइम फास्ट हो गया। क्योंकि कैश मेमोरी इज़ अ इज़ इन मेमोरी सॉल्यूशन एंड इट इज़ फास्ट।
तो यहां पे जो रिक्वेस्ट डेटाबेस के थ्रू 2 मिली सेकंड में सर्व हो रही थी यहां पर वो 1 मिलीसे में सर्व हो जा रही है। तो ये
काम होता है हमारा कैशिंग का। अब एक बार कैशिंग का फ्लो देखते हैं। तो कैशिंग में सबसे पहले ये क्लाइंट लेट्स से यूजर ए
रिक्वेस्ट करता है। लेट्स से ही इज़ रिक्वेस्टिंग फॉर हिज प्रोफाइल। ही वांट्स टू एक्सेस हिज प्रोफाइल। तो ये रिक्वेस्ट
सबसे पहले जाएगी सर्वर के पास। उसके बाद यह सर्वर कैश में चेक करेगा कि कैश में वो यूजर की प्रोफाइल है या नहीं। यदि उस कैश
में यूजर की प्रोफाइल है तो इसे हम बोलते हैं कैश हिट। इसे हम बोलते हैं कैश हिट। यदि यूजर की प्रोफाइल कैश मेमोरी में है
तो यह कैश मेमोरी प्रोफाइल रिटर्न कर देगा सर्वर को और फिर सर्वर उस प्रोफाइल को यूजर को रिटर्न कर देगा या इस रिस्पांस को
प्रोफाइल के रिस्पांस को रिटर्न कर देगा। अब दूसरा केस यह आता है कि यदि कैश में यूजर की प्रोफाइल नहीं है तो इसे बोलते
हैं कैश मिस। कैश हिट और कैश मिस। तो यदि यूजर की प्रोफाइल कैश में नहीं है तो इसे हम
बोलेंगे कैश मिस। तो इस केस में सर्वर पहले कैश में मेमोरी में चेक करेगा कि यूजर की प्रोफाइल है या नहीं। अब उसकी
प्रोफाइल यदि कैश मेमोरी में नहीं है तो सर्वर वापस डेटाबेस के पास जाएगा। उससे यूजर ए की प्रोफाइल एक्सेस करेगा। उस
प्रोफाइल को क्लाइंट को भेजेगा और साथ ही साथ उस यूजर की प्रोफाइल को इस कैश मेमोरी में भी स्टोर कर देगा फॉर फ्यूचर रेफरेंस।
तो ये होता है हमारा कैशिंग और कैशिंग का फ्लो। अब यू माइट बी थिंकिंग कि कैशिंग यदि इतना ही अच्छा है तो व्हाई वी जस्ट
कैन नॉट स्टोर एवरीथिंग टू द कैश मेमोरी। फिर डेटाबेस में चीजें स्टोर ही क्यों करना है? जब कैश हमें इतनी सारी फैसिलिटीज
प्रोवाइड कर रहा है। तो कैशिंग कैश में हम सारा का सारा डेटा स्टोर नहीं कर सकते। यदि हम कैश में टन्स ऑफ डेटा रख दें या हम
कैश में बहुत सारा डेटा रख दें। बेसिकली हम कैश को ही ओवरलोड कर दें डेटा से तो इस केस में कैश से सर्च क्वेरी जो होंगी वह
स्लो हो जाएंगी। तो यहां पे इस केस में सर्च क्वेरीज स्लो हो जाएंगी और जो हमारा कैश होगा वो स्लो काम करने लगेगा। तो यस
वी जस्ट कैन नॉट पुट एवरीथिंग टू द कैश मेमोरी। जो हमारा इनफाइन इनफाइनाइट डेटा होगा वो हम डेटाबेस में स्टोर करेंगे और
कैश मेमोरी में हम सिर्फ रेलेवेंट डेटा को ही स्टोर करेंगे। तो ये होता है हमारा कैश मेमोरी। अब ये जो कैश है इट यूजुअली
एग्ज़िस्ट इनसाइड द सर्वर। तो ये कैश हमारा इन मेमोरी सॉल्यूशन है। तो इसे हम सर्वर के अंदर सर्वर की मेमोरी में प्लेस कर
सकते हैं। तो इसे हम बोलते हैं लोकल कैश। लोकल कैशिंग जहां पे हमारी कैश जो होता है वो सर्वर के अंदर या सर्वर की मेमोरी में
होता है। तो यस इट्स वन ऑफ़ अ वे टू प्लेस कैश कैश मेमोरी। तो लोकल कैशिंग इज गुड व्हेन वी हैव अ सिंगल एप्लीकेशन सर्वर। इस
एप्लीकेशन सर्वर में ही हमारे पास कैश मेमोरी होगी। इसके अंदर ही हमारी कैश मेमोरी होगी। तो क्लाइंट विल मेक अ
रिक्वेस्ट या यूजर रिक्वेस्ट करेगा। यह रिक्वेस्ट जाएगी एप्लीकेशन सर्वर के पास और फिर यह एप्लीकेशन सर्वर इस कैश के थ्रू
इस कैश के थ्रू यूजर की रिक्वेस्ट को फुलफिल कर देगा। पर लोकल कैशिंग में प्रॉब्लम क्या है कि लेट्स से इफ वी हैव
मल्टीपल एप्लीकेशन सर्वर्स हमने हमारे एप्लीकेशन को लेट्स से स्केल कर दिया। सो वी विल बी हैविंग मल्टीपल एप्लीकेशन
सर्वर्स। अब हर एप्लीकेशन सर्वर का अपना एक लोकल कैश होगा। राइट? इस ऐप सर्वर वन का एक अपना कैश होगा। इसका अपना कैश होगा।
इसका अपना कैश होगा। तो इस केस में हमारी डेटा डेटा इनकंसिस्टेंट हो सकता है। तो अब इसे एक एग्जांपल के थ्रू समझते हैं। लेट्स
से कि हमारा एक यूजर एक्स है। यह आता है एंड इट इज़ ही इज़ रिक्वेस्टिंग फॉर ह प्रोफाइल। इसे अपनी प्रोफाइल एक्सेस करना
है। अब यहां पे एक हमारा लोड बैलेंसर होगा। लोड बैलेंसर इज़ समथिंग जो हमने पुरानी प्रीवियस वीडियोस में ऑलरेडी
डिस्कस किया है। सो इफ यू वांट टू लर्न मोर अबाउट लोड बैलेंसर्स गो एंड वॉच दोज़ वीडियोस। तो क्या होगा कि ये यूजर एक्स को
अपनी प्रोफाइल एक्सेस करना है। सो ही विल मेक अ रिक्वेस्ट। अब ये जाएगी रिक्वेस्ट लोड बैलेंसर के पास और लोड बैलेंसर डिसाइड
करेगा वि सर्वर टू कनेक्ट विद। तो लेट्स से उसने डिसाइड किया कि मैं यूजर की रिक्वेस्ट को एप्लीकेशन सर्वर वन पे
फॉरवर्ड कर दूंगा। तो अब यह रिक्वेस्ट गई एप सर्वर वन के पास। अब एप सर्वर वन अह सबसे पहले यूजर की प्रोफाइल को इस कैश में
चेक करेगा। लेट्स से कि अभी यूजर ए यूजर एक्स की प्रोफाइल इस कैश मेमोरी में प्रेजेंट नहीं है। तो हम कह सकते हैं कि
हमारा कैश मिस हुआ। तो इस केस में एप्लीकेशन सर्वर वन जाएगा डेटाबेस के पास और यहां से वो यूजर एक्स की प्रोफाइल को
एक्सेस करेगा और उसे रिटर्न कर देगा इस क्लाइंट या यूजर एक्स को और उसके बाद इस यूजर एक्स की प्रोफाइल को वो कैश मेमोरी
में भी स्टोर कर देगा। सो यस हमने यहां पे यूजर को उसकी प्रोफाइल भी रिटर्न कर दी और इस यूजर एक्स की प्रोफाइल को हमने कैश में
स्टोर भी कर लिया। लेकिन लेट्स से कि कुछ देर बाद यह यूजर एक्स वापस आता है और यह फिर से अपनी प्रोफाइल एक्सेस करना चाहता
है। रिक्वेस्ट विल गो टू लोड बैलेंसर। अब इस केस में लेट्स से लोड बैलेंसर ने यूजर की रिक्वेस्ट को ऐप सर्वर टू पे राउट कर
दिया। अब ऐप सर्वर टू पर राउट कर दिया तो ऐप सर्वर टू का ये जो लोकल कैश है ये इनिशियली एंप्टी होगा। राइट? तो हमारा
यहां कैश मिस हो जाएगा। तो यहां पे कैश मिस हो जाने की वजह से अब ये एप सर्वर टू डेटाबेस के पास जाएगा और यहां से यूजर
एक्स की प्रोफाइल को लेके आएगा और यूजर एक्स को देगा और फिर यह एप सर्वर 2 के कैश में या लोकल कैश में यूजर x की प्रोफाइल
को स्टोर कर देगा। तो बेसिकली यहां हमने ऑलरेडी यूजर एक्स की प्रोफाइल को स्टोर कर दिया था या कैश कर लिया था। लेकिन स्टिल
यदि ये क्लाइंट या यूजर दोबारा रिक्वेस्ट करता है और यह रिक्वेस्ट किसी दूसरे ऐप सर्वर के पास चली जाती है तो इस केस में
हमें वापस से डेटाबेस के पास रिक्वेस्ट करना पड़ेगा क्योंकि यहां पे कैश टू में यूजर एक्स की प्रोफाइल नहीं थी। तो यह एक
प्रॉब्लम आती है लोकल कैश में। अब एक और प्रॉब्लम क्या आती है कि लेट्स से यूजर एक्स आता है और यह यूजर एक्स अपनी
प्रोफाइल अपडेट करना चाहता है। अब लेट्स से कि एप्लीकेशन सर्वर टू के कैश में इसके लोकल कैश में यूजर एक्स की प्रोफाइल
ऑलरेडी सेव्ड है। ऑलरेडी सेव्ड है। तो यह यूजर एक्स आया और इसको अब अपनी प्रोफाइल को अपडेट करना चाहता है। लेट्स से कि इस
केस में लोड बैलेंसर ने यूजर एक्स की रिक्वेस्ट को ऐप सर्वर थ्री पे राउट कर दिया। तो यहां पे ऐप सर्वर थ्री जाएगा
डेटाबेस के पास। यहां यह प्रोफाइल अपडेट करेगा। उसके बाद यह इस डेटा को स्टोर कर देगा कैश में। इस कैश 3 में या एप्लीकेशन
सर्वर 3 के कैश में। तो ठीक है। यूजर की प्रोफाइल तो हमने अपडेट कर दी। पर यदि लेट्स से कि यूजर एक्स कुछ देर बाद आता है
एंड ही वांट्स टू एक्सेस हिज प्रोफाइल वो रिक्वेस्ट करता है और लेट्स से कि इस केस में लोड बैलेंसर यूजर की रिक्वेस्ट को ऐप
सर्वर टू पे राउट कर देता है। तो अब इस केस में ऐप सर्वर टू के कैश में तो हमने पहले ही देखा कि पुराना डेटा था। पुराना
डाटा था। यहां पे प्रीवियस जो डाटा था वही बस था। अपडेटेड डाटा कहां पे था हमारे? इस ऐप सर्वर 3 के कैश में। तो यहां पर लोकल
कैश में यह हमारे पास एक डाटा इनकंसिस्टेंसी की प्रॉब्लम आती है। तो अब इस प्रॉब्लम को हम कैसे सॉल्व करते हैं?
तो इस प्रॉब्लम को सॉल्व करने के लिए हम डिस्ट्रीब्यूटेड कैश का यूज करते हैं। डिस्ट्रीब्यूटेड कैशिंग का यूज करते हैं।
अब डिस्ट्रीब्यूटेड कैशिंग में क्या होता है कि हम कैश को एक शेयर्ड लोकेशन पे रखते हैं। इस शेयरर्ड लोकेशन पे हम ग्लोबली इस
कैश को रखते हैं। और फिर क्या होता है कि हमारे सारे के सारे एप्लीकेशन सर्वर्स सेम कैश से यह हमारा रेडिश हो सकता है। तो
यहां पर सारे के सारे एप्लीकेशन सर्वर्स हमारे सेम कैश से सेम कैश मेमोरी से डेटा को फैच कर सकते हैं और अपडेटेड डेटा भी
देख सकते हैं। तो यहां पे यदि हम डिस्ट्रीब्यूटेड कैश का यूज़ करते हैं तो हम डेटा इनकंसिस्टेंसी की प्रॉब्लम
को सॉल्व कर सकते हैं। अब डिस्ट्रीब्यूटेड कैश का यूज़ करने से क्या होता है कि हम इस कैश मेमोरी को कैश को या रेडिस के
क्लस्टर्स को इंडिविजुअली भी स्केल कर सकते हैं। लेट्स से कि हमारा ये जो रेडिस है कैश है ग्लोबल कैश है इसमें ज्यादा लोड
पड़ रहा है। तो हम क्या कर सकते हैं कि इसे इंडिविजुअली स्केल भी कर सकते हैं। तो हमारे पास अब इस रेडिस के रेडिस क्लस्टर
के मल्टीपल इंस्टेंसेस हो जाएंगे। तो यहां पे ये सिंगल पॉइंट ऑफ फेलियर भी नहीं रह जाएगा। तो ऐसे करके हम डिस्ट्रीब्यूटेड
कैश का यूज करते हैं। डिस्ट्रीब्यूटेड कैश में बेसिकली हम एक शेयरर्ड लोकेशन पे हमारे कैश मेमोरी को रखते हैं ताकि सारे
के सारे एप्लीकेशन सर्वर्स उस सेम कैश मेमोरी से डेटा को एक्सेस कर पाएं। तो अब यह हमारा ग्लोबल कैश या डिस्ट्रीब्यूटेड
कैशिंग डाटा इनकंसिस्टेंसी की प्रॉब्लम को सॉल्व कर दे रही है। लेट्स से यूजर एक्स आएगा एंड ही वांट्स टू एक्सेस ह प्रोफाइल
तो रिक्वेस्ट जाएगी वन ऑफ द एप्लीकेशन सर्वर के पास। उसके बाद यह एप्लीकेशन सर्वर इस ग्लोबल कैश से डेटा को या यूजर
की प्रोफाइल को एक्सेस करने का ट्राई करेगा। एंड लेट्स से इफ डेटा इज़ प्रेजेंट इन दिस ग्लोबल कैश। तो हम इसे रिटर्न कर
देंगे एप्लीकेशन सर्वर को और फिर एप्लीकेशन सर्वर यूजर एक्स की प्रोफाइल को उसे रिटर्न कर देगा। अब यदि यूजर की
रिक्वेस्ट ऐप सर्वर टू पे भी आती है तो भी हम ग्लोबल कैश यूज़ कर रहे हैं। हमारा जो कैश है वह एक शेयरर्ड लोकेशन पे है। हम
सेम कैश मेमोरी यूज़ कर रहे हैं। तो ऐप सर्वर टू भी सेम कैश को सेम ग्लोबल कैश को ही एक्सेस करेगा। तो यह फायदा होता है
हमारे डिस्ट्रीब्यूटेड कैश का। तो यस डिस्ट्रीब्यूटेड कैश के आने से हमारे डेटा इनकंसिस्टेंसी की प्रॉब्लम सॉल्व हुई। सो
वी कैन से कि ये एक्यूरेट होता है। एक्यूरेट एक्यूरेट होता है। बट इट इज़ स्लो। अब ये स्लो क्यों क्यों है? क्योंकि
यहां पे हम इसे यहां हम ग्लोबली कैश का यूज़ कर रहे हैं। ग्लोबल कैश का यूज़ कर रहे हैं। तो यहां हमारी एक नेटवर्क कॉल बढ़
जाएगी। एक्स्ट्रा नेटवर्क कॉल बढ़ जाएगी। तो यह स्लो होता है क्योंकि हमारे पास एक्स्ट्रा नेटवर्क कॉल बढ़ जाती है। तो ये
होते हैं हमारे लोकल कैश एंड डिस्ट्रीब्यूटेड कैश। अब नेक्स्ट क्वेश्चन जो आता है वो यह है कि हमें कौन सा डेटा
इन कैश मेमोरी में रखना है? कौन सा डाटा हमें कैश मेमोरी में नहीं रखना। तो एक बार इसे समझते हैं। तो इसके लिए हम यूज़ करते
हैं कैश पॉलिसीज का। कैश पॉलिसीज का। अब कैश पॉलिसीज हमें बताती हैं कि कौन सा डाटा हमें कैश में लोड करना है। कौन सा
डाटा हमें कैश में रखना है और कौन सा डेटा हमें कैश से बाहर करना है। सो, कैश पॉलिसी टेल्स कि व्हिच डेटा वी हैव टू लोड टू द
कैश एंड व्हिच डेटा वी हैव टू अविक्ट आउट ऑफ द कैश। तो यह दो चीजें हमें कैश पॉलिसीज बताती हैं। और जो कैश की
परफॉर्मेंस होती है, वह सिंपली इन कैश पॉलिसीज पे ही डिपेंड करती है। अब हमारे पास दो कैश पॉलिसीज होती हैं। फर्स्ट होती
है हमारा कैश एिक्शन पॉलिसी। कैश एिक्शन पॉलिसी। तो, यह जो हमारी कैश एिक्शन पॉलिसी होती है, यह बताती है कि
कौन सा डाटा हमें एिक्ट करना है कैश से। तो यह बताएगी कि हमें कौन सा डाटा कैश से बाहर निकालना है। तो इसमें हमारे पास एक आ
जाती है लीस्ट रिसेंटली यूज्ड। एक हमारे पास आ जाती है फर्स्ट इन फर्स्ट आउट। फर्स्ट इन फर्स्ट आउट और एक हमारे पास आ
जाती है लीस्ट फ्रीक्वेंटली यूज्ड। तो अब एक-एक करके इन्हें समझते हैं। तो सबसे पहले हम देखते हैं FFO को फर्स्ट इन
फर्स्ट आउट। तो इसमें क्या होता है कि हमारे कैश में लेट्स से यह हमारा कैश है। कैश है। तो FFO में क्या होता है कि जो भी
डेटा पहले स्टोर किया गया कैश में जो भी डेटा कैश में पहले स्टोर किया गया फर्स्ट इन उसे ही हम पहले रिमूव करते हैं। लेट्स
से कि यहां पे हमारे पास डेटा इस ऑर्डर में आया ए सी लेट्स से ये एक डेटा है। ये एक डेटा है और यह एक डेटा है। और सेम
ऑर्डर में यह डेटा आया। 1 2 3 इस सेम ऑर्डर में यह डेटा आया। तो क्या होगा कि यह डाटा हम कैश में स्टोर करेंगे। अब
क्योंकि यह जो A है इसे हमने सबसे पहले कैश में स्टोर किया था तो इसे ही हम सबसे पहले कैश से रिमूव करेंगे। तो ये होता है
हमारा फर्स्ट एंड फर्स्ट आउट। अब ये फर्स्ट एंड फर्स्ट आउट में प्रॉब्लम क्या है कि ये फर्स्ट एंड फर्स्ट आउट इस बात पे
जोर नहीं देता कि ये डेटा कितने बार एक्सेस हो रहा है। लेट्स से कि ये जो डेटा ए है ये हर घंटे एक्सेस हो रहा है। लेट्स
से एव्री आवर एव्री आर ये डेटा एक्सेस हो रहा है। और ये जो डेटा है यह B और C है। यह लेट्स से फाइव डज़ के इंटरवल में हो रहा
है। 5 दिन में एक बार ये भी लेट्स से डेज में एक बार तो इस फीफो के लिए ये एक्सेस काउंट मैटर नहीं करता। भले ही यह डेटा ए
जो है वो भले ही हर घंटे एक्सेस हो रहा है बट स्टिल यह यदि पहले आया है तो यह FFO किसी नए डेटा के लिए लेट से अब हमें नया
डाटा डी ऐड करना है तो यह कैश क्या करेगा? FFO क्या करेगा? इस कैश से यू इस डाटा A को रिमूव कर देगा। क्योंकि यह पहले आया
था। भले ही वह डाटा हर घंटे एक्सेस हो रहा है, बट इट डज़ंट मैटर फॉर FFO. FFO हमेशा उसे रिमूव करेगा जो पहले आया। सो दैट्स
व्हाई वी कॉल दिस FFO फर्स्ट इन फर्स्ट आउट। अब जो हमारे पास नेक्स्ट है वो है लीस्ट रिसेंटली यूज़्ड। तो अब इसमें हम
क्या करते हैं? हम रिसेंटली यूज्ड एंट्रीज को टॉप पर रखते हैं। लेट्स से कि हमारे पास ऐसे थ्री डिफरेंट एंट्रीज हैं। लेट्स
से फाइव डिफरेंट एंट्रीज हैं ए, बी, सी, डी एंड ई। और जो हमारा ए, सी और डी है, यह रिसेंटली यूज़ हुआ है। लेट्स से ये हुआ है
फ्यू सेकंड्स एगो। यह हुआ है फ्यू सेकंड्स एगो। यह हुआ है फ्यू मिनट्स एगो। यह हुआ है फ्यू मिनट्स एगो। और यह हुआ है लेट्स
से फ्यू आवर्स एगो। तो क्या करते हैं? हम रिसेंटली यूज्ड एंट्रीज को टॉप पे रखते हैं। और जो हमारा लीस्ट रिसेंटली यूज्ड है
उनको हम बॉटम पे रखते हैं। सो व्हिच विल बी बी एंड ई। तो इन्हें हम बॉटम पे रखते हैं। और हम क्या करते हैं? लीस्ट रिसेंटली
यूज्ड में जो हमारी बॉटम मोस्ट एंट्रीज हैं। बॉटम मोस्ट एंट्रीज या लीस्ट रिसेंटली यूज़्ड एंट्रीज जो कि फ्यू डज़ बैक
यूज़ हुई हैं या मंथ्स बैक यूज़ हुई हैं। तो, हम क्या करते हैं कि बॉटम मोस्ट एंट्रीज को या लीस्ट रिसेंटली यूज़्ड
एंट्रीज को किक आउट कर देते हैं फ्रॉम कैश मेमोरी। तो, यह होता है हमारा लीस्ट रिसेंटली यूज्ड। अब लीस्ट रिसेंटली यूज्ड
के बाद हमारा आ जाता है लीस्ट फ्रीक्वेंटली यूज्ड। तो लेट्स से इसे भी सेम एग्जांपल से समझते हैं। लेट्स से
हमारे पास ऐसे थ्री डिफरेंट एंट्रीज हैं। ये एक एंट्री ए है, एंट्री B है, एंट्री C है। ये तीनों ही हमारे कैश मेमोरी में
स्टोर हैं। अब लीस्ट फ्रीक्वेंटली यूज़्ड में क्या होता है कि लेट्स से ये एंट्री A है। यह पांच बार एक्सेस की गई है। यह वाली
तीन बार और लेट्स से यह C एंट्री जो है यह केवल एक बार एक्सेस की गई है। तो लीस्ट फ्रीक्वेंटली यूज्ड में हम उस एंट्री को
रिमूव कर देते हैं जो बहुत कम यूज हुई हो। तो इस केस में यह जो सी एंट्री है इसका फ्रीक्वेंसी काउंट या एक्सेस काउंट केवल
एक है। तो ये लीस्ट फ्रीक्वेंटली एक्सेस्ड है। तो इसमें क्या करेंगे? हम लीस्ट फ्रीक्वेंटली एक्सेस्ड में हम सबसे कम
एक्सेस की गई एंट्री को रिमूव कर देंगे। तो इस केस में हम इस C को कैश से रिमूव कर देंगे। यदि कोई नया डेटा डी आता है तो इस
डी को इंसर्ट करने के लिए हम इस सी को एिक्ट कर देंगे फ्रॉम कैश मेमोरी। तो ये होता है हमारा लीस्ट फ्रीक्वेंटली यूज्ड।
तो ये देख ली हमने हमारी कैश पॉलिसीज जिसमें हमने देखा कैश इविक्शन पॉलिसी। अब हम देखते हैं हमारी सेकंड पॉलिसी को।
सेकंड कैश पॉलिसी को जिसे हम बोलते हैं कैश राइट पॉलिसीज। कैश राइट
राइट पॉलिसीज कैश राइट पॉलिसीज तो अब ये कैश राइट पॉलिसीज में एक हमारे पास आ जाती है राइट
थ्रू पॉलिसी राइट थ्रू पॉलिसी और एक हमारे पास आ जाती है राइट बैक
पॉलिसी राइट बैक पॉलिसी अब जो हमारी कैश पॉलिसी में हमने जो कैश इविक्शन पॉलिसी देखी की
इसका यूज़ हम कर क्यों कर रहे थे कि कैश हमारा लिमिटेड डेटा को स्टोर कर सकता है। करेक्ट इट्स अ इन मेमोरी सॉल्यूशन जो
टेंपरेरी डेटा को स्टोर करता है। तो टेंपरेरी स्टोर करता है और हमें टाइम टाइम टाइम टू टाइम डेटा को को रिमूव भी करना
पड़ेगा इस कैश से। राइट? तो इसके लिए हम कैश इविक्शन पॉलिसीज का यूज करते हैं। अब सिमिलरली राइट ऑपरेशंस के लिए या अपडेट के
लिए हम कैश राइट पॉलिसीज का यूज करते हैं। अब जब भी हम कोई डेटा अपडेट करते हैं तो सबसे बड़ा क्वेश्चन यह आता है कि कहां पे
हम डेटा सबसे पहले अपडेट करेंगे? कैश में या डेटाबेस में या दोनों जगह? तो इस क्वेश्चन का आंसर देती है हमारी यह कैश
राइट पॉलिसीज जिसमें हमारे पास है राइट थ्रू और राइट बैक जो हमें बताएगी कि कहां पे हमें पहले राइट करना है या कहां हमें
पहले डेटा अपडेट करना है कैश में या डेटाबेस में या दोनों में। तो सबसे पहले समझते हैं राइट थ्रू को। तो राइट थ्रू में
हम डेटा को कैश और डेटाबेस दोनों में सेम टाइम पर अपडेट करते हैं। लेट्स से कि यह हमारा कोई यूजर है और इस यूजर ने यूजर को
अपनी प्रोफाइल में लेट्स से फोन नंबर को चेंज करना है। तो इस केस में रिक्वेस्ट जाएगी ऐप सर्वर के पास। ऐप सर्वर के पास
और यहां पे होगा हमारा एक डिस्ट्रीब्यूटेड कैश। यहां हो गया हमारा कैश। और फिर यहां पर हो गया हमारा डेटाबेस। हमारा हो गया
यहां पर डेटाबेस। तो राइट थ्रू में सबसे पहले यह डेटा चेंज होगा कैश में। कैश मेमोरी में। लेट्स से यूजर को अपना फोन
नंबर, यूजर x को अपना फोन नंबर चेंज करना है। तो, यह चेंज होगा सबसे पहले कैश में। और फिर सेम टाइम पे ही यह चेंज हो जाएगा
डेटाबेस में। मतलब राइट थ्रू में राइट थ्रू पॉलिसी में कैश और डेटाबेस दोनों सेम टाइम पर अपडेट होते हैं। तो एक बार फ्लो
देखते हैं हमारे राइट थ्रू का। तो राइट थ्रू में यूजर सबसे पहले अपडेट करता है और यह अपडेट जाती है कैश में। यह अपडेट जाती
है कैश में। उसके बाद कैश इस अपडेट को इमीडिएटली डेटाबेस में रिफ्लेक्ट कर देता है। कैश राइट्स इट इमीडिएटली टू डेटाबेस।
उसके बाद बोथ कैश एंड डीबी आर ऑलवेज इन सिंक। लेट्स से कि यूजर x ने कैश में अपडेट की वैल्यू अपनी एज अपडेट की। लेट्स
से उसने 17 से अब 18 अपडेट की तो कैश में यह अपडेट आई। उसके बाद कैश तुरंत इस अपडेट को डेटाबेस में भी रिफ्लेक्ट करा देता है
या तुरंत इस राइट को डी डेटाबेस में भी अपडेट कर देता है। तो ये होता है हमारा राइट थ्रू। अब राइट थ्रू में क्योंकि हम
डेटाबेस को एक्सेस कर रहे हैं तो जो हमारा राइट्स होते हैं राइट्स होते हैं वह स्लो होते हैं। वो स्लो होते हैं। क्योंकि यहां
पे हम डेटाबेस को हिट कर रहे हैं। डेटाबेस कॉल कर रहे हैं। तो एक एक्स्ट्रा नेटवर्क कॉल जुड़ जा रही है। जिसकी वजह से राइट
थ्रू में हमारे राइट्स जो होते हैं वो स्लो होते हैं। लेकिन एक चीज एक चीज की यहां हमें गारंटी होती है वो है डेटा
कंसिस्टेंसी। तो यहां डेटा कंसिस्टेंसी की हमें गारंटी होती है क्योंकि कैश और डेटाबेस दोनों हमेशा सिंक में होते हैं।
तो यहां डेटा कंसिस्टेंसी हमें देखने को मिलती है। लेकिन जो हमारे राइट्स होते हैं वो स्लो होते हैं। अब देखते हैं हम राइट
बैक का फ्लो। राइट बैक पॉलिसी में क्या होता है? तो राइट बैक पॉलिसी में यूजर सबसे पहले कैश कैश को अपडेट करता है। जो
भी डाटा आएगा वह सबसे पहले कैश में अपडेट होगा। उसके बाद कैश एप्लीकेशन सर्वर को तुरंत रिस्पांस भेज देता है कि ठीक है
यूजर का डाटा अपडेट हो चुका है। तो एप्लीकेशन सर्वर यूजर को रिस्पांस भेज देगा कि ठीक है योर एज या फोन नंबर हैज़
बीन अपडेटेड। तो राइट बैक में यह यूजर रिक्वेस्ट करेगा। रिक्वेस्ट जाएगी ऐप सर्वर के पास। ऐप सर्वर के पास। उसके बाद
यहां हमारा होगा कैश। यहां हमारा होगा डेटाबेस। तो राइट बैक में कोई भी यूजर अपडेट करता
है या राइट ऑपरेशन परफॉर्म करता है लेट्स से एज चेंज करना तो यह रिक्वेस्ट जाएगी कैश में कैश में यहां यूजर की ऐज चेंज हो
जाएगी लेट्स से 17 से 18 हो जाएगी और उसके बाद यह कैश इमीडिएटली रिस्पांस सेंड कर देगा ऐप सर्वर को कि ठीक है यूजर्स ऐज हैज़
बीन चेंज्ड और फिर ऐप सर्वर इस इस रिस्पांस को भेज देगा इस यूजर को तो यह होता है हमारा राइट बैक में और उसके बाद
कैश कुछ टाइम बाद डेटाबेस में यह ऐज को चेंज कर देता है। यहां पे डेटाबेस में अभी ऐज 17 ही थी लेकिन कुछ टाइम बाद यह कैश इस
अपडेट को डेटाबेस में भी राइट कर देता है एसिंक्रोनसली जो कि बैकग्राउंड प्रोसेस होती है। तो बैकग्राउंड में अह डेटाबेस की
डेटाबेस में भी एंट्री अपडेट हो जाती है। तो यहां पे 17 से अब एंट्री 18 हो जाएगी। तो वही हमने देखा कि कैश राइट्स चेंजेस टू
डेटाबेस लेटर इन द बैकग्राउंड। बाद में एसिंक्रोनसली यह बैकग्राउंड प्रोसेस होती है। जहां ये डेटाबेस में भी इस राइट को
अपडेट कर देता है। तो ये देखा हमने राइट बैक। अब राइट बैक में हमारा डेटा इनकंसिस्टेंट हो जाता है। क्योंकि यहां पे
हमने कैश में अपडेट कर दी। कैश में ऐज हमारी 18 हो गई। लेकिन डेटाबेस में अभी भी हमारी ऐज कुछ टाइम तक 17 ही थी। तो राइट
बैक के केस में कुछ टाइम तक डेटा इनकंसिस्टेंट रह सकता है। तो यहां पे हमें कुछ टाइम तक डेटा इनकंसिस्टेंट देखने को
मिल सकता है। डेटा इनकंसिस्टेंट देखने को मिल सकता है। लेकिन यह जो हमारा राइट बैक होता है, इसमें जो हमारे राइट्स होते हैं,
राइट ऑपरेशन होते हैं, दे आर फास्ट। क्यों? क्योंकि हम इमीडिएटली डेटाबेस में चेंज नहीं कर रहे। हम सिर्फ कैश में सबसे
पहले चेंज करते हैं। कैश में अपडेट करते हैं और बाद में हम डेटाबेस में करते हैं। तो जो हमारा राइट बैक होता है वहां पे
राइट्स आर फास्ट। क्योंकि यहां हम सिर्फ कैश में पहले अपडेट करते हैं। डेटाबेस में नहीं करते। डेटाबेस में बाद कर बाद में
करते हैं। तो इस वजह से हमें डेटाबेस के लिए नेटवर्क कॉल नहीं करना पड़ता। नेटवर्क कॉल नहीं करना पड़ता। डेटाबेस को एक्सेस
नहीं करना पड़ता। इस वजह से जो हमारा राइट बैक होता है वो फास्ट होता है। तो, यह देखा हमने राइट अह कैश राइट पॉलिसीज़। हमने
कैश एिक्शन पॉलिसीज़ भी देखी। हमने उसमें एलआरयू, FFO, एलएफयू देखा। हमने कैश राइट पॉलिसीज़ में राइट्स थ्रू और राइट बैक
देखा। हमने डिस्ट्रीब्यूटेड कैश देखा। हमने कैशिंग देखा। और हमने देखा कि कैसे कैशिंग डिस्ट्रीब्यूटेड कैशिंग से डिफरेंट
है। हमारे लोकल कैशिंग में क्या प्रॉब्लम आ रही थी जिसकी वजह से हमें डिस्ट्रीब्यूटेड कैशिंग में जाना पड़ा। सो
आई थिंक दिस इज़ ऑल फॉर दिस वीडियो एंड वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन ब-बाय। शो सम लव। थैंक्स।
[संगीत] हे एवरीवन वेलकम बैक वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज और
आज के इस वीडियो में हम बात करने वाले हैं डिस्ट्रीब्यूटेड सिस्टम्स के बारे में कि ये डिस्ट्रीब्यूटेड सिस्टम्स होते क्या
हैं और हमें इनकी नीड क्या है? तो स्टार्ट करते हैं और सबसे पहले मैं अपनी वीडियो मिनिमाइज कर लेता हूं। सो दैट यू विल बी
एबल टू सी एंटायर स्क्रीन वेल। ओके। सो स्टार्ट करते हैं। तो पिछले कुछ वीडियोस में हमने लोड बैलेंसर्स को समझा।
हमने देखा कि लोड बैलेंसर्स क्या होते हैं? इनके हमने डिफरेंट टाइप्स देखे। हमने लोड बैलेंसिंग एल्गोरिदम्स को समझा। हमने
जस्ट लास्ट वीडियो में हॉरिजॉन्टल स्केलिंग को समझा कि हॉरिजॉन्टल स्केलिंग क्या होती है? हमने उसके पिछली वीडियोस
में देखा रीजंस और अवेलेबिलिटी ज़ोंस के बारे में कि हमारे रीजंस क्या होते हैं? अवेलेबिलिटी ज़ोन क्या होते हैं? इनकी हमें
नीड क्या है? तो ये सारे टॉपिक्स ये सारे कांसेप्ट हमने कवर किए थे। तो ये सारे के सारे कांसेप्ट ये लोड बैलेंसर, हॉरिजॉन्टल
स्केलिंग, रीजंस, अवेलेबिलिटी ज़ों्स दे ऑल आर अ पार्ट ऑफ डिस्ट्रीब्यूटेड सिस्टम्स। दे ऑल आर अ पार्ट ऑफ़ डिस्ट्रीब्यूटेड
सिस्टम्स। तो डिस्ट्रीब्यूटेड सिस्टम्स में क्या होता है कि हमारे पास मल्टीपल कंप्यूटरटर्स होते हैं। मल्टीपल
इंडिपेंडेंट कंप्यूटरटर्स होते हैं। लेट्स से कंप्यूटर वन, कंप्यूटर टू, कंप्यूटर थ्री। तो ऐसे हमारे पास मल्टीपल
इंडिपेंडेंट कंप्यूटरटर्स होते हैं। और ये मल्टीपल इंडिपेंडेंट कंप्यूटरटर्स सेम टास्क को सेम फीचर्स को प्रोवाइड कर रहे
होते हैं। लेट्स से कि आपका कोई एप्लीकेशन है। आपका लेट्स से कोई ई-कॉमर्स काइंड ऑफ़ एप्लीकेशन है और आपने उस एप्लीकेशन को इन
तीनों कंप्यूटरटर्स में होस्ट कर दिया। तो, यह हमारे तीनों इंडिपेंडेंट कंप्यूटरटर्स हैं। और यह तीनों
कंप्यूटरटर्स सेम फीचर, सेम फंक्शनैलिटी या सेम क्वालिटीज, सेम एस्पेक्ट्स प्रोवाइड करेंगे। और यहां पे यूजर को
लेट्स से कोई एक यू ये यूजर है तो इस यूजर को ये लगेगा कि ये केवल एक सिंगल कंप्यूटर उसकी फंक्शनैलिटी या उसके टास्क को फुलफिल
कर रहा है। जबकि यहां पे होंगे मल्टीपल कंप्यूटरटर्स एंड दे आर परफॉर्मिंग सेम टास्क। तो ये होते हैं हमारे
डिस्ट्रीब्यूटेड सिस्टम्स। डिस्ट्रीब्यूटेड सिस्टम्स का मतलब है कि हैविंग मल्टीपल इंडिपेंडेंट कंप्यूटरटर्स
एंड इट अपीयर्स ऐज़ अ सिंगल कंप्यूटर टू यूजर। तो ये एक डेफिनेशन होती है डिस्ट्रीब्यूटेड सिस्टम्स की। अब
डिस्ट्रीब्यूटेड सिस्टम्स का मतलब होता है मैनी कंप्यूटरटर्स कि हमारे पास मल्टीपल कंप्यूटरटर्स हैं
एंड दे आर वर्किंग टुगेदर। दे आर वर्किंग टुगेदर वर्किंग टुगेदर एंड दे आर ट्राइंग टू
सॉल्व अ लार्ज प्रॉब्लम। सो दे आर ट्राइंग टू सॉल्व अ लार्ज प्रॉब्लम। लार्ज प्रॉब्लम। तो, यहां पे मल्टीपल सर्वर्स
मल्टीपल कंप्यूटरटर्स साथ में काम करते हैं एंड दे ट्राई टु सॉल्व अ लार्ज प्रॉब्लम। और यूजर को यह लगता है कि जो भी
टास्क फुलफिल हो रहे हैं, वह एक सिंगल कंप्यूटर के थ्रू हो रहे हैं। तो, अब डिस्ट्रीब्यूटेड सिस्टम्स में हमने लोड
बैलेंसर्स को देखा था। लोड बैलेंसर्स का काम क्या था? कि यह ट्रैफिक को राउट करता है टू मल्टीपल सर्वर इंस्टेंसेस। मल्टीपल
सर्वर इंस्टेंसेस। लेट्स से यह हो गया हमारा सर्वर वन, सर्वर टू,
सर्वर थ्री। तो, यहां पे ऐसे हमारे पास मल्टीपल सर्वर्स थे और उन सर्वर्स में रिक्वेस्ट को डिस्ट्रीब्यूट करने का काम
कौन कर रहा था? लोड बैलेंसर। अब क्वेश्चन ये था कि हमारे पास मल्टीपल सर्वर्स क्यों थे? तो, इसके लिए भी हमने लास्ट वीडियो
में हॉरिजॉन्टल स्केलिंग देखा। अब हॉरिजॉन्टल स्केलिंग में हमने क्या देखा था कि लेट्स से यदि हमारे पास बहुत सारे
यूज़र्स आ जाते हैं। हम हमारे एप्लीकेशन को स्केल करते हैं और हमारे एप्लीकेशन में नंबर ऑफ यूज़र्स बढ़ जाते हैं। लेट्स से 1
मिलियन यूज़र्स आ जाते हैं। तो इस केस में एक लैपटॉप या एक कंप्यूटर या एक सर्वर की भी एक कैपेसिटी होगी। तो ऐसा हो सकता है
कि 1 मिलियन यूजर आने के बाद इस सर्वर की या इस कंप्यूटर की कैपेसिटी खत्म हो जाए। तो उसके बाद हमें या तो बड़ा कंप्यूटर
लाना पड़ेगा या हमें सेम ऐसे ही अलग-अलग कंप्यूटरटर्स लाने होंगे और उसमें हम हमारे एप्लीकेशन को होस्ट कर देंगे। तो
सेम कंप्यूटरटर्स लाने को, सेम कंप्यूटरटर्स लाने को और उसमें हमारे एप्लीकेशन को होस्ट करने को हमने देखा था
कि उसे हम हॉरिजॉन्टल स्केलिंग बोलते हैं। तो हॉरिजॉन्टल स्केलिंग में हमारे पास मल्टीपल एप्लीकेशन सर्वर्स होते हैं।
मल्टीपल सर्वर्स होते हैं। जहां हम हमारे एप्लीकेशन को होस्ट कर देते हैं। तो अब हॉरिजॉन्टल स्केलिंग हमें क्या फायदा दे
रहा था? पहला तो यही कि यदि हमारे एप्लीकेशन में 1 मिलियन रिक्वेस्ट एक साथ आती हैं तो अब केवल एक सर्वर पे लोड नहीं
पड़ेगा। यह लोड बैलेंसर के थ्रू हम रिक्वेस्ट को डिस्ट्रीब्यूट कर देंगे अमोंग मल्टीपल सर्वर इंस्टेंसेस। तो अब हर
सर्वर पे पड़ने वाला लोड कम हो जाएगा। तो ये काम हो गया था पहला हमारा हॉरिजॉन्टल स्केलिंग का। जो दूसरा एडवांटेज था वो ये
था कि सिंगल सर्वर के होने पे लेट्स से एक हमारा सिंगल सर्वर है। तो सिंगल सर्वर के होने पे क्या प्रॉब्लम थी कि यदि इस सर्वर
पे कुछ भी फौल्ट आता है। लेट्स से ये सर्वर बिकॉज़ ऑफ़ सम एक्स वzेड रीजन क्रैश हो जाता है। तो इस केस में हमारा पूरा
सिस्टम ही क्रैश हो जाएगा। क्योंकि अब हमारे पास कोई बैकअप सर्वर नहीं था। हमारे पास कोई बैकअप सर्वर नहीं था।
लेकिन हॉरिजॉन्टल स्केलिंग में हमने सर्वर्स मल्टीपल सर्वर्स लगा दिए। तो अब यदि हमारा एक सर्वर क्रैश भी हो जाता है
या बिकॉज़ ऑफ़ सम एक्स व जेड रीज़न ये डाउन हो जाता है तो हम यूज़र्स की रिक्वेस्ट को नए यूज़र्स की रिक्वेस्ट को इस दूसरे सर्वर
पे राउट कर देंगे। तो ये काम देखा था हमने अह हमारे हॉरिजॉन्टल स्केलिंग का। तो यस हॉरिजॉन्टल स्केलिंग, लोड बैलेंसर्स,
रीजंस, अवेलेबिलिटी ज़ोंस दे ऑल आर अ पार्ट ऑफ डिस्ट्रीब्यूटेड सिस्टम्स। तो बेसिकली डिस्ट्रीब्यूटेड सिस्टम्स का मतलब है कि
हमारे पास मल्टीपल नोड्स हैं। मल्टीपल नोड्स हैं। और यह हमारे पास मल्टीपल नोड्स क्यों हैं? ताकि हम अच्छे से स्केल कर
सकें। यदि हमारे एप्लीकेशन में नंबर ऑफ यूज़र्स बढ़ जाते हैं, तो हम ईजीली स्केल कर सकें। और दूसरा कि हमारे एप्लीकेशन में
कहीं भी सिंगल पॉइंट ऑफ फेलियर जैसा कुछ ना रहे कि एक सिंगल सर्वर के क्रैश होने से हमारा पूरा एप्लीकेशन या पूरा सिस्टम
क्रैश हो गया। उससे दैट गिव्स बैड यूजर एक्सपीरियंस टू यूजर। तो ये सब की वजह से वी हैव मल्टीपल नोड्स। और ये मल्टीपल नड्स
आपस में कम्युनिकेशन के लिए नेटवर्किंग प्रोटोकॉल्स का यूज करते हैं। नेटवर्किंग प्रोटोकॉल्स का यूज करते हैं। तो
नेटवर्किंग प्रोटोकॉल्स इज़ आल्सो समथिंग दैट वी हैव डिस्कस्ड इन आवर फ्यू इन आवर पास्ट वीडियोस। तो ये था हमारा
डिस्ट्रीब्यूटेड सिस्टम्स के बारे में। अब एक बार देख लेते हैं डिस्ट्रीब्यूटेड सिस्टम्स के कुछ एडवांटेजेस ऑलरेडी। ऑलदो
हमने यह डिस्कस कर लिए हैं। बट स्टिल लेट्स डिस्कस देम वन मोर टाइम। सो द क्वेश्चन इज व्हाई डिस्ट्रीब्यूटेड
सिस्टम्स। व्हाई डिस्ट्रीब्यूटेड सिस्टम्स? तो पहला रीजन है स्केलेबिलिटी। स्केलेबिलिटी
कि यदि हमारे एप्लीकेशन में नंबर ऑफ यूज़र्स बढ़ जाते हैं। नंबर ऑफ यूज़र्स बढ़ जाते हैं। तो पॉसिबल हो सकता है कि एक
सिंगल सर्वर उन सारे यूज़र्स की रिक्वेस्ट को फुलफिल ना कर पाए। तो इस केस में हम नंबर ऑफ सर्वर्स बढ़ा देंगे और फिर हम इन
यूज़र्स की रिक्वेस्ट को ईजीली हैंडल कर सकते हैं बाय डिस्ट्रीब्यूटिंग यूज़र्स रिक्वेस्ट टू मल्टीपल सर्वर इंस्टेंसेस।
तो ये था हमारा पहला पॉइंट। दूसरा है फौल्ट टॉलरेंस फौल्ट टॉलरेंस।
तो अब इसका क्या मतलब है? तो हमने देखा था कि यदि हमारे एप्लीकेशन में हमारे सिस्टम में एक सिंगल सर्वर होगा और यही क्रैश हो
जाए या किसी वजह से डाउन हो जाए तो सारे के सारे यूज़र्स की रिक्वेस्ट को हम फुलफिल नहीं कर पाएंगे। तो यह हमारा सर्वर सिंगल
पॉइंट ऑफ फेलियर बन जाएगा। तो सिंगल पॉइंट ऑफ फेलियर से बचने के लिए हम डिस्ट्रीब्यूटेड सिस्टम्स का यूज करते
हैं। जहां हम मल्टीपल सर्वर्स लगा देते हैं। तो अब यदि एक सर्वर क्रैश भी होता है तो हम यूज़र्स की रिक्वेस्ट को दूसरे सर्वर
पे राउट कर देते हैं। तो ये था हमारा दूसरा पॉइंट फॉल्ट टॉलरेंस या हम कह सकते हैं दूसरा एडवांटेज ऑफ डिस्ट्रीब्यूटेड
सिस्टम्स। जो थर्ड है हमारा वो है लो लेटेंसी। लो लेटेंसी। अब इसका क्या मतलब है? तो इसे
भी एक एग्जांपल के थ्रू समझते हैं। लेट्स से एक कोई यह यूजर है और यह google.com रिक्वेस्ट करता है तो यह रिक्वेस्ट जाएगी
google.com के सर्वर पे। अब लेट्स से कि यह जो सर्वर है यह इंडिया में होस्टेड है। लेट्स से यह इंडिया में होस्टेड है। अब
लेट्स से कि कोई यूजर फ्रॉम यूएसए वांट्स टू एक्सेस Google। सेम वह भी Google को एक्सेस करना चाहता है। तो इस केस में इस
यूजर की रिक्वेस्ट को फुलफिल करने के लिए हमें ज्यादा टाइम लगेगा। क्योंकि यूजर है यूएसए में और यह जो सर्वर है यह होस्टेड
है इंडिया में। तो यूजर की रिक्वेस्ट को इट इट्स रिक्वेस्ट विल हैव टू ट्रैवल अ लॉट। तो इस केस में हमारी लेटेंसी बढ़
जाती है। एंड दैट गिव्स बैड यूजर एक्सपीरियंस टू यूजर। क्योंकि यदि हाफ सेकंड का भी डिले होता है तो यूजर विल नॉट
फील गुड। तो यह था हमारा लो लेटेंसी। तो यहां हमारी लेटेंसी इनक्रीस हो जाती है। तो अब इन लेटेंसी को डिक्रीज करने के लिए
या लेटेंसी को कम करने के लिए हम क्या कर सकते हैं कि हम एक सर्वर हमारे एप्लीकेशन का एक सर्वर अह यूएसए में होस्ट कर सकते
हैं। लेट्स से अ ह्यूज ट्रैफिक इज़ कमिंग फ्रॉम यूएसए। तो हम क्या कर सकते हैं? एक सर्वर को यूएसए में ही होस्ट कर सकते हैं।
तो अब इस केस में जो यूएसए के यूज़र्स हैं उनकी रिक्वेस्ट यहां ना जाके इस वाले सर्वर पे जाएंगी और उनकी रिक्वेस्ट ईजीली
सर्व हो जाएंगी और यह हमारे सिस्टम की लेटेंसी को भी कम कर देगा। सो दिस इज़ अबाउट आवर थर्ड पॉइंट व्हिच इज़ लो
लेटेंसी। अब जो चौ चौथा पॉइंट है हमारा फोर्थ पॉइंट है वो है एग्रीमेंट। एग्रीमेंट। अब इसका क्या मतलब है? तो हमने
ऑलरेडी देखा कि हमारे पास डिस्ट्रीब्यूटेड सिस्टम्स में मल्टीपल सर्वर्स होते हैं। लेट्स से सर्वर वन, सर्वर टू,
सर्वर टू एंड लेट्स से सर्वर थ्री। अब लेट्स से कि ये तीनों सर्वर किसी ई-कॉमर्स एप्लीकेशन के हैं। और लेट्स से यहां पे दो
यूज़र्स आते हैं। यूजर एंड यूजर बी। यह दो यूज़र्स आते हैं। एंड दे वांट टू बाय लेट्स से iPhone। अब इस केस में यहां पे हमारा
है डेटाबेस और इस डेटाबेस में हमारे पास केवल एक iPhone का स्टॉक बचा है। एक iPhone का स्टॉक बचा हुआ है। अब लेट्स से
कि दोनों यूज़र्स सेम टाइम पे आते हैं। यूजर A हिट करता है सर्वर 2 को। यूजर B हिट करता है सर्वर 3 को। एंड दे बोथ वांट
टू बाय iPhone। और iPhone का कभी अभी हमारे पास केवल एक सिंगल स्टॉक बचा हुआ है। अब लेट्स से कि दे बोथ केम एट द सेम
टाइम। तो अब इस केस में किस यूजर की रिक्वेस्ट को फुलफिल करना है यह डिसाइड करना होता है हमें। तो इस केस में सारे के
सारे सर्वर्स को एक दूसरे पे ट्रस्ट करना होता है। दोनों सर्वर्स को यह सर्वर और यह सर्वर। अब ये दोनों ही बोलेंगे कि नहीं
मुझे यूजर ये बोलेगा मुझे यूजर ए की रिक्वेस्ट को फुलफिल करना है। ये बोलेगा मुझे यूजर बी की रिक्वेस्ट को फुलफिल करना
है। तो इस केस में दोनों ही सर्वर को एग्री होना पड़ता है विद इन मिलीसेकंड्स कि ठीक है यह वाले यूजर की रिक्वेस्ट को
फुलफिल होने देते हैं। तो सर्वर नीड नीड्स टू एग्री फास्ट। इट्स लाइक ऑक्शन बडिंग इन मिलीसेकंड्स। तो यहां पे सर्वर्स को फास्ट
एग्री करना पड़ता है कोई भी डिसीजन लेने से पहले। तो ये होता है हमारा फोर्थ पॉइंट जहां हमने देखा एग्रीमेंट।
अब डिस्ट्रीब्यूटेड सिस्टम्स में हमारे पास कैप थ्योरम भी होता है। तो कैप थ्योरम हम आगे आने वाली वीडियोस में देखेंगे।
जहां हम देखेंगे कि कैप थ्योरम बेसिकली एक शॉर्ट फॉर्म होता है। कंसिस्टेंसी, सी फॉर कंसिस्टेंसी, ए फॉर अवेलेबिलिटी। ए
फॉर अवेलेबिलिटी एंड पी फॉर पार्टीशन टॉलरेंस। तो हम देखेंगे कि वी जस्ट कैन नॉट हैव ऑल थ्री टुगेदर। तो ये हम देखेंगे
आगे आने वाली वीडियोस में जहां हम देखेंगे कि वी जस्ट कैन नॉट हैव कंसिस्टेंसी अवेलेबिलिटी एंड पार्ट पार्टीशन टॉलरेंस
ऑल एट वंस। तो ये था हमारा कैप थ्योरम के बारे में। एंड कैप थ्योरम इज़ आल्सो अ बिग पार्ट ऑफ़ डिस्ट्रीब्यूटेड सिस्टम्स। सो यस
आई गेस दिस इज़ ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन बय शो सम लव। थैंक्स।
[संगीत] हे एवरीवन वेलकम बैक। वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। और
आज के इस वीडियो में हम बात करने वाले हैं सीडीए के बारे में। तो स्टार्ट करते हैं और समझते हैं सीडीए को एक एग्जांपल की
हेल्प से। तो लेट्स से कि हम हमारे पास एक Netflix सिस्टम है और इस Netflix सिस्टम में हमारे पास यूज़र्स आ रहे हैं फ्रॉम
डिफरेंट ज्योग्राफीज़ डिफरेंट रीजंस। लेट्स से हमारे पास यूएसए से भी यूज़र्स आ रहे हैं इंडिया, जापान, यूके। तो हमारे पास
ऐसे डिफरेंट ज्योग्राफीज़ से यूज़र्स आ रहे हैं। एंड दे ऑल वांट टू एक्सेस Netflix। सो दे विल ट्राई टू कनेक्ट टू आवर सर्वर
राइट? तो बेसिकली वो www.netflix.com हमारी ये वेबसाइट को एक्सेस करने के लिए ट्राई करेंगे। अब यहां पे दिस इज़ आवर
डोमेन नेम राइट? Netflix इज़ आवर डोमेन नेम। तो बेसिकली सबसे पहले हम क्या करेंगे? हम डीएनएस की हेल्प से IP एड्रेस
को रॉल्व करेंगे और हम देखेंगे कि यह जो हमारा www.netflix.com है यह किस IP एड्रेस से मैप करता है। अब
लेट्स से कि हमें पता चला कि यह इस IP एड्रेस के साथ मैप्ड था। तो बेसिकली हमें यह IPपी एड्रेस मिला और अब यह हमारी
रिक्वेस्ट HTTP रिक्वेस्ट बनके जाएगी Netflix के सर्वर के पास। अब Netflix के सर्वर के पास जाएगी और Netflix के सर्वर
से अब हम मूवीज रिक्वेस्ट करेंगे। तो सारी की सारी वीडियोस या मूवीज या वेब सीरीज वो सारी कहां हमारे S3 स्टोरेज में स्टोर
होंगी। आई हैव मेड अ सेपरेट वीडियो ऑन Netflix सिस्टम डिज़ाइन। सो इफ यू वांट टू लर्न हाउ Netflix वर्क्स। सो प्लीज गो एंड
वॉच दैट वीडियो। तो ये Netflix सर्वर क्या करेगा कि S3 स्टोरेज से वीडियोस को फैच करेगा एंड देन इट विल सर्व दोज़ वीडियोस टू
यूजर। अब लेट्स से कि ये जो हमारा Netflix का सर्वर है और यह जो हमारा स्टोरेज है S3 स्टोरेज दे बोथ आर होस्टेड इन यूएसए। ठीक
है? हमारा S3 स्टोरेज और Netflix सर्वर यूएसए में होस्टेड है। अब क्या होगा कि सारे यूज़र्स यूज़र्स फ्रॉम यूएसए यूज़र्स
फ्रॉम इंडिया, जापान एंड यूके ये सारी अपनी रिक्वेस्ट करेंगे। ये रिक्वेस्ट जाएगी Netflix सर्वर के पास और सर्वर S3
स्टोरेज से वीडियो लाके इन यूज़र्स को दे देगा। ठीक है? हो गया। तो अब यहां पे प्रॉब्लम क्या आ रही है? अब यहां पे
प्रॉब्लम ये आ रही है कि ये सारे यूज़र्स डिफरेंट रीजंस में हैं, डिफरेंट ज्योग्राफीज़ में हैं। और ये जो हमारा
Netflix का सर्वर और S3 स्टोरेज है, यह यूएसए में होस्टेड है। तो यहां पे लेटेंसी की प्रॉब्लम आती है। लेटेंसी की यहां पे
प्रॉब्लम आती है। अब लेटेंसी की प्रॉब्लम कैसे आती है? तो हमारे पास एक यूजर है यूएसए से। हमारे पास यूजर है इंडिया से।
हमारे पास यूजर है यूके से। हमारे पास यूजर है जापान से। तो अब जो यूएसए के यूज़र्स होंगे, जो यूएसए के यूज़र्स होंगे,
उनकी रिक्वेस्ट जल्दी रिॉल्व हो जाएगी। क्योंकि जो सर्वर है, Netflix का जो सर्वर है, वो होस्टेड है। यूएसए में Netflix का
जो सर्वर है, वह यूएसए में होस्टेड है। तो यूएसए के यूज़र्स की रिक्वेस्ट यहां पे जल्दी फुलफिल हो जाएगी। अब यदि यूज़र्स
इंडिया से आ रहे हैं, यूके से आ रहे हैं, जापान से आ रहे हैं, तो इनके केस में इन यूज़र्स की रिक्वेस्ट को फुलफिल होने में
कुछ टाइम लगेगा। तो हम कह सकते हैं कि यहां पे लेटेंसी इनक्रीस हो जाएगी। तो अब हम क्या कर सकते हैं कि हम लेट्स से यह जो
हमारा सर्वर यूएसए में होस्टेड था। Netflix का सर्वर हमारा यूएसए में होस्टेड था। तो अब हम ऐसा कर सकते हैं कि लेट्स से
इंडिया और यूएसए के बीच में हम उस सर्वर को होस्ट कर दें। हम यह भी कर सकते हैं। ठीक है? तो यहां से क्या होगा कि यूएसए के
यूज़र्स की रिक्वेस्ट भी जल्दी फुलफिल हो जाएंगी। इंडिया के यूज़र्स की रिक्वेस्ट भी जल्दी फुलफिल हो जाएंगी। बट व्हाट अबाउट
यूके एंड जापान इनके लिए तो अभी भी रिक्वेस्ट विल हैव टू ट्रैवल अ लॉट। तो यहां पे लेटेंसी अभी भी ज्यादा ही रहेगी।
तो इस केस में हमें एक सॉल्यूशन ढूंढना पड़ता है। तो एक सॉल्यूशन हमारे पास ये होता है कि हम इस सर्वर को सेंट्रलाइज्ड
कर दें और किसी ऐसी लोकेशन पे होस्ट कर दें जहां से सारी ज्योग्राफीज़ पास हो। बट यू कैन इमेजिन कि इट इज़ नॉट प्रैक्टिकली
पॉसिबल। राइट? तो ये होती है हमारी पहली प्रॉब्लम व्हिच इज़ लेटेंसी। अब जो हमारी दूसरी प्रॉब्लम आती है वो आती है एक्सेस
कंट्रोल की। लेट्स से कुछ वीडियोस या कुछ मूवीज वेब सीरीज इंडियन गवर्नमेंट ने बैन करके रखी है। तो यहां पे Netflix की क्या
रिस्पांसिबिलिटी बनती है कि वो उन वीडियोस को जो इंडिया में बैन की गई हैं वो उन वीडियोस को इंडिया में ना दिखाएं। राइट?
इंडिया के यूज़र्स को ना दिखाएं। और एक एक हमारा केस यह भी हो सकता है कि कुछ वीडियोस केवल हमें इंडियन यूज़र्स को ही
दिखानी है। जो यूज़र्स इंडिया से आ रहे हैं केवल हमें केवल उन्हें ही हमें यह वीडियोस दिखानी है। तो इस केस में भी हमारा सर्वर
जो हमारा सर्वर है Netflix का सर्वर वो तो यूएसए में होस्टेड है। एंड इट हैज़ इट इज़ अ रेपो ऑफ़ ऑल द वीडियोस। राइट? यहां पे
हमारी सारे सारी वीडियोस हैं। बेसिकली हमारे S3 स्टोरेज में सारी वीडियोस हैं। तो इस केस में सेपरेट आउट करना डिफरेंट
डिफिकल्ट होता है। और यदि हमें कुछ वीडियोस केवल इंडिया में दिखानी है तो इट इज़ेंट कि हम कुछ ऐसा लोकल स्टोरेज इंडिया
में ही रख दें। एक लोकल स्टोरेज हम इंडिया में ही रख दें ताकि यहां पर इंडिया के यूज़र्स
डायरेक्ट यूएसए के सर्वर को ना एक्सेस करके S3 स्टोरेज को ना एक्सेस करके यहां से ही उनकी रिक्वेस्ट फुलफिल हो जाए। तो
हमें एक ऐसे लोकल स्टोरेज की नीड है इंडिया में जहां हम केवल वोट वीडियोस रखें जो इंडियन यूज़र्स को दिखानी है और यह
इंडियन यूज़र्स की रिक्वेस्ट को जल्दी और ईजीली फुलफिल कर देगा। तो यह आती है हमारी दूसरी प्रॉब्लम वि इज एक्सेस कंट्रोल। तो
इन दोनों प्रॉब्लम्स को सॉल्व करने के लिए यह लेटेंसी की प्रॉब्लम को सॉल्व करने के लिए और एक्सेस कंट्रोल की प्रॉब्लम को
सॉल्व करने के लिए हमें सीडीए हेल्प करता है। तो अब बेसिकली सीडीएन की हेल्प से हम ये स्टैटिक डेटा को अह स्टैटिक डेटा में
हमारा आ जाता है वीडियोस, इमेजज़, ऑडियोज़, ऑडियोज़, HTML पेजेस। तो ऐसे हमारे स्टैटिक
डेटा को स्टोर करने के लिए हम सीडीएन का यूज़ करते हैं। HTML पेजेस। तो हम सिंपली क्या करेंगे? हम सीडीए को डिफरेंट रीजंस
में डिफरेंट ज्योग्राफीज़ में होस्ट कर देंगे। लेट्स से कि हमारे Netflix सिस्टम में ह्यूज ट्रैफिक इज़ कमिंग फ्रॉम इंडिया।
तो इस केस में हम एक सीडीएन को इंडिया रीजन में होस्ट कर देंगे। तो अब इस केस में सारे के सारे इंडियन यूज़र्स की
रिक्वेस्ट को या यूज़र्स जो इंडिया से आ रहे हैं उनकी रिक्वेस्ट को ये सीडीए फुलफिल करेगा। तो अब इस केस में हमें S3
स्टोरेज और Netflix के पास नहीं जाना पड़ेगा। हमारे इंडिया के यूज़र्स की रिक्वेस्ट को यह सीडीए ही फुलफिल कर देगा।
तो यहां पे हमने लेटेंसी की प्रॉब्लम को भी सॉल्व कर लिया। और जो हमारी दूसरी प्रॉब्लम थी एक्सेस कंट्रोल की उसे भी
हमने सॉल्व कर लिया। अब लेट्स से कि कोई भी वीडियोस हमें सिर्फ यदि इंडिया में दिखानी है तो हम क्या करेंगे? हम उन
वीडियोस को इंडिया में जो सीडीएन होस्टेड है वहां रख देंगे और फिर वहां से इंडिया के यूज़र्स उस उन वीडियोस को एक्सेस कर
लेगा। तो यहां पे हमने एक तरीके से लोकल स्टोरेज बना के एक्सेस कंट्रोल की प्रॉब्लम को सॉल्व कर दिया। तो अब वो
वीडियोस जो हमें इंडिया में दिखानी थी वो हम यूके के यूज़र्स को नहीं दिखाएंगे और हम जापान के यूज़र्स को भी नहीं दिखाएंगे। तो
ये प्रॉब्लम्स सॉल्व करता है हमारा सीडीएन। तो सीडीएन इज़ नथिंग बट अ सर्वर जहां पे हम स्टैटिक कंटेंट्स को कैश कर
लेते हैं। सो इट इज़ यूज्ड टू स्टोर स्टैटिक डेटा जहां हम स्टैटिक डेटा को ह्यूज स्टैटिक डेटा को ईज़ली कैश कर सकते
हैं। अब लेट्स से कि हमने जापान में कोई भी सीडीएन होस्ट नहीं किया। तो इस केस में जापान के यूज़र्स की रिक्वेस्ट कैसे फुलफिल
होगी उसे हम देखते हैं। तो लेट्स से कि जापान के यूज़र्स की रिक्वेस्ट आ रही है। एक सीडीएन हमारा अ यूके में होस्टेड है।
एक हमारा यूएसए में है। एक हमारा इंडिया में है। तो अब जापान में यदि कोई सीडीएन होस्टेड नहीं है तो जापान के यूज़र्स की
रिक्वेस्ट जाएगी नियरेस्ट पॉसिबल सीडीएन में और वहां नियरेस्ट पॉसिबल सीडीएन जापान के यूज़र्स की रिक्वेस्ट को फुलफिल करेगा।
अब यदि अह नियरेस्ट पॉसिबल सीडीएन में भी वह वीडियोज़ नहीं है जो जापान के यूज़र्स को चाहिए। तो, इस केस में इन जापान के यूज़र्स
की रिक्वेस्ट फिर जाएगी इस Netflix के सर्वर के पास ही। तो, ऐसे हमारा सीडीए काम करता है। यदि हमें नियरेस्ट पॉसिबल सीडीए
में रिक्वायर्ड रिजल्ट नहीं मिलता, तो फिर हमारी रिक्वेस्ट जाती है ओरिजिनल सर्वर के पास। सो, दिस इज़ अबाउट सीडीएन। अब सीडीएन
में हमारे पास एक होता है मेन सीडीएन व्हिच इज द रेपो ऑफ ऑल द वीडियोस और यहां पे फिर हमारे पास डिफरेंट-डिफरेंट लोकल
सीडियंस होते हैं जो हम डिफरेंट ज्योग्राफीज़ डिफरेंट रीजंस में होस्ट कर देते हैं। तो एक तरीके से हम कह सकते हैं
कि ये जो हमारा सीडीएन है यह बेसिकली कैशिंग कर रहा है। कैशिंग में हम क्या करते हैं कि हम रिक्वायर्ड डेटा या कुछ
रेलेवेंट डेटा को कैश कर लेते हैं और फिर उसे ईजीली सर्व कर देते हैं। यूजर को और यह लेटेंसी को रिड्यूस कर देता है।
सिमिलरली सीडीएन में भी हम पूरा का पूरा डेटा या सारे वीडियोस अ नहीं स्टोर कर सकते। राइट? तो हम कुछ रेलेवेंट वीडियोस
स्टोर करते हैं। और सीडीएन में वो वीडियो स्टोर करने से उस ज्योग्राफी के यूज़र्स उन वीडियोस को फास्ट एक्सेस कर लेते हैं। एंड
दैट रिड्यूसेस द लेटेंसी ऑफ़ आवर सिस्टम। सो, दिस इज़ अबाउट सीडीएन। अब जिन लोकेशन में यह सीडीएन होस्टेड होते हैं, इन्हें
हम बोलते हैं पॉइंट ऑफ प्रेजेंस। लेट्स से कि एक हमारा सीडीएन है, यूएसए में, एक इंडिया में है, एक यूके में है, एक जापान
में है। तो, इन्हें हम बोलते हैं इन सीडीएन की लोकेशन को हम बोलते हैं पॉइंट ऑफ प्रेजेंस।
पॉइंट ऑफ प्रेजेंस। और जो हमारे यहां पे सर्वर्स होते हैं, सीडीएन सर्वर्स होते हैं, उन्हें हम बोलते हैं एज सर्वर। अब
क्वेश्चन यह आता है कि यदि इंडिया के यूज़र्स की रिक्वेस्ट आ रही है तो कैसे हम उन यूज़र्स की रिक्वेस्ट को राउट करेंगे?
तो इसके लिए हमारे जो सीडीएन होते हैं, डिफरेंट-डिफरेंट सीडीएन होते हैं, वो डिफरेंट-डिफरेंट टेक्निक्स का या
डिफरेंट-डिफरेंट टेक्नोलॉजी टेक्नोलॉजीस का यूज़ करते हैं। उनमें से जो हमारी पहली टेक्नोलॉजी है, वह है डीएनएस बेस्ड
राउटिंग। तो इस डीएनएस बेस्ड राउटिंग में क्या होता है कि हर पॉइंट ऑफ प्रेजेंस हर लोकेशन का एक अपना IPपी एड्रेस होता है।
तो यहां पे यूएसए का अपना IPपी एड्रेस है। यहां पे यूएसए का अपना IPपी एड्रेस है। इंडिया के पॉप सर्वर का एज सर्वर का अपना
IPपी एड्रेस है। यूके के सर्वर का अपना IPपी एड्रेस है। तो यहां पे हमारे पास ऐसे हर पॉइंट ऑफ प्रेजेंस के अपने IPपी एड्रेस
होते हैं। अब लेट्स से कि किसी इंडिया के यूजर की रिक्वेस्ट आती है तो वह सबसे पहले इंडिया में जो सीडीएन है जो एज सर्वर है
उसके IPपी एड्रेस को फाइंड आउट करेगा विद द हेल्प ऑफ डीएनएस और फिर यूजर की रिक्वेस्ट उस नियरेस्ट एज सर्वर पे राउट
हो जाएगी। सो दिस इज़ अबाउट डीएनएस बेस्ड राउटिंग। और जो हमारा सेकंड पॉइंट है जो हमारी सेकंड टेक्नोलॉजी है वो है
एनीकास्ट। तो एनीकास्ट में हर पॉइंट ऑफ प्रेजेंस का सेम IPपी एड्रेस होता है। वो सेम IPपी एड्रेस शेयर करते हैं। और जब भी
यह एनीकास्ट नेटवर्क पे रिक्वेस्ट आती है फॉर दैट IPपी एड्रेस यह एनीकास्ट नेटवर्क हमेशा क्लोजेस्ट पॉइंट ऑफ प्रेजेंस का
एड्रेस IPपी एड्रेस शेयर करता है। लेट्स से कि वह रिक्वेस्ट आई इंडिया से या लेट्स से वह रिक्वेस्ट आई यूके से। तो इस केस
में जो नियरेस्ट पॉसिबल पीओपी है नियरेस्ट पॉसिबल पीओपी है उसके IPपी एड्रेस को वह रिटर्न कर देता है और वहां से फिर यूजर की
रिक्वेस्ट फुलफिल होती है। सो यस दिस इज़ ऑल अबाउट सीडीएन एंड वी हैव डिस्कस्ड कि हाउ इट वर्क्स। सो यस दिस इज़ ऑल फॉर दिस
वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन ब-बाय। शो समलाव। थैंक्स।
[संगीत] हे एवरीवन वेलकम बैक। वेलकम टू दिस अल्टीमेट सिस्टम डिज़ाइन प्लेलिस्ट सीरीज़।
और आज के इस वीडियो में हम बात करने वाले हैं कैप थ्योरम के बारे में कि ये कैप थ्योरम होता क्या है? और डिस्ट्रीब्यूटेड
सिस्टम्स में हमें इसकी क्या नीड होती है? तो स्टार्ट करते हैं और समझते हैं कैप थ्योरम को। सो लेट मी जस्ट मिनिमाइज़ माय
स्क्रीन सो दैट यू विल बी एबल टू सी माय स्क्रीन वेल। ओके? तो लास्ट वीडियो में हमने डिस्ट्रीब्यूटेड सिस्टम्स को डिस्कस
किया था। हमने देखा था कि डिस्ट्रीब्यूटेड सिस्टम्स होता क्या है? तो हमने उसमें देखा था कि डिस्ट्रीब्यूटेड सिस्टम्स में
हमारे पास मल्टीपल एप्लीकेशन सर्वर्स होते हैं। मल्टीपल एप्लीकेशन सर्वर्स होते हैं। तो यदि हमारा एक एप्लीकेशन सर्वर फेल भी
हो जाता है तो हम यूजर की रिक्वेस्ट को दूसरे ऐप सर्वर पे राउट कर देते हैं। और हमने देखा था कि यदि हमारे एप्लीकेशन में
हमारे सिस्टम में नंबर ऑफ यूज़र्स बढ़ जाते हैं। तो हम यूज़र्स की रिक्वेस्ट को डिफरेंट-डिफरेंट ऐप सर्वर्स में राउट कर
देते हैं। और ऐसे हम सर्वर पे से लोड को कम कर देते हैं। तो हमने देखा था कि डिस्ट्रीब्यूटेड सिस्टम्स में हमारे पास
मल्टीपल ऐप सर्वर्स होते हैं। दूसरा हमारे पास डेटाबेस को स्केल करने के लिए भी हम मास्टर स्लेव आर्किटेक्चर का यूज़ करते
हैं। मास्टर स्लेव आर्किटेक्चर का यूज़ करते हैं। तो मास्टर स्लेव में हमारे पास एक मास्टर नोड होता है और फिर हमारे पास
ऐसे मल्टीपल स्लेव नोड्स होते हैं। मल्टीपल स्लेव नोड्स होते हैं। अब जो हमारा राइट ऑपरेशन होगा वो हमेशा हम
मास्टर में करते हैं और स्लेव नोड में हम हमारे रीड ऑपरेशन करते हैं। तो स्लेव नोड को हम रीड ऑपरेशन के लिए यूज़ करते हैं। और
ये जो नड्स होते हैं ये आपस में डेटा को रेप्लिकेट करते हैं। तो सारे डेटाबेस में सेम डेटा हमें देखने को मिलता है। तो अब
यह जो कैप थ्योरम होती है बेसिकली कैप थ्योरम में जो कैप होता है कंसिस्टेंसी अवेलेबिलिटी पार्ट पार्टीशन टॉलरेंस तो
इट्स अ डिज़ायरेबल प्रॉपर्टी ऑफ प्रॉपर्टीज ऑफ डिस्ट्रीब्यूटेड सिस्टम्स तो कैप का फुल फॉर्म होता है कैप बेसिकली शॉर्ट
फॉर्म है किसका कंसिस्टेंसी कंसिस्टेंसी अवेलेबिलिटी एंड पार्टीशन टॉलरेंस तो यह होता है हमारे कैप का फुल
फॉर्म अब देख एक-एक करके करके देखते हैं कि कंसिस्टेंसी क्या होता है? अवेलेबिलिटी क्या होता है और पार्टीशन टॉलरेंस क्या
होता है? तो इसे एक एग्जांपल के थ्रू समझते हैं। लेट्स से ये हमारा एक ऐप सर्वर है
और यहां हमारे पास डेटाबेस के दो नोड्स हैं। बी एंड सी। तो यह हमारे डेटाबेस के दो नोड्स हैं। यह हमारा एप्लीकेशन सर्वर
है। यह डीबी नोड्स हैं। लेट्स से कि कोई यूजर आता है। यह यूजर आता है और उसे एक वेरिएबल की वैल्यू लेट्स से a = 10 से a =
5 करना है। a = 5 करना है। राइट? ये हमारी प्रीवियस वैल्यू थी। अब जो न्यू वैल्यू होगी वो e a = 5 होगी। अब यहां पे A की
वैल्यू 10 होगी। यहां पे भी A की वैल्यू इनिशियली 10 होगी। अब लेट्स से कि ये यूजर आता है तो ये एप्लीकेशन सर्वर के पास आएगा
और ये यूजर बोलेगा कि मुझे A की वैल्यू को फाइव करना है। तो ये एप्लीकेशन सर्वर इस चेंज को लेट्स से इस डेटाबेस में
रिफ्लेक्ट कर देता है और अब यहां A की वैल्यू फाइव हो जाती है। तो अब कंसिस्टेंसी में क्या होता है कि ये हमारे
मल्टीपल नोड्स हैं। मल्टीपल डीबी नोड्स हैं। तो ये आपस में डेटा को रेप्लिकेट करते हैं। तो यहां पे यदि हम a की वैल्यू
10 से फाइव करेंगे तो इस चेंज को हम यहां पे रेप्लिककेट कर देंगे। तो अब यहां पे भी a की वैल्यू फाइव हो जाएगी। तो बेसिकली डी
हर डीबी नोड में वैल्यू जो होगी या डेटा जो होगा वो कंसिस्टेंट होगा। सेम होगा। तो अब चाहे हम इस A की वैल्यू को यहां B नोट
से रीड करें या C नोट से रीड करें वैल्यू हमेशा फाइव आएगी। सो दिस इज़ अबाउट कंसिस्टेंसी। अब जो कैप में हमारी दूसरी
प्रॉपर्टी है वो है अवेलेबिलिटी। तो अब अवेलेबिलिटी को भी सेम एग्जांपल से समझते हैं। लेट्स से कि हमारा एक एप्लीकेशन
सर्वर है ए और यहां हमारे पास दो डेटाबेस नोड्स हैं बी एंड सी। तो अब अवेलेबिलिटी क्या बोलता है कि ऑल नोड्स शुड एटलीस्ट
रिस्पॉन्ड। मतलब ये जो हमारे डेटाबेस नोड्स हैं इनको एटलीस्ट रिसॉन्ड तो करना ही चाहिए। भले ये सक्सेस रिसोंड करें या
फेलियर रिसोंड करें दैट डजंट दैट डजंट मैटर बट एटलीस्ट दे शुड रिसोंड। तो हम कह सकते हैं कि यदि हमारे ये दोनों डेटाबेस
नोड्स बी एंड सी नॉन एरर रिस्पांस भेज रहे हैं। नॉन एरर रिस्पांस सेंड कर रहे हैं। तो हम कह सकते हैं कि हमारे दोनों डेटाबेस
नोड्स बोथ आर अवेलेबल। सो दिस इज़ अबाउट अवेलेबिलिटी। अब जो हमारा तीसरा पॉइंट है वह है पार्टीशन टॉलरेंस। तो अब पार्टीशन
टॉलरेंस को भी हम सेम एग्जांपल की हेल्प से समझते हैं। लेट्स से कि हमारा एप्लीकेशन सर्वर है। यहां हमारे पास
डेटाबेस नोड्स हैं बी एंड सी। अब लेट्स से कि किसी वजह से इन दोनों डेटाबेस नोड्स के बीच में ब्रेक आ गया। कम्युनिकेशन ब्रेक
हो गया। तो अब इससे प्रॉब्लम क्या होगी कि ये डेटाबेस नोड्स आपस में डेटा को रेप्लिककेट नहीं कर पाएंगे। राइट? लेट्स
से यहां कोई चेंज हो रहा था। a = 10 था। अब यहां पे यूजर आया एंड ही चेंज्ड द वैल्यू ऑफ़ a और इसने a की वैल्यू को फाइव
कर दिया। अब यहां पे कम्युनिकेशन ब्रेकेज की वजह से ये बी नोड इस चेंज को रेप्लिकेट नहीं कर पाएगा इस C नोड पे। तो ये होता है
इसे कहते हैं हम पार्टीशन कि यहां पे पार्टीशन हो गया। कम्युनिकेशन ब्रेकेज हो गया। और अब इस कम्युनिकेशन ब्रेकेज की वजह
से हम डेटा को रेप्लिककेट नहीं कर पाएंगे। तो भले ही अब दोनों नोट्स के बीच में दोनों डेटाबेस नोट्स के बीच में
कम्युनिकेशन ब्रेक हो गया वो कम्युनिकेट नहीं कर पाएंगे बट स्टिल हमारा सिस्टम फेल नहीं होगा। तो हम कह सकते हैं कि यहां पे
भले ही डेटाबेस नोड्स के बीच में कम्युनिकेशन ब्रेकेज आ जाता है। नेटवर्क ब्रेकेज आ जाता है बट स्टिल हमारा सिस्टम
डाउन नहीं होगा। हमारा नोड डाउन नहीं होगा। तो इसे हम बोलते हैं पार्टीशन टॉलरेंस कि भले ही नेटवर्क का ब्रेक हो
गया, नेटवर्क ब्रेक हो गया, कम्युनिकेशन ब्रेक हो गया डिफरेंट नोड्स के बीच में बट स्टिल दे आर अप एंड रिस्पॉन्डिंग। तो चाहे
हम इस नड बी के पास जाएं या इस नड सी के पास जाएं। दोनों ही रिसॉन्ड करेंगे। दैट मींस बोथ आर अप एंड दे आर नॉट डाउन। तो यह
होता है हमारा पार्टीशन टॉलरेंस। उसकी पार्टीशन होने के बाद भी कम्युनिकेशन ब्रेकेज के बाद भी हमारे दोनों ही नोड्स
अप हैं एंड दे आर रिस्पॉन्डिंग। सो दिस इज़ अबाउट पार्टीशन टॉलरेंस। अब हमने तीनों प्रॉपर्टीज देख ली हमारे डिस्ट्रीब्यूटेड
सिस्टम्स की। हमने कंसिस्टेंसी को भी देख लिया, अवेलेबिलिटी को भी देख लिया, पार्टीशन टॉलरेंस को भी देख लिया। तो, अब
समझते हैं कि कैप थ्योरम क्या कहता है? तो कैप थ्योरम यह बोलता है कि वी जस्ट कैन नॉट हैव ऑल थ्री टुगेदर। मतलब कि एक
डिस्ट्रीब्यूटेड सिस्टम में हम तीनों एक साथ नहीं रख सकते। दैट मींस कि या तो हम सीए रख सकते हैं, कंसिस्टेंट कंसिस्टेंसी
अवेलेबिलिटी रख सकते हैं। कंसिस्टेंसी पार्टीशन टॉलरेंस रख सकते हैं। अवेलेबिलिटी पार्टीशन टॉलरेंस रख सकते
हैं। वी जस्ट कैन नॉट हैव ऑल थ्री टुगेदर। मतलब कि यह वाला जो हमारा पार्ट है, इसे हम यूज़ नहीं कर सकते डिस्ट्रीब्यूटेड
सिस्टम्स में। तो अब समझते हैं सबसे पहले कि क्यों हम इन तीनों प्रॉपर्टीज को सीएपी को क्यों तीनों एक साथ हम यूज़ नहीं कर
सकते। सो इसे भी एक एग्जांपल के थ्रू समझते हैं। सेम एग्जांपल लेट्स से कि ये हमारा एप्लीकेशन सर्वर है और यहां पे
हमारे पास डेटाबेस नोड्स हैं B एंड C। तो हम सबसे पहले ट्राई करते हैं तीनों को एक साथ रखने का। तो सबसे पहले हम कंसिस्टेंसी
को मैनेज करते हैं। तो लेट्स से कि हमारे पास एक वेरिएबल है a = 10 और इसकी वैल्यू हमने चेंज करनी है और हम इसकी वैल्यू को a
= 5 करेंगे। तो इनिशियली दोनों डीबी नोड्स में a की वैल्यू 10 होगी। राइट? a की वैल्यू 10 होगी। अब यहां पे कंसिस्टेंसी
क्या बोलता है कि दोनों डीबी नोड्स डेटा रेप्लिकेट करेंगे और दोनों डीबी नोड्स में डेटा सेम होगा। का डेटा कंसिस्टेंट होगा।
तो अब लेट्स से यह एप्लीकेशन सर्वर आता है और इस a की वैल्यू को 10 से फाइव कर देता है। तो अब यहां पे हमारे A की वैल्यू हो
गई फाइव। अब ये डेटाबेस नोड क्या करेगा? इस डेटा को रेप्लिककेट कर देगा। इस डेटा को रेप्लिककेट कर देगा इस C नोड पे। तो
यहां पे भी A की वैल्यू हो गई फाइव। ठीक है? तो हमने कंसिस्टेंसी को अचीव कर लिया। अब देखते हैं हम अवेलेबिलिटी। तो अब
अवेलेबिलिटी क्या बोलता है कि दोनों ही नोड्स बोथ नोड्स बोथ डीबी नोड्स शुड एटलीस्ट रिसॉन्ड चाहे वो सक्सेस रिसॉनड
करें या फेलियर रिसॉन्ड करें बस उनका रिस्पांस एरर फ्री होना चाहिए एंड दे शुड एटलीस्ट रिसॉन्ड। तो ये भी यहां पे लेट्स
से हमारा न बी भी रिसोंड कर रहा है और न सी भी रिस्पॉन्ड कर रहा है। तो ठीक है हमने यहां पे अवेलेबिलिटी को भी अचीव कर
लिया। अवेलेबिलिटी को भी अचीव कर लिया। अब देखते हैं हम पार्टीशन टॉलरेंस कि हम पार्टीशन टॉलरेंस को अचीव कर सकते हैं या
नहीं। तो अब पार्टीशन टॉलरेंस क्या बोलता है कि यदि इनके बीच में कम्युनिकेशन ब्रेकेज भी हो जाता है तब भी दोनों दोनों
ही नोड्स अप रहने चाहिए और हमारा सिस्टम फेल नहीं होना चाहिए। मतलब हम सिस्टम को डाउन नहीं करेंगे। हम सिस्टम को डाउन नहीं
करेंगे। सिस्टम हमारा अप रहेगा। दोनों नोड्स हमारे अप रहेंगे और हम सिस्टम को यहां पे डाउन नहीं करेंगे। हमारा सिस्टम
फेल नहीं होना चाहिए। तो ये होता है हमारे पार्टीशन टॉलरेंस में। तो अब यदि हम पार्टीशन टॉलरेंस को इंक्लूड करते हैं।
लेट्स से हमने पार्टीशन टॉलरेंस को इंक्लूड किया तो क्या अब हम कंसिस्टेंसी को अचीव कर पाएंगे? पार्टीशन टॉलरेंस में
बेसिकली यहां पे क्या हुआ कि हम यहां पे हमारा पार्टीशन हो गया। कम्युनिकेशन ब्रेकेज हो गया बी और सी के बीच में। तो
यदि अब हम पार्टीशन टॉलरेंस को इंक्लूड करते हैं तो अब हमारी कंसिस्टेंसी चली जाएगी। कैसे वह हम देखते हैं। लेट्स से कि
यहां पे पार्टीशन हुआ। अब यहां पे हमें सेम A की वैल्यू को 10 से फाइव करना था। तो यहां पे हमने इस B नोड में वैल्यू को
चेंज कर दिया। पर अब यहां पे कम्युनिकेशन ब्रेकेज है। नेटवर्क ब्रेकेज है। तो अब ये B नोड इस चेंज को इस C नोड पे रिफ्लेक्ट
नहीं कर पाएगा। तो यहां पे A की वैल्यू 10 ही रहेगी। तो यहां पे A की वैल्यू है फाइव। यहां पे है A की वैल्यू 10। दैट
मींस अब यहां हमारा डाटा इनकंसिस्टेंट हो गया। तो यदि हम पार्टीशन टॉलरेंस को इंक्लूड करते हैं तो हमें यदि हम पार्टीशन
टॉलरेंस को इंक्लूड करते हैं तो हमें कंसिस्टेंसी को ड्रॉप करना पड़ेगा। राइट? तो हमने देखा कि जो हम कैप को अचीव कर रहे
थे तो हमने C और A को अचीव कर लिया था। लेकिन जैसे ही हम P को अचीव करने गए हमें कंसिस्टेंसी को ड्रॉप करना पड़ा। दैट मींस
यहां पर हम अवेलेबिलिटी और पार्टीशन टॉलरेंस को अचीव कर सकते हैं एक साथ। तो यस एंड पी इज पॉसिबल। तो एक बार देख लेते
हैं कि कैसे ये पॉसिबल है। तो ये हमारा था एप्लीकेशन सर्वर। ये था हमारा डेटाबेस नोड बी एंड सी। और यहां पे इनिशियली A की
वैल्यू थी 10। सिमिलरली यहां पे भी A की वैल्यू थी 10। अब हमारा ये एप्लीकेशन सर्वर आता है और यहां पे A की वैल्यू को
फाइव कर देता है। ये राइट ऑपरेशन करता है। अब यहां पे A की वैल्यू हो जाती है फाइव। यहां पे आ गया था हमारा हमारा कम्युनिकेशन
ब्रेकेज। इसकी वजह से ये B इस C पे डेटा को रेप्लिकेट नहीं कर पाया। तो यहां पे A की वैल्यू स्टिल 10 ही है और यहां पे A की
वैल्यू है फाइव। तो डाटा इनकंसिस्टेंट जरूर है। लेकिन स्टिल यह A B को भी क्वेरी कर पा रहा है। यह A C को भी क्वेरी कर पा
रहा है। और वह क्वेरी कर रहा है। तो B इज़ रिस्पॉन्डिंग। C इज़ आल्सो रिस्पॉन्डिंग। दैट मींस दे बोथ आर अवेलेबल एंड दे बोथ आर
अप। तो हम कह सकते हैं कि यहां हमारा सिस्टम हमारे दोनों नोड्स अवेलेबल भी हैं और हमारा सिस्टम पार्टीशन टॉलरेंट भी है।
तो ठीक है। हमने AP को अचीव कर लिया। अब लेट्स से कि हम हमारे सिस्टम में कंसिस्टेंसी को ड्रॉप नहीं कर सकते। लेट्स
से कि हमारा कोई बुकिंग बुकिंग से रिलेटेड एप्लीकेशन है जहां हम बुकिंग परफॉर्म कराते हैं तो वहां हम कंसिस्टेंसी को
ड्रॉप नहीं कर सकते। तो इस केस में हमें कंसिस्टेंसी को ड्रॉप नहीं करना। तो अब इसे एक एग्जांपल के थ्रू समझते हैं कि यदि
हम कंसिस्टेंसी को ड्रॉप नहीं करेंगे तो क्या होगा? तो लेट्स से कि यहां हमारा एक एप्लीकेशन सर्वर है। ये हमारे डीबी नोट्स
हैं। डीबी नड्स हैं। और इन डीबी नोट्स के बीच में कम्युनिकेशन ब्रेकेज है। बेसिकली यहां इनका कम्युनिकेशन ब्रेक हो गया। तो
अब ये एक दूसरे को डेटा रेप्लिककेट नहीं कर पाएंगे। अब लेट्स से ये एप्लीकेशन सर्वर आता है और इस a की वैल्यू को 10 से
फाइव कर देता है। तो यहां पे वैल्यू हो जाएगी A की। यहां पे वैल्यू हो जाएगी 10 से फाइव। यहां पर वैल्यू थी स्टिल 10। तो
अब इस केस में हमें क्या करना है? हम कंसिस्टेंसी को ड्रॉप नहीं कर सकते। तो यदि हम कंसिस्टेंसी को ड्रॉप नहीं करेंगे
तो हमें अवेलेबिलिटी को ड्रॉप करना पड़ेगा। कैसे? कि यदि हम इस नोड को ड्रॉप कर दें। इस नोड को डाउन कर दें। तो अब
हमारे पास केवल एक सिंगल नोड अवेलेबल है। जहां हमने यह राइट ऑपरेशन परफॉर्म किया। A की वैल्यू को 10 से फाइव किया। तो यहां पे
हम लेटेस्ट राइट या रीसेंट राइट प्रोवाइड कर रहे हैं। और अब क्योंकि हमारे पास एक सिंगल नोड है इसलिए हमारा यहां डेटा
कंसिस्टेंट होगा। तो यदि हम कंसिस्टेंसी को अचीव करते हैं या कंसिस्टेंसी को ड्रॉप नहीं करते तो हमें अवेलेबिलिटी को ड्रॉप
करना पड़ता है। तो यस यहां हमारा सीपी भी पॉसिबल है। तो कंसिस्टेंसी और पार्टीशन टॉलरेंस भी यहां पॉसिबल है। तो यहां पे
हमने कंसिस्टेंसी और सिस्टम को अप रखने के लिए अवेलेबिलिटी को ड्रॉप कर दिया। मतलब यहां पे हमारे सारे नोड्स अप नहीं रहेंगे।
केवल हमारा एक नोड अप रहेगा और बाकी सारे नोड्स हम डाउन कर देंगे। तो यहां पे हमने कंसिस्टेंसी और पार्टीशन टॉलरेंस को अचीव
करने के लिए सिस्टम को अप रखने के लिए हमने अवेलेबिलिटी को ड्रॉप कर दिया। तो हमने देखा कि यस सीp इज़ पॉसिबल। हमने देखा
एपी इज़ आल्सो पॉसिबल। अब जो हमारा लास्ट रह गया है वो है सीए व्हिच इज़ कंसिस्टेंसी एंड अवेलेबिलिटी। तो इसे भी सेम एग्जांपल
से समझते हैं। लेट्स से यह है हमारा एप्लीकेशन सर्वर। यह हैं हमारे डीबी नोड्स B एंड C। तो यहां पे हमें कंसिस्टेंसी भी
चाहिए और अवेलेबिलिटी भी चाहिए। मतलब दोनों नोड्स दोनों डीबी नोड्स में सेम वैल्यू हो। लेट्स से A की वैल्यू यहां भी
फाइव हो, यहां भी फाइव हो। तो हमें कंसिस्टेंसी भी अचीव करना है और यहां पे हमें अवेलेबिलिटी भी अचीव करना है कि
दोनों नोड्स हमारे अवेलेबल भी हो। तो यदि अब यहां पर हमारा पार्टीशन हो जाता है। दोनों नोड्स के बीच में पार्टीशन हो जाता
है। तो अब यह दोनों नड्स डाटा रेप्लिकेट नहीं कर पाएंगे। तो इस केस में हम कंसिस्टेंसी लूज़ कर देंगे। राइट? तो अब
यहां पे हमें पार्टीशन टॉलरेंस को ड्रॉप करना पड़ेगा। पार्टीशन टॉलरेंस को ड्रॉप करने का मतलब क्या है? कि यहां पे हमें
सिस्टम को सिस्टम को डाउन करना पड़ेगा। क्योंकि जब हम सिस्टम को डाउन करेंगे तो यहां पे फिर हम क्वेरी नहीं कर पाएंगे। ये
हमारा A B को क्वेरी नहीं कर पाएगा और C को क्वेरी नहीं कर पाएगा। तो यदि हम हमारे सिस्टम को डाउन कर देते हैं हमारा सिस्टम
अप नहीं रहेगा तो ये A कोई भी राइट ऑपरेशन परफॉर्म नहीं कर पाएगा। राइट? तो अब यहां पे जब ये राइट ऑपरेशन परफॉर्म नहीं कर
पाएगा तो ही हम कंसिस्टेंसी को मैनेज रख सकते हैं। क्योंकि अब यहां पे A की वैल्यू फाइव ही रहेगी। यहां पे भी A की वैल्यू
फाइव ही रहेगी। तो यहां हम कंसिस्टेंसी को अचीव कर सकते हैं। तो यह देखा था हमने CA तो बेसिकली सीए को अचीव करने के लिए हमें
हमारे सिस्टम को कुछ टाइम के लिए स्टॉप करना पड़ रहा है। तो कम्युनिकेशन ब्रेकेज पे सिस्टम को रोक देना इज़ इज़ नॉट अ गुड
थिंग। तो यहां पे हम पार्टीशन को कभी भी पार्टीशन को हम कभी भी ड्रॉप नहीं करेंगे। पार्टीशन टॉलरेंस को हम कभी भी ड्रॉप नहीं
करेंगे। सो इन रियल वर्ल्ड नेवर ट्रेड ऑफ ऑन पार्टीशन टॉलरेंस। तो हम पार्टीशन टॉलरेंस को कभी ड्रॉप नहीं करेंगे। दैट
मींस कि या तो हम AP को AP को अचीव कर सकते हैं या तो हम हमारे सिस्टम में AP को रख सकते हैं या CP को रख सकते हैं। CA का
मतलब हमारे पास ये हो गया कि हमारा जो सिस्टम है अब वो डिस्ट्रीब्यूटेड मोड में रन नहीं हो रहा है। और ये CA तभी पॉसिबल
है जब हमारे पास एक सिंगल नोड हो। सिंगल डीबी नोड हो। तो ये हमारा CA तभी पॉसिबल है। अब यहां पे हमारे पास सिंगल नोड होगा।
तो हम यहां पे कंसिस्टेंसी को भी अचीव कर लेंगे और यहां पे हम अवेलेबिलिटी को भी अचीव कर लेंगे। तो सीए का मतलब है कि हम
हमारे सिस्टम को हमारा सिस्टम डिस्ट्रीब्यूटेड मोड में रन नहीं हो रहा है। मतलब हमारे पास एक सिंगल डीबी
इंस्टेंस है। तो यहां पे हम केवल एक सिंगल नोड को अलाइव रखेंगे। सिंगल नोड को अप रखेंगे और बाकी के सारे नोड हमारे डाउन
रहेंगे। तभी हम सीए को अचीव कर सकते हैं। सो दिस इज़ अबाउट कैप थ्योरम। तो कैप थ्योरम हमें बताता है कि या तो हम हमारी
डिस्ट्रीब्यूटेड सिस्टम में CP हो सकता है, AP हो सकता है या CA हो सकता है। तीनों एक साथ नहीं हो सकते। सो दिस इज़
अबाउट कैप थ्योरम। अब हम देखते हैं कि कौन सी प्रॉपर्टीज हमें कब यूज़ करना है। तो इसे समझते हैं हम Bookmy शो सिस्टम के
एग्जांपल से। हालांकि मैंने Bookmy शो सिस्टम पे ऑलरेडी वीडियो बना रखी है। सो इफ यू वांट टू नो कि Bookmy शो सिस्टम
कैसे काम करता है? कैसे हम ककरेंट बुकिंग्स को मैनेज करते हैं। सो इफ यू वांट टू लर्न प्लीज गो एंड वॉच द वॉच दैट
वीडियो। तो अब हम आ जाते हैं हमारे कैप थ्योरम पे कि हम कौन सी प्रॉपर्टीज को कहां पे यूज़ करेंगे। तो ये हमारे बुक माय
शो सिस्टम की कुछ डिफरेंट सर्विज हैं। बुक बुकिंग सर्विस है, सर्च सर्विस है, रिकमेंडेशन सर्विस है। ये बुकिंग सर्विस
रिस्पांसिबल है बुकिंग को मैनेज करने के लिए। ककरेंट बुकिंग्स को मैनेज करने के लिए। ये सर्च सर्विस के थ्रू हम डिफरेंट
थिएटर्स और डिफरेंट मूवीज को सर्च कर सकते हैं। और ये रिकमेंडेशन सर्विस हमें होम पेज पे मूवीस रिकमेंड करती है। तो अब जो
हमारी बुकिंग सर्विस होगी यहां हमें ककरेंट बुकिंग्स को मैनेज करना है। राइट? तो यहां पे हम हम कंसिस्टेंसी को ड्रॉप
नहीं कर सकते। यहां हम कंसिस्टेंसी को ड्रॉप नहीं कर सकते। तो यस यहां पे हमें सीपी लेना पड़ेगा। तो यहां हम बुकिंग
सर्विस के लिए कंसिस्टेंसी को यूज करेंगे। सर्च सर्विस और रिकमेंडेशन सर्विस हमारी यूजर फेसिंग सर्विज होती हैं। राइट? यूजर
विल इंटरेक्ट विद दोज़ विद दीज़ सर्विसेस फर्स्ट। तो इन सर्विसेस को हम हाईली अवेलेबल बनाएंगे। तो यहां हम एपी का यूज़
करेंगे। तो ऐसे करके हम इन प्रॉपर्टीज़ को यूज़ करेंगे। हम कैप को सीएपी को एक साथ यूज़ नहीं कर सकते। इसलिए कुछ सर्विज को हम
कंसिस्टेंट बना देंगे। उसमें हम कंसिस्टेंसी रखेंगे और कुछ सर्विसेज में हम अवेलेबिलिटी रखेंगे। सो यस दिस इज़ हाउ
वी डिस्ट्रीब्यूट डिज़ायरेबल प्रॉपर्टीज़ ऑफ़ डिस्ट्रीब्यूटेड सिस्टम्स टू डिफरेंट-डिफरेंट सर्विसेस। एंड आई गेस दिस
इज़ ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन ब बाय। शो सम लव। थैंक्स।
[संगीत] हे एवरीवन वेलकम बैक वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज और
आज के इस वीडियो में हम बात करने वाले हैं रेट लिमिटिंग के बारे में कि ये रेट लिमिटिंग होता क्या है? कैसे हम इसे
इंप्लीमेंट कर सकते हैं? और हम देखेंगे कुछ पॉपुलर रेट लिमिटिंग स्ट्रेटजीज़ को। सो स्टार्ट करते हैं एंड लेट मी जस्ट
मिनिमाइज़ माय स्क्रीन सो दैट यू विल बी एबल टू सी द एंटायर स्क्रीन वेल। ओके। सो सबसे पहले समझते हैं रेट लिमिटिंग को। तो
लेट्स से कि आपने कोई एक एप्लीकेशन बनाया तो उस एप्लीकेशन में आपके पास मल्टीपल यूज़र्स होंगे। राइट? यहां पे आपके पास
मल्टीपल यूज़र्स होंगे। यूज़र्स विल बी योर क्लाइंट। सो, दे विल मेक रिक्वेस्ट। और यह रिक्वेस्ट जाएगी आपके सर्वर के पास। अब यह
सर्वर क्या करेगा? यह उन रिक्वेस्ट के लिए रिस्पांस सेंड करेगा। तो सर्वर रिस्पांस सेंड करेगा और यह बन जाता है हमारा एक
रिक्वेस्ट रिस्पांस साइकिल। अब कई बार क्या होता है कि हमारे सिस्टम में कुछ यूज़र्स ऐसे आ जाते हैं जो कंटीन्यूअसली
स्पैम रिक्वेस्ट सेंड करते हैं। लेट्स से कि एक हमारा कोई यूजर ए है। तो ये हमारे एप्लीकेशन में हमारे सर्वर के पास
कंटीन्यूअस स्पैम रिक्वेस्ट सेंड करेगा। लेट्स से हो गई फर्स्ट रिक्वेस्ट, सेकंड रिक्वेस्ट, थर्ड रिक्वेस्ट। तो ऐसे वो
कंटीन्यूअसली हमारे सर्वर के पास स्पैम रिक्वेस्ट सेंड करता है। अब उससे क्या होता है कि सर्वर के पास कंटीन्यूअस स्पैम
रिक्वेस्ट आने से हमारे रिसोर्सेज एक्सप्लइट होने लगते हैं। बेसिकली वो यूज़र्स हमारे सिस्टम के रिसोर्सेज को
एक्सप्लइट करता है। लेट्स से कि यह मेरा YouTube चैनल है। अब इसमें मैं कंटीन्यूअसली यदि रिफ्रेश बटन हिट करता
हूं तो ये रिक्वेस्ट कहां जाएगी? YouTube के सर्वर के पास। राइट? तो अब यहां पे मैं कंटीन्यूअसली रिक्वेस्ट सेंड करके रिफ्रेश
बटन हिट करके YouTube के रिसोर्सेज को एक्सप्लइट कर रहा हूं। तो अब इन इस केस में सर्वर के पास बहुत सारी रिक्वेस्ट हो
जाती हैं और हमारा सर्वर ओवरवेल्म हो जाता है। जिससे क्या होता है कि सर्वर के रिसोर्सेज जो होते हैं वो बहुत ज्यादा यूज़
होने लगते हैं। अब लेट्स से कि ये यूजर ए जो है यह कंटीन्यूअसली स्पैम रिक्वेस्ट कर रहा था। अब लेट्स से कि हमारे सिस्टम में
कुछ जेन्युइन यूज़र्स आ जाते हैं। लेट्स से हमारे एप्लीकेशन में हमारे सिस्टम में ऐसे ये तीन जेन्युइन यूज़र्स आ गए। तो अब इस
केस में क्या होता है? यदि ये यूजर ए हमारे रिसोर्सेज को एक्सप्लइट करता है। ये यूजर ए हमारे रिसोर्सेज को एक्सप्लइट करता
है तो इस केस में क्या होता है कि हमारे जो जेन्युइन यूज़र्स होते हैं उनकी रिक्वेस्ट भी फुलफिल नहीं हो पाती। उनकी
रिक्वेस्ट को भी वेट करना पड़ता है। क्योंकि सारे रिसोर्सेज इस यूजर ए ने होल्ड कर लिए। तो इस केस में हमारे
जेन्युइन यूज़र्स को जेन्युइन यूज़र्स की रिक्वेस्ट को थोड़ा सा वेट करना पड़ता है। उनके रिस्पांस में डिले हो जाता है। और
यहां पे हमारा जो सर्वर है वो स्लो एक्ट करने लगता है। हमारा सर्वर स्लो एक्ट करने लगता है। तो इन इन स्पैम रिक्वेस्ट से
बचने के लिए हमें एक रेट लिमिटर की नीड होती है। तो हम क्या करते हैं? हम एक रेट लिमिटर कॉन्फ़िगर करते हैं और यहां सर्वर
के आगे हम एक रेट लिमिटर लगा देते हैं। अब रेट लिमिटर लगाने से हम लिमिट कर सकते हैं कि किस रेट पर एक यूजर आपके सर्वर को
एक्सेस कर सकता है। लेट्स से कि हम डिसाइड करते हैं कि 1 मिनट में 1 मिनट में एक यूजर हमारे सर्वर को केवल तीन ही
रिक्वेस्ट सेंड कर सकता है। सो थ्री रिक्वेस्ट पर यूजर। तो हमने क्या डिसाइड किया कि 1 मिनट में एक यूजर हमारे सर्वर
को केवल तीन ही रिक्वेस्ट सेंड कर सकता है। तीन ही रिक्वेस्ट सेंड कर सकता है। तो अब लेट्स से यह जो यूजर ए था जो हमारे
सर्वर के या सिस्टम के रिसोर्सेज को एक्सप्लइट कर रहा था। अब उसकी तीन रिक्वेस्ट जाएंगी इस सर्वर के पास इस
सर्वर के पास। लेकिन जैसे ही यह यूजर ए अपनी फोर्थ रिक्वेस्ट भेजेगा। फोर्थ रिक्वेस्ट भेजेगा इस सर्वर के पास। तो
यहां पे ये रेट लिमिटर इसकी रिक्वेस्ट को रिजेक्ट कर देगा क्योंकि ये इसकी फोर्थ रिक्वेस्ट थी। ये यूजर ए की फोर्थ
रिक्वेस्ट थी। तो यह इस यूजर ए की फोर्थ रिक्वेस्ट को रिजेक्ट कर देगा। या तो वो उसे बोलेगा कि कुछ टाइम के लिए वेट करो।
जब यह 1 मिनट का टाइम इंटरवल खत्म हो जाएगा। फिर यह यूजर ए की रिक्वेस्ट को प्रोसेस करेगा। तो यहां पे हमने रेट
लिमिटर लगा के स्पैम रिक्वेस्ट को रिजेक्ट कर दिया। या हमने उन रिक्वेस्ट को कुछ टाइम के लिए डिले कर दिया। तो अब इससे
क्या होगा कि जो हमारे जेन्युइन यूज़र्स होंगे वह भी हमारे सिस्टम के रिसोर्सेज को या सर्वर के रिसोर्सेज को सही से यूज़ कर
पाएंगे। तो ये काम होता है हमारे रेट लिमिटर का। तो बेसिकली हमने क्या किया? हमने एक पर्टिकुलर IPपी एड्रेस से आने
वाली रिक्वेस्ट को रेट लिमिट कर दिया। हमने क्या बोला कि एक IPपी एड्रेस से हम केवल तीन ही रिक्वेस्ट को प्रोसेस करेंगे।
एक IP एड्रेस से हम 1 मिनट में केवल तीन ही रिक्वेस्ट को प्रोसेस करेंगे। तो यह देखा हमने रेट लिमिटिंग को। और अब यदि कोई
यूजर स्पैम रिक्वेस्ट करता है या कंटीन्यूअसली बहुत सारी रिक्वेस्ट करता है। लेट्स से ये तीन से ज्यादा रिक्वेस्ट
कर देता है। तो अब इस केस में हम यूजर को फोर टू न एरर रिटर्न कर सकते हैं। फोर टू न रिस्पांस रिटर्न कर सकते हैं। इसका मतलब
होता है टू मेनी रिक्वेस्ट। टू मेनी रिक्वेस्ट। तो ये हम उसे रिस्पांस रिटर्न कर सकते हैं। अब रेट लिमिटिंग को
इंप्लीमेंट करने की कुछ स्ट्रेटजीस को देखते हैं। तो उसमें सबसे पहली स्ट्रेटजी जो हमारे पास है वो है टोकन बकेट
एल्गोरिदम। अब टोकन बकेट एल्गोरिदम में एक हमारे पास होती है बकेट। इस बकेट में हम बेसिकली टोकंस को स्टोर करते हैं। अब
टोकंस क्या है? इसे हम आगे देखेंगे। तो इस टोकन बकेट एल्गोरिदम में हम बकेट में टोकंस को रखते हैं। अब ऑब्वियस सी बात है
कि इस बकेट को कोई रिफिल कर रहा होगा। राइट? तो इस बकेट को जो रिफिल करता है उसे हम बोलते हैं रिफिलर। रिफिलर सर्विस। तो
ये कंटीन्यूअसली एक फिक्स्ड रेट पे फिक्स्ड रेट पे हमारी इस बकेट को रिफिल करता है। लेट्स से कि ये जो हमारा रिफिलर
है रिफिलर सर्विस है यह थ्री टोकंस थ्री टोकंस पर सेकंड इस रेट पे इस फिक्स्ड रेट पे हमारे बकेट को फुल कर रहा है।
रिफिल कर रहा है। और यह जो हमारी बकेट है इसकी कैपेसिटी है लेट्स से एक बार में फाइव टोकंस को स्टोर करना। फाइव टोकंस को
स्टोर करना है। अब लेट्स से कि पहले सेकंड में हमारे पास तीन यूज़र्स आते हैं। तो फर्स्ट सेकंड में
क्या होगा कि हमारे बकेट में तीन टोकंस आ चुके होंगे। राइट? तो यहां पे हमारे बकेट में तीन टोकंस आ गए। ये रिफिलर ने हमारे
बकेट में तीन टोकंस को डाल दिया। अब लेट्स से कि फर्स्ट सेकंड में फर्स्ट सेकंड में हमारे पास तीन यूज़र्स आते हैं। तीन यूज़र्स
आते हैं। यूजर ए यूजर बी एंड यूजर सी। तो, ऐसे हमारे पास तीन यूज़र्स आते हैं। तो, तीनों एक-एक टोकन को लेंगे। यह तीनों
यूज़र्स लेट्स से यह हो गया हमारा फर्स्ट यूजर। तो, यह इस टोकन को लेगा। और अब यह इस टोकन को लेके इस सर्वर के पास जाएगा।
तो, अब यह जब सर्वर देखेगा कि ठीक है, क्लाइंट के पास या यूजर के पास यह टोकन था, तभी वह उसकी रिक्वेस्ट को प्रोसेस
करेगा। यदि यूजर के पास टोकन नहीं है तो सर्वर उस यूजर की रिक्वेस्ट को फुलफिल नहीं करेगा। उस यूजर की रिक्वेस्ट को
प्रोसेस नहीं करेगा। तो यह टोकन ले लिया हमारे यूजर ए ने। लेट्स से यह था हमारा यूजर ए। यहां पे हम बनाते हैं यूजर ए। तो
यह यूजर ए ने एक टोकन ले लिया। अब यहां पे एक हमारे पास एक और यूजर आता है यूजर बी। और यह यूजर बी ने एक और टोकन ले लिया। यह
यूजर बी आया। और इस यूजर बी ने एक और टोकन लिया। और यह टोकन लेके गया सर्वर के पास। तो यहां पर यह सर्वर के पास जाएगा। सर्वर
देखेगा कि ठीक है यहां यूजर बी के पास भी टोकन है। तो वो इसकी रिक्वेस्ट को भी प्रोसेस कर देगा। अब लेट्स से कि हमारा एक
और यूजर आता है। लेट्स से यह हमारा एक और यूजर आता है यूजर सी। तो अब यह यूजर जाएगा और यह टोकन लेगा बकेट में से टोकन उठाएगा
और फिर यह टोकन लेके जाएगा सर्वर के पास। अब यहां भी सर्वर देखेगा कि ठीक है यूजर सी के पास भी टोकन है तो वह इसकी
रिक्वेस्ट को भी प्रोसेस कर देगा। अब लेट्स से कि एक और यूजर आता है। यहां पे एक और यूजर आता है यूजर डी। तो यह यूजर डी
क्या करेगा? यह यूजर डी सबसे पहले जाएगा बकेट में और बकेट में वो देखेगा कि यहां पे तो एक भी टोकन नहीं है। राइट? तो अब इस
केस में यह हमारा जो यूजर डी होगा, यह जो हमारा यूजर डी होगा, यह सर्वर को रिक्वेस्ट नहीं कर पाएगा। तो यह जो हमारा
डी होगा यह सर्वर को या सर्वर के रिसोर्सेज को एक्सेस नहीं कर पाएगा क्योंकि यहां पे अब हमारे बकेट में टोकन
खत्म हो गए थे। अब नेक्स्ट सेकंड पे यह रिफिलर क्या करेगा? फिर से हमारे इस बकेट में तीन टोकंस को रिफिल कर देगा। तो यह
हमारे बकेट में ऐसे तीन टोकंस को फिर से रिफिल कर देगा। तो अब नेक्स्ट सेकंड में जो भी यूज़र्स आएंगे वो इन तीनों टोकंस को
यूज़ करेंगे। तीनों टोकंस को लेंगे और टोकंस को लेके सर्वर के पास जाएंगे। सर्वर देखेगा कि इनके पास टोकंस हैं तो वह इनकी
रिक्वेस्ट को फुलफिल कर देगा। अब लेट्स से कि एक ही सेकंड में एक ही सेकंड में कोई यूजर आया। लेट्स से यह जो हमारा यूजर ए था
यह आया और इसने एक साथ तीन टोकंस ले लिए। बेसिकली तीन रिक्वेस्ट कर दी। तो फर्स्ट रिक्वेस्ट के लिए उसने फर्स्ट टोकन को
लिया और सर्वर के पास गया। सेकंड रिक्वेस्ट के लिए उसने सेकंड टोकन को लिया। थर्ड रिक्वेस्ट के लिए उसने थर्ड
टोकन को लिया। तो अब इस केस में यह जो हमारा बकेट है, यह वापस से एंप्टी हो जाएगा। और अब इस केस में यदि कोई नेक्स्ट
यूजर आता है, तो उसकी रिक्वेस्ट फुलफिल नहीं हो पाएगी। उसकी रिक्वेस्ट को सर्वर प्रोसेस नहीं करेगा। क्योंकि अब यहां पे
हमारा बकेट वापस से एंप्टी हो गया। अब लेट्स से कि यदि अगले 2 सेकंड तक कोई भी यूजर नहीं आता है अपनी रिक्वेस्ट लेके। तो
अब इस केस में ये रिफिलर फर्स्ट सेकंड में क्या करेगा? इस बकेट को वापस से रिफिल करेगा। फर्स्ट सेकंड में यह बकेट में तीन
टोकंस को डालेगा। तीन टोकंस को डालेगा। तीन टोकंस को रिफिल करेगा। और उसके बाद नेक्स्ट सेकंड में यह वापस से तीन और तीन
और टोकंस को रिफिल करने का ट्राई करेगा। लेकिन अब जो यहां हमारी बकेट की कैपेसिटी थी वह थी फाइव टोकंस को प्रोसेस करना। नॉट
सेकंड फाइव टोकंस को प्रोसेस करना। तो अब यहां पर यह रिफिलर नेक्स्ट सेकंड में तीन और टोकन को यहां पर डालने का ट्राई करेगा।
पर यह हो जाएगा टोटल नंबर 3 + 3 6 तो यहां पे यह रिफिलर अगले सेकंड में केवल दो और टोकन को ही पुश कर पाएगा। दो और टोकन को
ही इस बकेट में डाल पाएगा। क्योंकि यहां पे हमारे टोकन बकेट की कैपेसिटी थी फाइव टोकंस को प्रोसेस करना। तो अब देखते हैं
हम इस टोकन बकेट एल्गोरिदम के कुछ ड्रॉबैक्स को। तो जो हमारा पहला ड्रॉबैक है वो ये है कि यदि हमारे बकेट एंप्टी है
लेट्स से ये हमारा बकेट है और यह बकेट एंप्टी है और जो हमारे रिफिलर का रिफिल करने का रेट है वो है लेट्स से 5 सेकंड
में 5 सेकंड में 20 टोकंस को रिफिल करना। 5 सेकंड्स में वह 20 टोकंस को रिफिल करता है। तो अब इस केस में लेट्स से कि यहां पर
उसने 20 टोकंस को रिफिल किया। 20 टोकंस को रिफिल किया और नेक्स्ट सेकंड कोई यूजर आया। उसने कंटीन्यूअसली 20 रिक्वेस्ट सेंड
कर दी। तो ये सारे के सारे टोकंस इस यूजर लेट्स से यूजर ए को एलोकेट हो जाएंगे। राइट? सारे टोकंस इस यूजर ए को एलोकेट हो
जाएंगे। और फर्स्ट सेकंड में ही फर्स्ट सेकंड में ही ये हमारा बकेट जो है वो एंप्टी हो जाएगा। हमारा बकेट यहां पे
एंप्टी हो जाएगा। तो अब बकेट एंप्टी हो जाएगा और लेट्स से कोई नया यूजर आता है यूजर बी तो अब इस केस में यूजर बी को 4
सेकंड तक वेट करना पड़ेगा। क्योंकि अब 4 सेकंड तक और यह जो हमारा बकेट है यह एंप्टी रहेगा। 4 सेकंड के बाद हमारा यह
रिफिलर इसे रिफिल करेगा। लेकिन 4 सेकंड तक यहां पे यूजर बी को वेट करना पड़ेगा। तो 4 सेकंड यूजर बी के रिक्वेस्ट रिस्पांस में
डिले हो जाएगा। तो यहां हम कह सकते हैं हमारी लेटेंसी इनक्रीज हो जाती है। और दूसरी प्रॉब्लम भी इसी से रिलेटेड है कि
यदि लेट्स से एक ही यूजर ने इस केस में यूजर ए ने सारे के सारे टोकंस को एक्वायर कर लिया तो दूसरे यूज़र्स को काफी वेट करना
पड़ता है। दूसरे यूज़र्स की रिक्वेस्ट को काफी वेट करना पड़ता है। तो यह थे कुछ हमारे ड्रॉबैक्स इस टोकन बकेट एल्गोरिदम
के। अब जो हमारी दूसरी एल्गोरिदम है जो हमारी दूसरी एल्गोरिदम है उसे हम बोलते हैं लीकी बकेट एल्गोरिदम तो अब इस ली बकेट
एल्गोरिदम में भी हमारे पास क्या होता है हमारे पास एक बकेट होती है ये हमारे पास एक बकेट होती है लेट मी जस्ट रोटेट दिस
बकेट तो ये हमारे पास एक बकेट होती है और इस बकेट में हम क्या करते हैं डिफरेंट यूज़र्स की रिक्वेस्ट को लेट्स से हमारे
डिफरेंट यूज़र्स हैं ये यूजर ए यूजर बी यूज़र्स सी। तो ऐसे हमारे पास डिफरेंट यूज़र्स हैं। तो अब हम क्या करते हैं? इस
बकेट में हम इन डिफरेंट यूज़र्स की रिक्वेस्ट को डालते हैं। तो हम क्या करेंगे? इन डिफरेंट यूज़र्स की रिक्वेस्ट
को इन डिफरेंट यूज़र्स की रिक्वेस्ट को इस बकेट में डालेंगे। लेट्स से हमारे सिस्टम में दो और ये यूज़र्स हैं। तो इनकी
रिक्वेस्ट को भी हम इस बकेट में डालेंगे। तो बेसिकली हमने क्या किया? हम सारे रिक्वेस्ट सारे यूज़र्स की रिक्वेस्ट को इस
बकेट में डाल देते हैं। अब इस ली बकेट एल्गोरिदम में हमारे पास यह बकेट में एक यहां पे होल होता है। हमारे बकेट में यहां
पे होल होता है। तो अब इस होल की वजह से क्या होगा? ऑब्वियसली लीकेज होगा। यू कैन कंसीडर इट एज अ नॉर्मल बकेट। जहां पे यदि
बकेट में होल होगा तो ऑब्वियसली पानी वहां से लीकेज होगा। तो यहां पे भी हमारे इस बकेट में हम कंसीडर करते हैं कि यहां पे
ऐसा एक हमारा छोटा होल होगा। तो अब इस होल होने की वजह से क्या होगा कि हमारी रिक्वेस्ट यहां से लीकेज करेंगी। राइट? यू
कैन कंसीडर दिस कि यहां से हमारी रिक्वेस्ट लीकेज करेंगी और फिर ये रिक्वेस्ट जाएंगी सर्वर के पास। फिर ये
रिक्वेस्ट जाएंगी इस सर्वर के पास। तो अब यहां पे इस बकेट को रिफिल जब हम करेंगे रिक्वेस्ट से रिफिल करेंगे तो यहां पे
इसका रेट हो सकता है लेट्स से 1000 रिक्वेस्ट पर सेकंड। मतलब हम 1000 रिक्वेस्ट के रेट से 1000 रिक्वेस्ट पर
सेकंड के रेट से इस बकेट को रिफिल कर रहे हैं। और यहां पे लीकेज का जो रेट है वो ऐसा हो सकता है कि टू रिक्वेस्ट पर सेकंड।
मतलब जो हमारा लीकेज है या होल है इसमें से सिर्फ दो रिक्वेस्ट ही बाहर आ रही हैं। मतलब एक सेकंड में हमारी दो रिक्वेस्ट ही
बाहर आ रही हैं। तो जो सर्वर को मिलने वाली रिक्वेस्ट होंगी वो कम होंगी। यहां पे जब हम बकेट में रिक्वेस्ट फिल कर रहे
हैं तो उसका रेट क्या है? 1000 रिक्वेस्ट पर सेकंड व्हिच इज़ टू मच। पर यहां पे लीकेज या होल में से रिक्वेस्ट निकलने का
रेट क्या है? टू रिक्वेस्ट पर सेकंड। तो यहां पे सर्वर को मिलने वाली जो रिक्वेस्ट होती है, नंबर ऑफ रिक्वेस्ट होती है, वह
कम होती हैं। इस वजह से सर्वर पे आने वाला ट्रैफिक या लोड कम पड़ता है। इससे क्या होता है कि ये सर्वर के रिसोर्सेज को हम
सही से यूज़ कर पाते हैं और सर्वर के रिसोर्सेज को हम एक्सप्लइट नहीं करते। तो यहां पर हम सर्वर की कैपेसिटी के
अकॉर्डिंग उसे रिक्वेस्ट देते हैं। यदि सर्वर की कैपेसिटी है केवल दो रिक्वेस्ट को प्रोसेस करना। 1 सेकंड में दो
रिक्वेस्ट को प्रोसेस करना। तो यहां पे हम बकेट होल से लीकेज से केवल दो रिक्वेस्ट को ही जाने देंगे। तो ये होता है हमारा ली
बकेट एल्गोरिदम। यहां पे हम बेसिकली रिक्वेस्ट को लीक करते हैं। रिक्वेस्ट का लीकेज होता है। इसलिए
हम इसे बोलते हैं लीकी बकेट एल्गोरिदम। अब ली बकेट एल्गोरिदम में सर्वर की कैपेसिटी के अकॉर्डिंग हम रिक्वेस्ट को लीक कराते
हैं। तो ये देखा हमने ली बकेट एल्गोरिदम। अब ली बकेट एल्गोरिदम का ड्रॉबैक है या डिसएडवांटेज है। तो अब इस केस में यहां पे
हमारे रिक्वेस्ट लीक होने का रेट तो बहुत कम है। टू रिक्वेस्ट पर सेकंड। लेकिन इस बकेट में रिक्वेस्ट आने का रेट बहुत
ज्यादा है। 1000 रिक्वेस्ट पर सेकंड। तो ऑब्वियसली इस बकेट की भी कुछ कैपेसिटी होगी। राइट? अब लेट्स से कि इस बकेट की
कैपेसिटी है 2000 रिक्वेस्ट को 2000 रिक्वेस्ट को स्टोर करना। तो अब 2000 रिक्वेस्ट स्टोर करने के बाद फिर जो
नेक्स्ट रिक्वेस्ट आएंगी फिर जो नेक्स्ट रिक्वेस्ट आएंगी उनको काफी सारा वेट करना पड़ता है। उनके रिस्पांस में डिले हो जाता
है। तो यह होता है इस ली बकेट एल्गोरिदम का ड्रॉबैक। बेसिकली क्या होता है कि हमारी बकेट में यह हमारी बकेट है। लेट्स
से इसकी कैपेसिटी है 2000 रिक्वेस्ट को 2000 रिक्वेस्ट को रखना। 2000 रिक्वेस्ट को होल्ड करना। हमारे बकेट में आ रही है
रिक्वेस्ट इस रेट से 1000 रिक्वेस्ट पर सेकंड। और यह जो हमारे सर्वर की कैपेसिटी है, यहां हमारा सर्वर है, इसकी कैपेसिटी
है लेट्स से 100 रिक्वेस्ट को 100 रिक्वेस्ट को प्रोसेस करना। पर सेकंड में 100 रिक्वेस्ट को प्रोसेस करना। तो फर्स्ट
सेकंड में ये 1000 रिक्वेस्ट आएंगी और यहां पे ये बकेट में स्टोर हो जाएंगी। राइट? अब इनमें से 100 रिक्वेस्ट को ये
सर्वर प्रोसेस कर देगा। 100 रिक्वेस्ट को सर्वर प्रोसेस कर देगा। यहां पे लेफ्ट बचेंगी 900। अब नेक्स्ट टाइम वापस 1000
रिक्वेस्ट आएंगी। तो अब इन 1000 रिक्वेस्ट को भी हम बकेट में स्टोर कर देंगे। राइट? और यहां पे 100 रिक्वेस्ट वापस से जाएंगी
प्रोसेसिंग के लिए सर्वर के पास। तो यहां पे हो गई टोटल 800 और ये 1000 न्यू रिक्वेस्ट आई। तो ये हो गई हमारे पास 1800
रिक्वेस्ट। मतलब हमारा बकेट का साइज हो गया अभी 1800। कैपेसिटी इसकी कितनी है? केवल 2000। तो अब जो नेक्स्ट टाइम वापस से
1000 रिक्वेस्ट आएंगी। वापस से 1000 रिक्वेस्ट आएंगी। तो अब इस केस में इनमें से कुछ रिक्वेस्ट को इनमें से लगभग 800
रिक्वेस्ट को काफी वेट करना पड़ेगा। इनके रिस्पांस में काफी डिले होगा। तो ये देखा हमने ली बकेट एल्गोरिदम का डिसएडवांटेज या
ड्रॉबैक। तो ये थी हमारी एक और रेट लिमिटिंग स्ट्रेटजी रेट लिमिटिंग टेक्निक। और जो नेक्स्ट हमारी कुछ और रेट लिमिटिंग
स्ट्रेटजीस हैं उनमें आती है एक फिक्स्ड विंडो काउंटर और एक आती है हमारी स्लाइडिंग विंडो लॉग। तो ये सारी
स्ट्रेटजीज़ को हम इस रेट लिमिटिंग के पार्ट टू में देखेंगे। सो, स्टे ट्यूंड विद मी। एंड आई गेस दिस इज़ ऑल फॉर दिस
वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन बाय-बाय। शो सम लव। थैंक्स।
[संगीत] हे एवरीवन, वेलकम बैक। वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। और यह वीडियो इस रेट लिमिटिंग का पार्ट टू
होने वाला है। पार्ट वन में हमने रेट लिमिटिंग को समझा कि रेट लिमिटिंग होता क्या है? और हमने कुछ रेट लिमिटिंग
स्ट्रेटजीज़ को भी देखा। हमने देखा उसमें टोकन बकेट एल्गोरिदम को। हमने देखा ली बकेट एल्गोरिदम को। अब इस वीडियो में हम
कुछ और रेट लिमिटिंग स्ट्रेटजीज़ को डिस्कस करेंगे। सो स्टार्ट करते हैं एंड लेट मी जस्ट मिनिमाइज़ माय स्क्रीन। ओके? तो जो
हमारी पहली एल्गोरिदम है वो है फिक्स्ड विंडो काउंटर एल्गोरिदम। अब फिक्स्ड विंडो काउंटर एल्गोरिदम में हम क्या करते हैं?
हम एक फिक्स्ड साइज़ की विंडो लेते हैं। बेसिकली हम क्या करते हैं? हम एक थ्रेशहोल्ड वैल्यू डिसाइड करते हैं। जैसे
इस केस में हमने डिसाइड किया थ्री रिक्वेस्ट पर सेकंड। तो इसका मतलब है कि हमारा सर्वर एक सेकंड में तीन रिक्वेस्ट
को प्रोसेस करेगा। तो हमने ये थ्रेशहोल्ड वैल्यू डिसाइड की और जो अब हमारी फिक्स्ड विंडो होगी उसका साइज इस थ्रेशहोल्ड
वैल्यू पे डिपेंड करता है। तो अब यहां पे हमने क्या देखा कि हमारा सर्वर 1 सेकंड में मैक्स तीन रिक्वेस्ट को प्रोसेस
करेगा। यह हमारा थ्रेशहोल्ड वैल्यू। तो इसके अकॉर्डिंग हम क्या करेंगे? हम फिक्स्ड साइज़ की विंडो बना लेंगे और जिसका
साइज़ होगा 1 सेकंड। तो हम टाइम के अकॉर्डिंग हमारी विंडो का साइज़ डिफाइन कर देंगे। अब यहां पे टाइम को हम सेकंड में
भी ले सकते हैं, मिनट में भी ले सकते हैं। इट डिपेंड्स ऑन आवर इंप्लीमेंटेशन। तो इस केस में हमारा थ्रेशहोल्ड वैल्यू था थ्री
रिक्वेस्ट पर सेकंड। इसलिए हमने विंडो का साइज़ लिया 1 सेकंड। ठीक है? तो हमारे हमने क्या देखा कि फिक्स्ड विंडो काउंटर
एल्गोरिदम में हमारे पास एक फिक्स्ड साइज की विंडो होती है। ये हमारी फिक्स्ड साइज की एक विंडो हो गई। अब फिक्स्ड विंडो
काउंटर एल्गोरिदम में हम दो एक्सिस लेते हैं। y एक्सिस पे रखते हैं हम नंबर ऑफ रिक्वेस्ट को और x एक्सिस पे रखते हैं हम
टाइम को। यहां पे ये टाइम हमने प्लॉट कर दिया। ये हो गया हमारा फर्स्ट सेकंड। ये हो गया सेकंड। ये हो गया थर्ड सेकंड। ये
हो गया फोर्थ एंड सो ऑन। तो अब फिक्स्ड विंडो काउंटर एल्गोरिदम में हम क्या करेंगे? हम एक काउंटर को मैनेज करेंगे।
काउंटर को मेंटेन करेंगे। अब ये काउंटर क्या करता है? ये हर विंडो में नंबर ऑफ रिक्वेस्ट को काउंट करता है। नंबर ऑफ
रिक्वेस्ट को काउंट करता है। तो अब देखते हैं कि फिक्स्ड विंडो काउंटर एल्गोरिदम काम कैसे करता है। तो लेट्स से कि हमारे
इस इंटरवल में हमारे इस इंटरवल में हमारे पास पहली रिक्वेस्ट आई। अब यह रिक्वेस्ट आई। लेट्स से यह रिक्वेस्ट आई तो इनिशियली
हमारी काउंटर की वैल्यू होगी ज़ीरो। अब यहां पर हमारी थ्रेशहोल्ड वैल्यू क्या है कि हम 1 सेकंड में मैक्स टू मैक्स तीन
रिक्वेस्ट को ही प्रोसेस कर सकते हैं। राइट? तो ये हमारी एक विंडो बन गई। ये हमारी एक विंडो बन गई। ये डॉटेड लाइन से
हमने एक विंडो बना ली। तो बेसिकली हम इस एक विंडो में मैक्स टू मैक्स तीन रिक्वेस्ट को प्रोसेस कर सकते हैं। तो जब
ये हमारी पहली रिक्वेस्ट आई तो इनिशियली काउंटर की वैल्यू थी ज़ीरो। अब हमने देखा काउंटर की वैल्यू ज़ीरो है। ठीक है? और
हमारा थ्रेशहोल्ड वैल्यू क्या है? थ्री। तो हम देखेंगे ठीक है? हम काउंटर की वैल्यू को इंक्रीस कर सकते हैं। तो यहां
पे हम काउंटर की वैल्यू को ज़ीरो से वन कर देंगे। और यहां पे सर्वर इस रिक्वेस्ट को प्रोसेस कर देगा। राइट? अब लेट्स से कि
इसी इंटरवल में मतलब 0 से 1 सेकंड के बीच में कहीं पे दो और नई रिक्वेस्ट आई हमारे पास। ये दो नई रिक्वेस्ट आई। तो इस केस
में भी हम देखेंगे काउंटर की वैल्यू अभी वन है और हमारी थ्रेशहोल्ड वैल्यू है थ्री। तो हम इन दो रिक्वेस्ट को भी
प्रोसेस कर सकते हैं। तो यहां पे हम काउंटर की वैल्यू को कर देंगे वन से थ्री। अब यहां पे सर्वर इन दो रिक्वेस्ट को भी
प्रोसेस कर देगा। ठीक है? अब जैसे ही ये फर्स्ट सेकंड कंप्लीट होगा तो हमारी ये सेकंड विंडो आ जाएगी। राइट? हमारी ये
सेकंड विंडो स्टार्ट हो जाएगी। अब लेट्स से कि सेकंड विंडो स्टार्ट होती है तो हमारा सबसे पहला काम क्या होगा? हम इस
काउंटर को इस काउंटर की वैल्यू को वापस से ज़ीरो सेट कर देंगे। राइट? क्योंकि अब यह हमारा दूसरा विंडो स्टार्ट हो गया। तो, इस
दूसरे दूसरे विंडो में भी हमें अह काउंट करना होगा। नंबर ऑफ़ रिक्वेस्ट को काउंट करना होगा। राइट? तो इसलिए हम काउंटर की
वैल्यू को ज़ीरो पे सेट कर देते हैं। अब लेट्स से कि इस इंटरवल में हमारे पास पहली रिक्वेस्ट आती है। लेट्स से हमारे पास ये
दो रिक्वेस्ट आती हैं। तो इनिशियली काउंटर की वैल्यू हमारे पास क्या है? ज़ीरो। तो हम हमारे थ्रेशहोल्ड वैल्यू तीन। उससे कम है
ये हमारे काउंटर की वैल्यू। तो हम इन दोनों रिक्वेस्ट को प्रोसेस कर देंगे। सर्वर इन दोनों रिक्वेस्ट को प्रोसेस कर
देगा। तो अब यहां पे काउंटर की वैल्यू हो जाएगी टू। अब लेट्स से कि कुछ सेकंड में बेसिकली इसी इंटरवल में कुछ मिली सेकंड के
बाद तीन और नई रिक्वेस्ट आती हैं। तो हम देखेंगे कि ठीक है तीन और नई रिक्वेस्ट आई हैं। अब हमारे काउंट की वैल्यू यहां हो
चुकी है टू। हमारी थ्रेशहोल्ड वैल्यू है थ्री। तो सर्वर एक रिक्वेस्ट को और प्रोसेस करेगा। राइट? तो अब यहां पे
काउंटर की वैल्यू हो जाएगी थ्री। लेकिन अब जब ये दो रिक्वेस्ट और आएंगी जिन्हें हमने रेड में हाईलाइट किया है। तो जब ये दो
रिक्वेस्ट और आएंगी तो हमें इन दो रिक्वेस्ट को रिजेक्ट करना होगा। राइट? क्योंकि अब हम हमारे थ्रेशहोल्ड वैल्यू को
टच कर चुके हैं। तो ये हमारी थ्रेशहोल्ड वैल्यू थी। और एक विंडो में बेसिकली एक विंडो में ऐसी एक विंडो में हम मैक्स टू
मैक्स तीन रिक्वेस्ट को ही प्रोसेस कर सकते हैं। तो इस इस विंडो में हमने ये रिक्वेस्ट को प्रोसेस कर दिया। इसे
प्रोसेस कर दिया। इसे प्रोसेस कर दिया। तो अब हमें ये दो रिक्वेस्ट को रिजेक्ट करना पड़ेगा। राइट? तो ये देखा हमने एक और
इंटरवल। अब नेक्स्ट इंटरवल में हमारा काउंट क्या होगा? काउंटर की वैल्यू हो जाएगी वापस से ज़ीरो। अब लेट्स से कि इस
इंटरवल में किसी पॉइंट ऑफ टाइम पे हमारे पास एक साथ तीन रिक्वेस्ट आती हैं। तो हम तीनों रिक्वेस्ट को प्रोसेस कर देंगे।
राइट? क्योंकि अभी काउंटर की वैल्यू है ज़ीरो। तो हम तीनों रिक्वेस्ट को प्रोसेस कर देंगे। अब लेट्स से कि इसी इंटरवल में
किसी पॉइंट ऑफ टाइम पे एक और रिक्वेस्ट आती है। तो अब हमें इस रिक्वेस्ट को रिजेक्ट करना पड़ेगा क्योंकि काउंटर की
वैल्यू हमारी ऑलरेडी थ्रेशहोल्ड वैल्यू को टच कर चुकी है। तो ये होती है हमारी फिक्स्ड विंडो काउंटर एल्गोरिदम। अब
फिक्स्ड विंडो काउंटर एल्गोरिदम में प्रॉब्लम क्या है? उसे समझते हैं। तो हमने क्या देखा फिक्स्ड विंडो काउंटर एल्गोरिदम
में कि हम ऐसे टाइम इंटरवल्स लेते हैं। हम बेसिकली ऐसे विंडोज़ ले रहे हैं। ज़ीरो से 1 सेकंड तक की विंडो, वन से 2 सेकंड तक की
विंडो, टू से थ्री, थ्री से फोर। तो ऐसे हमने एक-एक सेकंड की विंडो ले ली। राइट? हमने क्या किया? एक-एक सेकंड की यहां पे
विंडो ले ली। हमारी विंडो का साइज़ यहां पे फिक्स था। अब हमारे इस ग्राफ में कहीं पे 0.5 भी होगा। राइट? यहां कहीं पे हमारा एक
0.5 होगा। राइट? और यहां कहीं पे हमारा 1.5 होगा। तो अब हम यदि इस इंटरवल को लें 0.5
से लेके 0.5 से लेके 1.5 यदि हम इस इंटरवल को लें और हमें हम इसे एक विंडो माने। इसे एक विंडो
कंसीडर करें तो इस विंडो का साइज भी 1 सेकंड है। राइट? जो हमने डिसाइड किया था कि हमारी विंडो का साइज 1 सेकंड होगा। तो
यदि हम इस टाइम इंटरवल को लेते हैं तो यह भी तो हमारी एक विंडो हो गई। राइट? और इसका साइज भी 1 सेकंड है। तो इस केस में
अब हम देखते हैं हमने कितनी रिक्वेस्ट को प्रोसेस किया। तो हमने 0.5 से 0.5 से 1.5 तक हमने एक इस रिक्वेस्ट को प्रोसेस किया।
एक इस रिक्वेस्ट को प्रोसेस किया। एक इसे प्रोसेस किया और एक इसे प्रोसेस किया। अब हमारा थ्रेशहोल्ड वैल्यू क्या थी? थ्री।
हमारा थ्रेशहोल्ड वैल्यू क्या थी? तीन रिक्वेस्ट पर सेकंड। लेकिन हमने यहां पे एक ही सेकंड में चार रिक्वेस्ट को प्रोसेस
कर दिया। हमने बेसिकली ये टाइम इंटरवल को लिया और इस विंडो में हमने चार रिक्वेस्ट को प्रोसेस कर दिया। हमारी थ्रेशहोल्ड
वैल्यू सिर्फ तीन थी लेकिन हमने थ्रेशहोल्ड वैल्यू के ऊपर रिक्वेस्ट को प्रोसेस कर दिया। तो ये एक प्रॉब्लम आती
है हमारी फिक्स्ड विंडो काउंटर एल्गोरिदम में। अब फिक्स्ड विंडो काउंटर एल्गोरिदम की प्रॉब्लम को कौन सॉल्व करता है? तो
उसकी प्रॉब्लम को सॉल्व करती है हमारी स्लाइडिंग विंडो लॉक एल्गोरिदम। अब स्लाइडिंग विंडो लॉक एल्गोरिदम को हम
समझते हैं। तो इसमें भी हमने एक थ्रेशहोल्ड वैल्यू डिसाइड की। लेट्स से हमने डिसाइड किया कि हमारी जो थ्रेशहोल्ड
वैल्यू है वो है थ्री रिक्वेस्ट पर 5 सेकंड। मतलब हमारा सर्वर हर 5 सेकंड में हर 5 सेकंड में तीन रिक्वेस्ट को प्रोसेस
करेगा। तीन रिक्वेस्ट को प्रोसेस करेगा। ठीक है? हमने ये डिसाइड कर लिया। तो हम यहां पे क्या करेंगे? हम हर विंडो को 5
सेकंड का बनाएंगे। तो हम कह सकते हैं कि हमारी विंडो का साइज 5 सेकंड होगा। तो ये हमने एक यहां पे विंडो बना दी। यहां से
हमने ज़ीरो से फाइव तक एक विंडो बना दी। और अब इस विंडो में हम मैक्स टू मैक्स तीन रिक्वेस्ट को प्रोसेस कर सकते हैं। राइट?
अब लेट्स से कि फर्स्ट सेकंड पे हमारे पास एक रिक्वेस्ट आती है। यहां पे फर्स्ट सेकंड पे हमारे पास एक रिक्वेस्ट आती है।
तो ये रिक्वेस्ट आई। अब इस रिक्वेस्ट को हम ईजीली प्रोसेस कर लेंगे। राइट? क्योंकि हमारी थ्रेशहोल्ड वैल्यू है थ्री। तो अभी
हमारे पास सिर्फ एक ही रिक्वेस्ट है। तो हम इसे ईजीली प्रोसेस कर लेंगे। और हम क्या करेंगे? हम इस रिक्वेस्ट का टाइम नोट
कर लेंगे। हम इस रिक्वेस्ट का टाइम लॉक कर लेंगे। तो बेसिकली हम स्लाइडिंग विंडो लॉग एल्गोरिदम में एक लॉग मेंटेन करते हैं। हम
लॉग मेंटेन करते हैं और हम उसमें रखते हैं कि किस टाइम इंटरवल पे किस पॉइंट ऑफ टाइम पे हमारे पास रिक्वेस्ट आई थी। अब लेट्स
से कि ये हमारी रिक्वेस्ट आई फर्स्ट सेकंड पे। तो हम इसे रिक्वेस्ट लॉग में इसकी एंट्री कर देंगे कि फर्स्ट सेकंड में
हमारे पास एक रिक्वेस्ट आई। राइट? अब लेट्स से कि थर्ड सेकंड में थर्ड सेकंड में यहां पर हमारे पास एक और रिक्वेस्ट
आई। थर्ड सेकंड में हमारे पास एक और रिक्वेस्ट आई। तो इसके लिए भी हम क्या करेंगे? इसकी भी हम एंट्री इस रिक्वेस्ट
लॉग में कर देंगे। तो अब हमारे पास क्या हो गया? हमारे पास दो रिक्वेस्ट हो गई। राइट? एक विंडो में हमारे पास दो
रिक्वेस्ट हो गई। मैक्स हमारी कैपेसिटी क्या है? तीन रिक्वेस्ट। हमारे पास दो रिक्वेस्ट हो गई। हम एक काम करते हैं। हम
इस इन रिक्वेस्ट को ऐसे कर लेते हैं कि हम इन रिक्वेस्ट को इन टाइम इंटरवल्स के बीच में रख लेते हैं। ज़ीरो से वन के बीच में
इसे हम रख लेते हैं टू से थ्री के बीच में। और हम इसका राउंड ऑफ ले लेते हैं कि लेट्स से यदि ये रिक्वेस्ट ज़ीरो से वन
सेकंड के बीच में आई है तो हमने इसे वन ले लिया। टू से थ्री के बीच में आई है तो इसे हमने थ्री ले लिया। राइट? अब लेट्स से कि
हमारे पास एक और रिक्वेस्ट आती है। लेट्स से 4.5 सेकंड पे हमारे पास एक और रिक्वेस्ट आती है। तो हम इसकी एंट्री भी
कर लेंगे। राइट? इसकी भी एंट्री हम रिक्वेस्ट लॉग में कर लेंगे। क्योंकि यहां पे हमारी मैक्सिमम कैपेसिटी या थ्रेशहोल्ड
क्या था? तीन रिक्वेस्ट को प्रोसेस करना। एक विंडो में बेसिकली 5 सेकंड की एक विंडो में तीन रिक्वेस्ट को प्रोसेस करना। तो अब
हमने यहां पे तीन रिक्वेस्ट को रिक्वेस्ट लॉग में रख लिया। अब लेट्स से कि फिफ्थ और सिक्स्थ सेकंड के बीच में हमारे पास एक और
रिक्वेस्ट आती है। यहां पे हमारे पास एक और रिक्वेस्ट आती है। तो अब इस केस में हमने हमें क्या करना पड़ेगा? हमें इस
हमारी विंडो को स्लाइड करना पड़ेगा। राइट? हमें क्योंकि हमारी विंडो का साइज तो चेंज नहीं होगा। वो तो 5 सेकंड ही रहेगा। तो
हमने क्या किया? हमने हमारी विंडो को विंडो को स्लाइड किया। ठीक है? तो अब यहां पे आप देखोगे कि ये जो जीरो से 1 सेकंड के
बीच में जो रिक्वेस्ट थी वो इस विंडो के बाहर हो गई। राइट? तो हम क्या करेंगे? हम इस एक्सपायर्ड लॉग को एक्सपायर्ड
रिक्वेस्ट को या रिक्वेस्ट लॉग से इसकी एंट्री हटा देंगे। तो अब वापस से हमारे पास रिक्वेस्ट लॉग में केवल दो रिक्वेस्ट
हैं। दो टाइम स्टैंप है। हमारे पास मैक्सिमम कैपेसिटी कितनी है? थ्री। तो हम इस वाली को भी कंसीडर कर लेंगे। राइट? हम
इसका टाइम भी रिक्वेस्ट लॉग में एंटर कर देंगे। तो ये रिक्वेस्ट आई हमारी सिक्स्थ सेकंड पे। अब लेट्स से कि से सिक्स्थ और
सेवंथ सेकंड के बीच में हमारे पास दो और रिक्वेस्ट आती हैं। सिक्स्थ और सेकंड सिक्स्थ और सेवंथ सेकंड के बीच में हमारे
पास ये दो और रिक्वेस्ट आती हैं। दो और रिक्वेस्ट आती हैं। तो अब क्या करेंगे हम? हमारी विंडो का साइज क्या है? फाइव। राइट?
तो हम क्या करेंगे? वापस से हम इसे विंडो को स्लाइड करेंगे। राइट? हमारी इस विंडो को वापस से स्लाइड करेंगे। अब ये विंडो आ
जाएगी हमारी टू और सेवन के बीच में। तो अब हम देखते हैं टू और सेवन के बीच में हमारे पास कितनी रिक्वेस्ट है। हमारे पास तीन
रिक्वेस्ट ऑलरेडी हैं। हमारे पास एक ये वाली रिक्वेस्ट है। एक ये वाली रिक्वेस्ट है। एक ये वाली रिक्वेस्ट है। तो बेसिकली
हमारे पास तीन रिक्वेस्ट ऑलरेडी हैं। हमारा थ्रेशहोल्ड वैल्यू भी तीन हैं और हमारे रिक्वेस्ट लॉग में ऑलरेडी तीन
एंट्रीज हैं। तो हमें क्या करना पड़ेगा? हमें इन दोनों रिक्वेस्ट को रिजेक्ट करना पड़ेगा। इन दोनों रिक्वेस्ट को हम रिजेक्ट
कर देंगे। अब लेट्स से कि हमारी सेवंथ सेकंड और एट्थ सेकंड के बीच में एक और रिक्वेस्ट आती है। हमारी सेवंथ और एट्थ
सेकंड के बीच में एक और रिक्वेस्ट आती है। राइट? तो अब क्या होगा? अब ये हमारी विंडो हम वापस से स्लाइड करेंगे। राइट? तो यहां
पे हम हमारी विंडो को वापस से स्लाइड करेंगे। तो अब ये विंडो हो जाएगी तीन और आठ के बीच में। तीन और आठ के बीच में। अब
यहां पे तीन और आठ के बीच में हमारे पास ये दो रिक्वेस्ट ऑलरेडी हैं। ये और ये रिक्वेस्ट। ये रिक्वेस्ट क्या हुआ? ये
रिक्वेस्ट हमारी एक्सपायर्ड हो गई। एक्सपायर्ड इन द सेंस ये जो हमारा टाइम था ये एक्सपायर हो गया। तो हम क्या करेंगे?
हम इस रिक्वेस्ट को ये 3 सेकंड वाली रिक्वेस्ट को ये रिक्वेस्ट लॉक से रिमूव कर देंगे। तो अब हमारे पास टोटल रिक्वेस्ट
लॉग में दो रिक्वेस्ट हैं। राइट? और यहां पे हमने स्लाइड किया तो हमारे पास ये दो रिक्वेस्ट ऑलरेडी हैं। ये दो हम रिजेक्ट
कर चुके थे। अब ये जो हमारी एक और रिक्वेस्ट आएगी इसे भी हम कंसीडर कर लेंगे। तो इसकी एंट्री भी हम रिक्वेस्ट
लॉग में कर देंगे। तो यहां पे भी हमारी ये एक और एंट्री आ जाएगी। तो ऐसे काम करता है हमारा स्लाइडिंग विंडो लॉग एल्गोरिदम।
बेसिकली हम रिक्वेस्ट का लॉग मेंटेन रखते हैं। और जैसे ही हमारा एक्सपायर्ड टाइम विंडो के बाहर जाता है, जैसे इस केस में
या हमारा विंडो के जैसे ही बाहर गया, एक्सपायर्ड टाइम हमारा विंडो के बाहर गया, तो हम उसे रिक्वेस्ट लॉक से हटा देते हैं।
रिमूव कर देते हैं। तो ये देखा हमने स्लाइडिंग विंडो लॉग एल्गोरिदम। ओके? अब हमारी जो नेक्स्ट एल्गोरिदम है, वह है
स्लाइडिंग विंडो। स्लाइडिंग विंडो काउंटर एल्गोरिदम काउंटर एल्गोरिदम तो अभी हमने क्या देखा हमने
देखा एक स्लाइडिंग विंडो लॉग एल्गोरिदम और हमने देखा फिक्स्ड विंडो काउंटर एल्गोरिदम तो ये जो हमारी स्लाइडिंग विंडो काउंटर
एल्गोरिदम है ये बेसिकली कॉम्बिनेशन है ये दोनों का स्लाइडिंग विंडो लॉग एल्गोरिदम का और फिक्स्ड विंडो काउंटर एल्गोरिदम का।
तो यस इट्स अ हाइब्रिड अप्रोच। तो अब इसे समझते हैं। इसे समझने के लिए हम सेम एग्जांपल लेते हैं फिक्स्ड विंडो काउंटर
एल्गोरिदम का। क्योंकि ये स्लाइडिंग विंडो काउंटर एल्गोरिदम में भी हमारे पास ऐसी विंडोज़ होती हैं। फिक्स्ड साइज की विंडोज़
होती हैं। तो अब हम क्या करते हैं? लेट्स से कि ये हमारे पास रिक्वेस्ट आ रही थी। ये रिक्वेस्ट यदि थ्रेशहोल्ड वैल्यू के
ऊपर जा रहे थे हम तो हम उन्हें रिजेक्ट कर दे रहे थे। और यदि हम थ्रेशहोल्ड वैल्यू के नीचे थे। यदि काउंटर की वैल्यू
थ्रेशहोल्ड वैल्यू के नीचे थी तो हम उन रिक्वेस्ट को प्रोसेस कर दे रहे थे। अब लेट्स से कि इस थ्री से फोर सेकंड के बीच
में हमारे पास एक और रिक्वेस्ट आती है। यहां कहीं पे एक और रिक्वेस्ट आती है। अब आप इसे ऐसा समझ सकते हैं कि ये जो हमारा
पार्ट है, ये जो हमारा यहां से लेके यहां तक का पार्ट है, यह लेट्स से 100% है। 100% है। राइट? अब लेट्स से कि 0.1 सेकंड
पे 0.1 सेकंड पे यदि हमारे पास कोई रिक्वेस्ट आती है तो हम कह सकते हैं कि इसके ये इसका सिर्फ 10% है। राइट? ये इसका
10% है। तो स्लाइडिंग विंडो काउंटर एल्गोरिदम में हम क्या करते हैं? लेट्स से कि ये जो हमारी रिक्वेस्ट आई ये वाली
हमारी रिक्वेस्ट आई ये आई 3.1 थ्री से 3.1 सेकंड पे। तो स्लाइडिंग विंडो काउंटर एल्गोरिदम में हम क्या करते हैं?
हम इतना पार्ट लेते हैं तो हम इतना 10% पार्ट यहां का लेते हैं और रेस्ट 90% पार्ट हम यहां का लेते हैं। रेस्ट 90%
पार्ट हम इस साइड का लेते हैं। तो ये होती है हमारी स्लाइडिंग विंडो काउंटर एल्गोरिदम। तो अब हम क्या करते हैं कि
जैसे यहां हमारे पास 10% में एक रिक्वेस्ट आ गई। राइट? तो अब हम पीछे के 90% में देखेंगे पीछे के 90% में हमारे पास कितनी
रिक्वेस्ट हैं। अब लेट्स से कि हमारे पिछले विंडो के बेसिकली हम अभी किस में इस विंडो में थे। अब लेट्स से कि हमारे पिछले
विंडो के 90% में ये रिक्वेस्ट नहीं है। लेट्स से कि हमारा ये जो 90% है ये इसके इस साइड वाला पार्ट है। ये हमारा 10%
पार्ट है और ये हमारा 90% पार्ट है। तो अब क्या होगा कि हम इस विंडो का 10% लेंगे और पिछली विंडो का 90% लेंगे। हमारी
थ्रेशहोल्ड वैल्यू क्या थी? यहां पे हमारी थ्रेशहोल्ड वैल्यू क्या थी? थ्री रिक्वेस्ट पर सेकंड। राइट? तो यहां पे एक
रिक्वेस्ट ये हो गई। और यहां पे प्रीवियस मतलब पिछली विंडो के 90% में हमारे पास यहां कोई भी रिक्वेस्ट नहीं थी। राइट? तो
हमारी प्रीवियस विंडो के 90% में एक भी रिक्वेस्ट नहीं थी। राइट? तो हम इस रिक्वेस्ट को अप्रूव कर देंगे। क्योंकि
हमारे थ्रेशहोल्ड लिमिट तो थ्री थी। यहां पे हमारे पास एक ही रिक्वेस्ट है। तो हम इसे अप्रूव कर देंगे। तो ये होती है हमारी
स्लाइडिंग विंडो काउंटर एल्गोरिदम। अब इसे एक और एग्जांपल से समझते हैं। लेट्स से कि यहां पे यह जो हमारा पार्ट है लेट्स से हम
इस विंडो में हैं और यह हमारा पार्ट है लेट्स से 20% 20% ये 100% का ये 20% है। तो हम क्या करेंगे? हम प्रीवियस जो हमारा
विंडो है उसका 80% लेंगे। राइट? हम उसका प्रीवियस 80% लेंगे। अब लेट्स से यहां कहीं पे हमारा ये 80% आ रहा है। यहां कहीं
पे हमारा ये 80% आ रहा है। तो 80% में ऑलरेडी हमारे पास दो रिक्वेस्ट थी। राइट? जिन्हें हमने अप्रूव किया था। अब यहां पर
20% में भी दो रिक्वेस्ट आई तो हम इस रिक्वेस्ट को तो अप्रूव कर देंगे लेकिन इसे हमें रिजेक्ट करना पड़ेगा। क्योंकि एक
विंडो में हम मैक्स तीन रिक्वेस्ट को ही प्रोसेस कर सकते हैं। तो यहां पे भी हम स्लाइडिंग विंडो एक तरीके से मेंटेन करते
हैं। हम अलग-अलग विंडोज़ का पार्शियल पार्ट लेते हैं। लेट्स से इस विंडो का हमने 20% ले लिया। तो हम प्रीवियस विंडो का 80%
लेते हैं। तो एक तरीके से हम यहां पे भी एक स्लाइडिंग विंडो मेंटेन करते हैं। तो अब यहां पे इस केस में हमारी जो स्लाइडिंग
विंडो हो जाएगी वो ऐसी कुछ हो जाएगी। हमारी ऐसी कुछ हो जाएगी। लेट मी जस्ट ट्रांसपेरेंट इट। तो ये हमारी विंडो हो
जाएगी ऐसी। ओके? तो ये होती है हमारी स्लाइडिंग विंडो काउंटर एल्गोरिदम। सो आई थिंक दिस इज़ ऑल फॉर दिस वीडियो। इस वीडियो
में हमने फिक्स्ड विंडो काउंटर एल्गोरिदम को समझा। हमने स्लाइडिंग विंडो लॉग एल्गोरिदम को भी समझा। और हमने एक और
एल्गोरिदम देखी स्लाइडिंग विंडो काउंटर एल्गोरिदम जो कि एक हाइब्रिड अप्रोच थी और ये कॉम्बिनेशन थी स्लाइडिंग विंडो लॉग
एल्गोरिदम का और फिक्स्ड विंडो काउंटर एल्गोरिदम का। सो यस दिस इज़ ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट
वीडियो। सो टिल देन बय शो सम लव। थैंक्स। [संगीत] हे एवरीवन वेलकम बैक वेलकम टू दिस
अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज और आज का वीडियो काफी इंटरेस्टिंग होने वाला है क्योंकि आज के वीडियो में हम एसएसएल
सर्टिफिकेट्स के बारे में डिस्कस करेंगे कि ये एसएसएल सर्टिफिकेट्स होते क्या हैं और कैसे यह काम करते हैं? क्या इनका यूज़
होता है? तो ये सारी चीजें हम डिस्कस करेंगे। तो स्टार्ट करते हैं और सबसे पहले मैं हो जाता हूं गायब। अपनी स्क्रीन को कर
लेता हूं मिनिमाइज। सो गिव मी जस्ट अ मिनट। ओके। तो एकदम शुरू से स्टार्ट करते हैं और सबसे पहले समझते हैं कि ये जो
हमारा क्लाइंट है यह सर्वर के साथ कैसे कम्युनिकेट करता है। तो यह क्लाइंट सिंपली एक रिक्वेस्ट सेंड करता है और उस
रिक्वेस्ट के लिए हमारा यह सर्वर रिस्पांस सेंड करता है। और यह बन जाता है एक हमारा कंप्लीट रिक्वेस्ट रिस्पांस साइकिल। अब ये
जो हमारा कम्युनिकेशन होता है ये होता है ओवर एचटीटीp ओवर एचटीटीp और http कम्युनिकेशन में जो हम डेटा ट्रांसफर होता
है लेट्स से यहां पे क्लाइंट कुछ रिक्वेस्ट सेंड कर रहा है सर्वर रिस्पांस सेंड कर रहा है तो यह जो हमारा डेटा
ट्रांसफर होता है इन http प्रोटोकॉल यह अनइंक्रिप्टेड फॉर्म में होता है अनइंकिप्टेड फॉर्म में होता है मतलब कि
यहां पे डेटा प्लेन टेक्स्ट के फॉर्म में सेंड होगा यहां पे जो भी हम डेटा सेंड करेंगे वो प्लेन टेक्स्ट के फॉर्म में
जाएगा। अब http प्रोटोकॉल में डेटा अनइंक्रिप्टेड फॉर्म में जाता है तो उससे प्रॉब्लम क्या होती है कि लेट्स से यहां
पे कोई हमारा ये हैकर है मैन इन द मिडिल तो ये क्या कर सकता है? इस अनइंक्रिप्टेड डेटा को ईजीली चुरा सकता है। राइट? यहां
पे क्लाइंट लेट्स से अपना ईमेल और पासवर्ड सेंड कर रहा है सर्वर को। ईमेल और पासवर्ड सेंड कर रहा है। लेट्स से हम कोई बैंकिंग
एप्लीकेशन यूज कर रहे हैं। और यहां पे क्लाइंट अपना ईमेल आईडी और पासवर्ड सेंड कर रहा है सर्वर को। तो यह हैकर इस
इंफॉर्मेशन को ईजीली चुरा सकता है क्योंकि यहां पे हमारा कम्युनिकेशन हो रहा है ओवर एचटीटीp और http में हमारे पास डेटा
अनइंक्रिप्टेड फॉर्म में होता है। तो इस वजह से यह हैकर ईजीली इस डेटा को चुरा सकता है। तो अब हम इस प्रॉब्लम को कैसे
दूर कर सकते हैं? तो इस प्रॉब्लम को सिंपली हम ऐसे दूर कर सकते हैं कि हम इस डेटा को इंक्रिप्ट कर दें। हम इस डेटा को
इंक्रिप्ट कर दें। हम सिंपली क्या करें कि क्लाइंट साइड पे डेटा को भेजने से पहले डेटा को सर्वर को भेजने से पहले हम इस
डेटा को इंक्रिप्ट कर दें। लेट्स से ये हमने ईमेल और पासवर्ड सेंड करना है। तो हम सिंपली क्या कर सकते हैं? इस डेटा को
इंक्रिप्ट कर सकते हैं। इन सिंपल वर्ड्स हम इस डेटा को लॉक कर देंगे। और फिर हम इस इंक्रिप्टेड डेटा को भेज देंगे इस सर्वर
के पास। और सर्वर फिर इस डेटा को डिक्रिप्ट कर लेगा। और यहां पे अब कोई लेट्स से हैकर होगा तो वो इस डेटा को इस
डेटा को रीड नहीं कर पाएगा। क्योंकि यह डेटा इंक्रिप्टेड फॉर्म में जाएगा तो यह हैकर इस डेटा को रीड नहीं कर पाएगा। और
फिर जब यह डेटा सर्वर के पास पहुंच जाएगा तो सर्वर उसे डिक्रिप्ट कर लेगा। अब क्वेश्चन ये आता है कि हम कैसे इस डेटा को
इंक्रिप्ट और डिक्रिप्ट करेंगे। राइट? तो अब इंक्रिप्ट और डिक्रिप्ट करने के लिए हमें एक की की जरूरत है। राइट? उस की से
हम डेटा को इंक्रिप्ट करेंगे और उस सेम की से हम डेटा को डिक्रिप्ट करेंगे। तो इसे बोलते हैं हम सिमेट्रिक सिमेट्रिक
इंक्रिप्शन। सिमेट्रिक इंक्रिप्शन। जहां पर हम एक सिंगल की से जहां पर हमारे पास एक सिंगल की होती है सिंगल की और इस सिंगल
की से ही हम डेटा को इंक्रिप्ट भी करते हैं और डेटा को डिक्रिप्ट भी करते हैं। तो ये होती है हमारी सिमेट्रिक की सिमेट्रिक
इंक्रिप्शन। अब देखते हैं कि ये सिमेट्रिक इंक्रिप्शन काम कैसे करता है। तो हमने क्या देखा कि हमारे पास एक सिमेट्रिक
इंक्रिप्शन में एक सिमिट्रिक की होगी। यही की हमारे डेटा को इंक्रिप्ट भी करेगी और यही की हमारे डेटा को डिक्रिप्ट भी करेगी।
तो हम सिंपली क्या करेंगे? इस सिमेट्रिक की से हमारे डेटा को इंक्रिप्ट कर देंगे। हम हमारे सिमेट्रिक की से इस डेटा को
इंक्रिप्ट कर देंगे और फिर हम इस डेटा को इस लॉक्ड डेटा को भेज देंगे सर्वर के पास। अब यहां पे यह लेट्स से हमारा कोई हैकर
आता है मैन इन द मिडिल। अब यह इस डेटा को चुराने का ट्राई करेगा। तो यह डेटा को रीड नहीं कर पाएगा क्योंकि यहां पे डेटा
इंक्रिप्टेड फॉर्म में जा रहा है। तो अब यह हम इंक्रिप्टेड डेटा को यहां पे सर्वर को भेज देंगे। तो अब यहां भी सर्वर के पास
तो डेटा इंक्रिप्टेड फॉर्म में पहुंचा। राइट? और इस इंक्रिप्टेड डेटा को अनलॉक करने के लिए या डिक्रिप्ट करने के लिए
सर्वर को भी इस सेम की की नीड होगी। राइट? इस सेम की की नीड होगी। और बिना इस की के तो यह सर्वर भी इस डाटा को अनलॉक नहीं कर
पाएगा। राइट? डिक्रिप्ट नहीं कर पाएगा। तो इससे हमें क्या समझ में आता है कि हमें इस की को भी यहां पे सर्वर को भेजना होगा।
राइट? लेकिन अब यदि हम इस की को यहां पे सर्वर को भेजेंगे तो यह बीच में बैठा हमारा हैकर इस की को ईज़ली चुरा सकता है।
राइट? और फिर वो इस की के थ्रू इस डेटा को डिक्रिप्ट कर सकता है ईज़ली। राइट? सबसे पहले क्या होगा कि हम यहां डेटा को लॉक
करके इंक्रिप्ट करके सर्वर को भेजेंगे। तो लेट्स से कि हम सर्वर को भेज रहे थे और बीच में इसने अ हैकर ने इस डेटा को अपने
पास रख लिया और लेट्स से फिर जब हम की को सर्वर को भेज रहे थे तो इसने की को भी अपने पास रख लिया तो वो सिंपली क्या करेगा
इस की के थ्रू इस डेटा को अनलॉक कर देगा डिक्रिप्ट कर देगा और फिर उसे ईजीली डेटा का एक्सेस हो जाएगा। तो अब इससे क्या समझ
में आता है कि जो हमारा सिमेट्रिक इंक्रिप्शन वाला ऑप्शन था वह ज्यादा यहां पे यूज़फुल नहीं है क्योंकि हमें यहां पे
डेटा को भी सेंड करना है सर्वर को और डेटा को सेंड करने के बाद हमें इस की को भी सेंड करना पड़ेगा जिससे हम उस डेटा को
डिक्रिप्ट करेंगे। तो ये दोनों ही चीजें यह हैकर स्निफ कर सकता है। तो इस वजह से हम ये सिमिट्रिक इंक्रिप्शन वाला ऑप्शन
यूज़ नहीं करेंगे। तो वी नीड सम अदर वे और इसे हम बोलते हैं एसिमिट्रिक इंक्रिप्शन। तो एसिमिट्रिक
इंक्रिप्शन में हमारे पास दो कीज़ होती हैं। सिमिट्रिक इंक्रिप्शन में क्या था कि हमारे पास एक सिंगल की थी और उसी सिंगल की
से हम डेटा को इंक्रिप्ट भी कर रहे थे और डिक्रिप्ट भी कर रहे थे। लेकिन एसिमिट्रिक इंक्रिप्शन में हमारे पास हमारे पास दो
कीज़ होती हैं। एक होती है हमारे पास प्राइवेट की जिसका यूज़ करते हैं हम डेटा को डिक्रिप्ट करने के लिए और एक होती है
हमारे पास पब्लिक की। इस पब्लिक की को हम यूज़ करते हैं डेटा को इंक्रिप्ट करने के लिए। तो ये होता है हमारा एसिमिट्रिक
इंक्रिप्शन। अब देखते हैं कि ये एसिमिट्रिक इंक्रिप्शन काम कैसे करता है। तो एसिमिट्रिक इंक्रिप्शन में अ बेसिकली
हम सर्वर के पास दो कीज़ को रखते हैं। एक सर्वर के पास होती है उसकी प्राइवेट की और एक सर्वर के पास होती है उसकी पब्लिक की।
प्राइवेट की को हम क्यों यूज़ करते हैं? डेटा को डिक्रिप्ट करने के लिए। और पब्लिक की को हम क्यों यूज़ करते हैं? डेटा को
इंक्रिप्ट करने के लिए। और ये जो हमारा क्लाइंट है ये एक अपनी सिमेट्रिक की जनरेट करता है। सिमेट्रिक की जनरेट करता है। तो
अब सबसे पहले क्या होगा कि यह जो सर्वर है ये जो सर्वर है यह अपनी पब्लिक की को अपनी पब्लिक की को यहां पे क्लाइंट को सेंड
करेगा। अब पॉसिबिलिटी है कि यह पब्लिक की को हैकर भी चुरा सकता है। राइट? व्हिच इज़ ओके। तो लेट्स से कि एक कॉपी यह पब्लिक की
की एक कॉपी हैकर ने अपने पास रख ली और एक की चली गई हमारी क्लाइंट के पास। अब क्या होता है कि ये जो हमारी क्लाइंट की
सिमिट्रिक की है, यह जो हमारी क्लाइंट की सिमेट्रिक की है, इसको हम इंक्रिप्ट कर देते हैं यूजिंग दिस पब्लिक की ऑफ़ सर्वर।
यह की कौन सी है हमारी? यह की है हमारी पब्लिक की ऑफ़ सर्वर। पब्लिक की ऑफ़ सर्वर। तो हम इस पब्लिक की का यूज करके इस
सिमेट्रिक की को इंक्रिप्ट कर देते हैं। सिमेट्रिक की को इंक्रिप्ट करने के बाद अब जो हमारे पास डेटा आएगा लेट्स से यहां पे
हम डेटा को लॉक कर देते हैं। तो एक हम आइकॉन ले लेते हैं। तो लेट्स से कि अब हमने ये सर्वर की पब्लिक की को यूज़ करके
इस सिमेट्रिक की को क्लाइंट की सिमेट्रिक की को इंक्रिप्ट कर दिया। और फिर हम इसे भेज देंगे सर्वर को। अब यहां पे जब यह
डाटा सर्वर के पास जा रहा होगा तो यह हैकर उसे रीड करने का ट्राई करेगा। लेकिन अब यह हैकर उसे रीड नहीं कर पाएगा। क्यों?
क्योंकि हैकर के पास यह प्राइवेट की नहीं है। हमने क्या देखा था कि जो भी डेटा हम इस पब्लिक की से इंक्रिप्ट करेंगे, जो भी
डेटा हम इस पब्लिक की से इंक्रिप्ट करेंगे, उसे डिक्रिप्ट कौन कर पाएगा? यह सर्वर की प्राइवेट की। राइट? तो अब यहां
पे हमने सर्वर की पब्लिक की से क्लाइंट की सिमिट्रिक की को इंक्रिप्ट किया और जब हम ये डेटा को ये इस लॉक्ड डेटा को सर्वर को
भेज रहे हैं तो बीच में यह हैकर इसे ट्राई करेगा चुराने का लेकिन वो इस डेटा को रीड नहीं कर पाएगा क्योंकि यह डेटा सिर्फ
सर्वर की प्राइवेट की से ही डिक्रिप्ट होगा। तो अब यह डाटा चला जाएगा यहां पे सर्वर के पास। अब यह डाटा चला गया सर्वर
के पास। तो सर्वर क्या करेगा? सर्वर अपनी प्राइवेट की से इस डाटा को डिक्रिप्ट कर लेगा। राइट? और अब जैसे ही सर्वर इस
प्राइवेट की से इस डेटा को डिक्रिप्ट करेगा तो इस सर्वर को इस क्लाइंट की ये सिमेट्रिक की मिल जाएगी। राइट? तो एक कॉपी
यह क्लाइंट की जो सिमेट्रिक की होगी, इसकी एक कॉपी यहीं पे रहेगी और एक कॉपी मिल जाएगी इस सर्वर को। तो, यह हो गई हमारी
क्लाइंट की सिमेट्रिक की। यह हो गई हमारी क्लाइंट की सिमिट्रिक की। तो यहां पर हमने सिंपली क्या किया? हमने सर्वर की पब्लिक
की को भेजा यहां पे क्लाइंट के पास। तो ये की एक की की एक कॉपी हैकर ने भी रख ली। राइट? व्हिच इज़ ओके। और यहां पे ये पब्लिक
की इस क्लाइंट के पास चली गई। तो अब हमने क्या किया कि सर्वर की पब्लिक की से हमने क्लाइंट की सिमिट्रिक की को इंक्रिप्ट कर
दिया। राइट? और फिर जो हमारा लॉक्ड डेटा था उसको हमने भेज दिया यहां पे सर्वर को। अब जब हम सर्वर को भेज रहे थे तो हैकर इसे
रीड करने का ट्राई करता है लेकिन वो कर नहीं पाता। क्यों? क्योंकि यहां पे वो अब डेटा को डिक्रिप्ट नहीं कर पाएगा। डेटा को
डिक्रिप्ट करने के लिए इस प्राइवेट की की जरूरत है। लेकिन वो प्राइवेट की इसके पास नहीं है। इसके पास सिर्फ पब्लिक की है। तो
यह इस डेटा का कुछ नहीं कर पाएगा। और यह डाटा चला जाएगा यहां पे सर्वर के पास। और फिर यह सर्वर अपनी प्राइवेट की से इस डेटा
को डिक्रिप्ट कर लेगा और उसे मिल जाएगी यह क्लाइंट की सिमेट्रिक की। तो इससे हमने क्या समझा कि यदि हम पब्लिक की से डेटा को
इंक्रिप्ट करते हैं तो सिर्फ इस सर्वर की प्राइवेट की ही उसे डिक्रिप्ट कर पाएगी। ओके? तो अब यहां पे एक सिमेट्रिक की की
कॉपी है क्लाइंट के पास। एक सिमेट्रिक की की कॉपी है सर्वर के पास। तो अब क्या होगा? लेट्स से अब कोई डेटा भेजना है इस
क्लाइंट को। लेट्स से यहां पे एक डेटा है। हमारे पास कुछ डेटा है। लेट्स से ईमेल एंड पासवर्ड। अब इस डेटा को हमें भेजना है
सर्वर को। तो, हम सिंपली क्या करेंगे? इस डेटा को इंक्रिप्ट कर देंगे यूजिंग द सिमेट्रिक की ऑफ़ क्लाइंट। तो, हम क्या
करेंगे? हम इस क्लाइंट की सिमिट्रिक की को लेंगे। इस सिमेट्रिक की को लेंगे और इस सिमेट्रिक की से हम इस डेटा को लॉक कर
देंगे। इंक्रिप्ट कर देंगे और फिर हम क्या करेंगे? फिर हम इस डेटा को भेज देंगे इस सर्वर के पास। तो यहां पे यह डेटा चला
जाएगा अब सर्वर के पास। अब इस डेटा को डिक्रिप्ट करने के लिए हम यह क्लाइंट की सिमेट्रिक की का यूज़ करेंगे। यह ईमेल और
पासवर्ड सर्वर के पास आ गया। तो, हम क्लाइंट की सिमेट्रिक की को यूज़ करके इस डेटा को डिक्रिप्ट कर लेंगे। तो यह डाटा
मिल जाएगा इस सर्वर को और जब यह डाटा यहां से आ रहा होगा तो यह हैकर इसे इस डाटा को एक्सेस करेगा रीड करने के लिए ट्राई करेगा
पर यह डेटा को वो रीड नहीं कर पाएगा। क्यों? क्योंकि उसके पास यह सिमेट्रिक की नहीं है। यह क्लाइंट की सिमेट्रिक की नहीं
है। क्योंकि हमने इस क्लाइंट की सिमेट्रिक की को अब इंक्रिप्टेड फॉर्म में यहां पे सर्वर के पास भेजा था। तो जो हमने सबसे
पहली अप्रोच देखी थी जिसमें हमने सिमिट्रिक इंक्रिप्शन देखा था उसमें हम क्या कर रहे थे कि हम पहले इस डेटा को भेज
रहे थे। पहले हम डेटा को भेज रहे थे और फिर इस डेटा को अनलॉक करने के लिए या डिक्रिप्ट करने के लिए हम इस सिमिट्रिक की
को भेज रहे थे और पॉसिबिलिटी थी कि यह सिमेट्रिक की को यह हैकर हैक कर सकता था या उसकी कॉपी रख सकता था। वो इस डेटा की
भी कॉपी रख लेता और फिर ये हैकर इस डेटा को डिक्रिप्ट कर सकता था। लेकिन अब हमने क्या किया? हमने सिंपली एक हाइब्रिड
अप्रोच ली जिसमें हमने सिमिट्रिक इंक्रिप्शन और एसिमिट्रिक इंक्रिप्शन दोनों को यूज़ किया। और हमने सबसे पहले
क्या किया? हमने सिमेट्रिक की को इंक्रिप्टेड फॉर्म में सर्वर के पास भेज दिया। तो अब यह जो क्लाइंट की सिमिट्रिक
की थी, इसकी एक कॉपी सर्वर के पास भी आ गई और क्लाइंट के पास भी आ गई। और फिर हमने इस सिमेट्रिक की से डेटा को ईजीली
डिक्रिप्ट कर लिया। तो यह देखी हमने हाइब्रिड अप्रोच जिसमें हमने सिमिट्रिक इंक्रिप्शन को भी देखा, सिमिट्रिक
इंक्रिप्शन को भी देखा और हमने एसिमिट्रिक इंक्रिप्शन को भी देखा। बेसिकली हमने दोनों को कंबाइन करके एक अप्रोच बनाई
जिसमें हमने सबसे पहले क्या किया? हमने सर्वर की पब्लिक की को क्लाइंट के पास भेजा और उस सर्वर की पब्लिक की से हमने इस
सिमिट्रिक की को इंक्रिप्ट कर दिया। हमने इस सर्वर की पब्लिक की से इस क्लाइंट की सिमिट्रिक की को इंक्रिप्ट कर दिया। और
फिर हमने इस इंक्रिप्टेड डेटा को भेज दिया यहां सर्वर के पास और फिर सर्वर ने अपनी प्राइवेट की से इस डेटा को डिक्रिप्ट
किया। तो उसे क्लाइंट की सिमिट्रिक की मिल गई। राइट? फिर हमने क्या किया? जो एक्चुअल हमारा डेटा था व्हिच इज़ ईमेल एंड पासवर्ड।
इसे हमने क्लाइंट की सिमिट्रिक की से इंक्रिप्ट किया और फिर हमने इस डेटा को भेज दिया यहां पे सर्वर के पास और यह
सर्वर के पास जब डेटा आया तो हमने उसे क्लाइंट की सिमिट्रिक की से डिक्रिप्ट कर लिया। तो ये देखी हमने एक हाइब्रिड अप्रोच
जहां हमने सिमिट्रिक और एसिमिट्रिक इंक्रिप्शन को यूज़ करके हमने डेटा ट्रांसफर को ईज़ली मैनेज किया। हमने और
डेटा को इंक्रिप्टेड फॉर्म में भेजा। अब हमने तो इतना अच्छा इंक्रिप्शन तैयार किया था। हमने क्लाइंट की सिमिट्रिक की ली
थी। क्लाइंट ने जो सिमेट्रिक की जनरेट की थी हमने उसे लेकर और सर्वर की प्राइवेट की और पब्लिक की इन तीनों को यूज़ करके एक ऐसा
इंक्रिप्शन तैयार किया था कि जहां पे हैकर कहीं से भी हमारे की को या हमारे कहीं से भी डेटा को एक्सेस नहीं कर पा रहा था। फिर
हम कैसे हैक हो सकते हैं? तो हमारे हैक होने की पॉसिबिलिटी कब थी कि किसी तरीके से यदि इस हैकर को यह सिमेट्रिक की का
एक्सेस हो जाए तो जब हम केवल सिमेट्रिक इंक्रिप्शन यूज़ कर रहे थे तब वहां पे हमें इस सिमेट्रिक की को भेजना पड़ रहा था। इस
सिमिट्रिक की को भेजना पड़ रहा था। तो पॉसिबिलिटी थी कि यह सिमेट्रिक की को यह हैकर एक्सेस कर लेता। तो फिर हमारा सिस्टम
हैक हो सकता था। लेकिन यहां पे तो हमने इस सिमिट्रिक की को इंक्रिप्टेड फॉर्म में सर्वर को भेजा। राइट? ये सिमेट्रिक की को
हमने इंक्रिप्टेड फॉर्म में सर्वर को भेजा था। तो फिर हम कैसे हैक हो सकते हैं? तो हमारे हैक होने की पॉसिबिलिटी तब आ जाती
है जब यदि ये हैकर यहां पे रिवर्स प्रॉक्सी की तरह काम करे। यहां पे वो एज अ रिवर्स प्रॉक्सी काम करे। अब रिवर्स
प्रॉक्सी इज़ समथिंग दैट आई हैव डिस्कस्ड इन माय पास्ट वीडियो। सो इफ यू वांट टू लर्न अबाउट रिवर्स प्रॉक्सी एंड प्रॉक्सी।
सो प्लीज गो एंड वॉच दैट वीडियो। तो अब यदि यह हैकर एज अ रिवर्स प्रॉक्सी काम करे तो हम कैसे हैक हो सकते हैं? हम इसे समझते
हैं। तो जब यह हैकर एज अ रिवर्स प्रॉक्सी काम करेगा तो इस हैकर का भी एक प्राइवेट की और पब्लिक की होगी। राइट? यहां पे
हमारे सर्वर की भी प्राइवेट की और पब्लिक की होगी। इस हैकर की भी प्राइवेट की और पब्लिक की होगी। और यहां पे हमारे क्लाइंट
के पास उसकी एक सिमिट्रिक की होगी। क्लाइंट के पास उसकी सिमिट्रिक की होगी। तो सबसे पहले क्या होगा कि सर्वर अपनी
पब्लिक की को सर्वर अपनी पब्लिक की को भेजेगा इस क्लाइंट को। तो जब यह सर्वर अपनी पब्लिक की को क्लाइंट को भेज रहा
होगा तो बीच में यह हैकर जो एज अ रिवर्स प्रॉक्सी काम कर रहा है वो इस सर्वर की पब्लिक की को अपने पास रख लेगा जो कि हमने
पहले भी देखा था। एंड इट इज़ ओके। तो वह क्या करेगा? इस सर्वर की पब्लिक की को अपने पास रख लेगा। और यह हैकर इसके बदले
में अपनी पब्लिक की को हैकर अपनी पब्लिक की को इस क्लाइंट को भेज देगा। तो हैकर ने क्या किया? अपनी पब्लिक की को इस क्लाइंट
को भेज दिया। अब हैकर ने जब अपनी पब्लिक की को इस क्लाइंट को भेजा, तो क्लाइंट क्या करेगा? क्लाइंट समझेगा कि यह पब्लिक
की उसे सर्वर ने भेजी है। राइट? तो, यह क्लाइंट क्या करेगा? इस पब्लिक की को यूज़ करके पब्लिक की को यूज़ करके अपनी
सिमेट्रिक की को इंक्रिप्ट कर देगा। क्लाइंट क्या करेगा? इस पब्लिक की को यूज़ करके अपनी सिमेट्रिक की को इंक्रिप्ट कर
देगा। और फिर उस सिमेट्रिक की को वो यह जो इंक्रिप्टेड डेटा हमारे पास यहां पे आएगा। लेट मी जस्ट टेक एन आइकॉन। तो यहां पे हम
यह लॉक वाला आइकॉन लेते हैं। तो यह लॉक वाला आइकॉन क्या बताता है? कि क्लाइंट ने इस पब्लिक की को यूज़ करके इस पब्लिक की को
यूज़ करके अपनी सिमेट्रिक की को इंक्रिप्ट कर दिया और फिर उसने इसे भेज दिया यहां पे सर्वर को। तो अब यहां पे जब यह सर्वर के
पास जा रही होगी तो यहां पे बीच में हमारा कौन है? हैकर। तो वो हैकर क्या करेगा? इस डेटा को इंक्रिप्टेड डेटा को अपने पास रख
लेगा। अब हैकर ने क्या किया? इस डेटा को अपने पास रख लिया। अब यहां पे ये डेटा इंक्रिप्टेड है और इसे डिक्रिप्ट कौन
करेगा? प्राइवेट की। और अब ये जो डेटा है इसे हमने इंक्रिप्ट किससे किया था? हमने इस पब्लिक की से किया था। और यह पब्लिक की
किसकी थी? यह पब्लिक की थी हैकर की। सिंपली क्या हुआ था कि जब यह सर्वर ने अपनी पब्लिक की भेजी थी यहां पे क्लाइंट
को तो बीच में हैकर ने सर्वर की पब्लिक की ले ली थी। बीच में हैकर ने क्या किया था? इस सर्वर की पब्लिक की ले ली थी। उसे अपने
पास रख लिया था और हैकर ने क्या किया? अपनी पब्लिक की को यहां पे क्लाइंट को दे दिया। और उसके बाद क्लाइंट को यह लगा कि
यह जो पब्लिक की है, यह सर्वर की है। तो, उसने इस पब्लिक की को यूज़ करके अपनी सिमेट्रिक की को इंक्रिप्ट कर दिया। यहां
पे उसने अपनी सिमेट्रिक की को इंक्रिप्ट कर दिया। और फिर उसने इस इंक्रिप्टेड डेटा को यहां पे सर्वर को भेज दिया। और बीच में
यह डेटा को यहां पे हैकर ने एक्सेस कर लिया। अब ये हैकर ने यहां पे डेटा एक्सेस किया रख लिया और यह डेटा फिर यह हैकर अपनी
प्राइवेट की से अपनी प्राइवेट की से वो डिक्रिप्ट कर लेगा। अपनी प्राइवेट की से यह हैकर इस डेटा को डिक्रिप्ट कर लेगा। और
यहां पे हैकर क्या करेगा? अपनी एक की यहां पे सर्वर को भेज देगा। तो अब यहां पे हैकर को हैकर को क्लाइंट की सिमेट्रिक की का
एक्सेस मिल गया। राइट? क्यों? क्योंकि क्लाइंट ने यहां पर अपनी सिमेट्रिक की को हैकर की पब्लिक की से इंक्रिप्ट कर दिया
था। राइट? तो यहां पे जब उसने डाटा को भेजा तो हैकर ने क्या किया? हैकर ने अपनी प्राइवेट की से इस डेटा को डिक्रिप्ट कर
लिया। और यहां पे अब इस हैकर को इस क्लाइंट की सिमिट्रिक की का इस क्लाइंट की सिमेट्रिक की का एक्सेस मिल गया। तो यहां
पे इस हैकर को इस क्लाइंट की सिमिट्रिक की का एक्सेस मिल गया। अब यह क्लाइंट क्या करेगा? अब यह क्लाइंट इस सिमेट्रिक की को
यूज करके इस सिमेट्रिक की को यूज करके जो हमारा एक्चुअल डाटा है लेट्स से ईमेल एंड पासवर्ड तो यह क्लाइंट इस सिमेट्रिक की को
यूज़ करके इस एक्चुअल डेटा को इंक्रिप्ट कर देगा। उसके बाद क्या करेगा? यह क्लाइंट इस इंक्रिप्टेड डाटा को यहां पे भेज देगा इस
सर्वर को। लेट मी टेक दिस ईमेल एंड पासवर्ड एज़ वेल। तो उसके बाद ये क्लाइंट इस डेटा को यहां पे भेज देगा। अब ये डेटा
वापस से कौन एक्सेस कर लेगा? वापस से ये डेटा हैकर एक्सेस कर लेगा। और इस डेटा को डिक्रिप्ट करने के लिए उसे अब सिमिट्रिक
की की नीड है। राइट? क्लाइंट की सिमिट्रिक की की उसे नीड है। और अब उसके पास ये क्लाइंट की सिमिट्रिक की तो है तो वो इस
डेटा को ईज़ली डिक्रिप्ट कर लेगा। तो ऐसे करके यदि ये हमारा हैकर एज अ रिवर्स प्रॉक्सी काम करता है तो वो हमारे डेटा को
ईजीली एक्सेस कर सकता है। इवन आफ्टर सिमिट्रिक एंड एसिमिट्रिक इंक्रिप्शन। तो भले ही हम सिमेट्रिक और एसिमिट्रिक
इंक्रिप्शन का यूज़ करके एक पावरफुल इंक्रिप्शन बनाते हैं लेकिन तब भी हमारा डेटा हैक हो सकता है। यदि हैकर एज अ
रिवर्स प्रॉक्सी काम करे तो तो अब हम क्या कर सकते हैं? तो हमें प्रॉब्लम कहां आ रही थी कि जब यह
हमारा क्लाइंट कोई भी इंफॉर्मेशन को इस सर्वर को भेज रहा था तो बीच में यह हैकर मैन इन द मिडिल इस इंफॉर्मेशन को एक्सेस
कर ले रहा था। तो ये प्रॉब्लम हमें आ रही थी। तो इस प्रॉब्लम को हमें दूर करना है। अब हमने इंक्रिप्शन का यूज़ करके सिमिट्रिक
और एसिमिट्रिक इंक्रिप्शन का यूज़ करके कुछ हद तक इस प्रॉब्लम को सॉल्व कर दिया था। लेकिन तब भी हमें एक वैलिडेशन की एक
ट्रस्ट की प्रॉब्लम आ रही थी कि यदि यहां पे हैकर एज अ रिवर्स प्रॉक्सी काम करता है तब हमारा यह डेटा वापस से चोरी हो सकता
है। तो अब यहां पे हमें एक ट्रस्टेड अथॉरिटी की नीड है। राइट? तो यहां पे अब हमारे एसएसएल सर्टिफिकेट्स आते हैं पिक्चर
में कि यहां पे हम डेटा को भेजने से पहले लेट्स से हम ये डेटा भेज रहे हैं। तो इस डेटा को अब भेजने से पहले हम वैलिडेट कर
लें कि हम जहां डेटा भेज रहे हैं वो डेटा सही जगह जा रहा है या नहीं। तो हमें यहां पे एक वैलिडेशन ऑफ वेरिफिकेशन की नीड है।
राइट? और यह हमें कौन प्रोवाइड करता है? यह हमें प्रोवाइड कराते हैं एसएसएल सर्टिफिकेट्स। तो एसएसएल सर्टिफिकेट्स में
क्या होता है कि जब भी हम कोई सर्वर बनाते हैं लेट से आपने कोई एप्लीकेशन बनाया तो जब भी आप अपने सर्वर को बना रहे होते हैं
तो हम इस सर्वर को वेरीफाई करते हैं। हम क्या करते हैं? हम इस सर्वर को वेरीफाई करते हैं। अब इस सर्वर को वेरीफाई करने के
लिए हम एसएसएल सर्टिफिकेट्स बनाते हैं। एसएसएल सर्टिफिकेट्स बनाते हैं। बेसिकली यह सर्टिफिकेट हम खुद नहीं बनाते। हम यह
किसी ट्रस्टेड अथॉरिटी से ट्रस्टेड अथॉरिटी से साइन करवाते हैं। अब ये ट्रस्टेड अथॉरिटीज क्या होती हैं? तो एक
बार इसकी लिस्ट हम देख लेते हैं। तो यहां पे हम देख लेते हैं कुछ एसएसएल सर्टिफिकेट्स बनाने वाली अथॉरिटीज को।
एसएसएल सर्टिफिकेट साइन करने वाली अथॉरिटीज को। तो उसमें आ जाती है हमारी ये कुछ अथॉरिटीज जो हमारे एसएसएल
सर्टिफिकेट्स बनाती हैं। एसएसएल सर्टिफिकेट्स साइन करके देती है। तो हम क्या करते हैं? जब भी हम हमारा सर्वर
बनाते हैं तो हमने अपना सर्वर बनाया। अब हमें उसे वेरीफाई करना है। तो उसके लिए हम एसएसएल सर्टिफिकेट्स बनवाते हैं। तो हम
किसी एक एसएसएल सर्टिफिकेट बनाने वाली अथॉरिटी के पास जाएंगे। लेट्स से इस केस में हम जाते हैं गो डैडी के पास और हम
उनसे बोलेंगे कि हमें अपने एप्लीकेशन के लिए सर्वर के लिए एक एसएसएल सर्टिफिकेट बनाना है तो यह बोलेगा गो डैडी बोलेगा ओके
कि ठीक है हम आपके लिए एसएसएल सर्टिफिकेट बना देंगे तो यह गो डैडी बोलेगा हम आपके लिए एसएसएल सर्टिफिकेट बना देंगे और उसके
बदले में वह कुछ चीजें पूछेगा वह पूछेगा हमारा डोमेन नेम वो क्या पूछेगा हमारा हमारा डोमेन नेम सबसे पहले चीज वह यह
पूछेगा हमारा डोमेन नेम दूसरा वह पूछेगा हमारे सर्वर की पब्लिक की हमारे सर्वर की पब्लिक की यह दूसरी इंफॉर्मेशन और उसके
बाद वो कर देगा इस सर्टिफिकेट पे साइन इस सर्टिफिकेट पे वो साइन कर देगा तो यह जो हमारा सर्टिफिकेट होगा यह बेसिकली तीन
चीजों का कॉम्बिनेशन होगा। पहला डोमेन नेम तो इस सर्टिफिकेट में एक होगा हमारा डोमेन नेम। अब आपके एप्लीकेशन का कुछ भी डोमेन
नेम हो सकता है। लेट्स से मेरे केस में हो सकता है www. Dzin karl.com जो हमारा दूसरा इंफॉर्मेशन
होगी वो होगी पब्लिक की ऑफ़ सर्वर। यहां पे हमारे सर्वर की पब्लिक की होगी और जो तीसरी इंफॉर्मेशन होगी वो होगी सिग्नेचर
या साइन। अब ये साइन हम कैसे करते हैं? तो जैसे हमारे केस में अह हमारा सर्टिफिकेट कौन बना रहा है? हमारा सर्टिफिकेट बना रहा
है यह गो डैडी। तो ये जो हमारा सिग्नेचर होगा वो बेसिकली कॉम्बिनेशन होगा पब्लिक की ऑफ सर्वर एंड पब्लिक की ऑफ अथॉरिटी
हमारे केस में गो डैडी तो इनका कॉम्बिनेशन होगा और फिर हम इसे कर देंगे इंक्रिप्ट और हम इसे इंक्रिप्ट करके इस सर्टिफिकेट में
रख देंगे तो इसे हम बोलेंगे कि हमने सर्टिफिकेट साइन कर दिया। तो ठीक है। अब हमारे पास आ गया सर्टिफिकेट। अब हम देखते
हैं कि सर्टिफिकेट आने के बाद कैसे हमारे क्लाइंट और सर्वर डाटा ट्रांसफर करेंगे। कैसे वह कम्युनिकेट करेंगे। कैसे वह डेटा
को इंक्रिप्टेड फॉर्म में ट्रांसफर करेंगे और कैसे हम अ हैकर से मैन इन द मिडिल से बच सकते हैं। तो सेम हमारे पास एक क्लाइंट
होगा। एक होगा हमारे पास सर्वर। तो अब हम क्या करेंगे? हम इस सर्टिफिकेट को हमारे सर्वर को दे देंगे। और यह सर्वर क्या
करेगा? सबसे पहले यह सर्वर अपनी पब्लिक की लेगा। अपनी पब्लिक की लेगा और इस पब्लिक की को भेज देगा कहां पे? इस क्लाइंट के
पास। अब जब यह सर्वर अपनी पब्लिक की को इस क्लाइंट को भेज रहा होगा तो पॉसिबल पॉसिबिलिटी है कि इस पब्लिक की को हैकर भी
रख सकता है अपने पास। राइट? इस पब्लिक की की कॉपी को हैकर भी अपने पास रख सकता है। तो ठीक है। एक कॉपी हो गई हैकर के पास।
व्हिच इज़ ओके। और यह वाली पब्लिक की की कॉपी चली गई क्लाइंट के पास। अब उसके बाद क्या होगा कि यहां पे यह हैकर अपनी पब्लिक
की भेज सकता है। यह हैकर अपनी पब्लिक की भेज सकता है इस क्लाइंट को। तो यह हैकर यहां पे अपनी पब्लिक की भेज सकता है
क्लाइंट को। ऐसा बता के कि यह की सर्वर ने भेजी है। तो, यह एक प्रॉब्लम आ सकती है। तो, यह सर्वर क्या करेगा? इस पब्लिक की के
साथ-साथ वो इस सर्टिफिकेट को भी भेज देगा। वो क्या करेगा? वो इस सर्टिफिकेट को भी इस सर्टिफिकेट को भी कंप्लीट सर्टिफिकेट को
भी इस क्लाइंट को दे देगा। तो अब इस क्लाइंट के पास क्या हो गया? इस क्लाइंट के पास सर्वर की पब्लिक की भी आ गई और
सर्टिफिकेट भी आ गया। तो अब ये सर्वर इस क्लाइंट से बोलेगा कि देखो क्लाइंट जो मैंने तुम्हें पब्लिक की भेजी है जो मैंने
तुम्हें पब्लिक की भेजी है उस पब्लिक की को तुम वेरीफाई कर लो। उस पब्लिक की को तुम इस एसएसएल सर्टिफिकेट के जो सिग्नेचर
है उससे वेरीफाई कर लो। तो यह क्लाइंट क्या करेगा? यह क्लाइंट जाएगा गो डैडी के पास। राइट? यह क्लाइंट जाएगा गो डैडी के
पास और उससे यह इसकी पब्लिक की मांगेगा। यह क्लाइंट क्या करेगा? इस गो डैडी से उसकी पब्लिक की मांगेगा। तो अब यह क्लाइंट
के पास क्या हो गया? यह क्लाइंट के पास एक हो गई पब्लिक की ऑफ सर्वर और उसके पास हो गई पब्लिक की ऑफ़ गो डैडी। तो, यह क्लाइंट
के पास यह दो चीजें आ गई। अब यहां पे इस क्लाइंट के पास सर्वर की भी पब्लिक की है और G डैडी की भी पब्लिक की है। तो, यह
क्लाइंट क्या करेगा? सिंपली इन दोनों को इंक्रिप्ट कर देगा और वह मिला के देखेगा कि यह सेम सिग्नेचर आ रहा है या नहीं।
हमने क्या किया था? हमने ये जो यहां पे साइन किया था, यह क्या था? यह कॉम्बिनेशन था पब्लिक की ऑफ़ सर्वर का प्लस पब्लिक की
ऑफ़ कोड आईडी का। तो, ऐसे हमारा यह सिग्नेचर बना था। बेसिकली हमने इसे यहां पे इंक्रिप्ट कर दिया था। हमने इसे यहां
पे इंक्रिप्ट कर दिया था। तो अब यह क्लाइंट के पास भी पब्लिक की है, सर्वर की पब्लिक की है और गुड डडी की भी पब्लिक की
है। तो वह इसे इंक्रिप्ट करेगा। वो इसे इंक्रिप्ट करेगा और फिर यह मिला लेगा, मैच कर लेगा कि सेम सिग्नेचर उसे मिल रहा है
या नहीं। यदि उसे सेम सिग्नेचर मिलता है तो यस इट इज़ वेरीिफाइड कि यह जो पब्लिक की है वो सर्वर की है और यह जो सर्टिफिकेट है
वो वैलिड है। इन सिंपल वर्ड्स हमने क्या किया कि हमने सर्वर की पब्लिक की ली और हमने इस कोड आईडी की पब्लिक की ली और हमने
उसके बाद दोनों को इंक्रिप्ट किया और इंक्रिप्ट करने के बाद जो हमें सिग्नेचर मिला जो हमें सिग्नेचर मिला उस सिग्नेचर
को हमने मैच कर लिया। इससे हमारे ये सर्टिफिकेट के सिग्नेचर से यदि दोनों मैच हो गए तो यस जो हमें पब्लिक की मिली थी
सर्वर से इट्स अ वेरीिफाइड की और यह हमारा सर्टिफिकेट एक वैलिड सर्टिफिकेट है। तो अब हम यहां पे अपने क्लाइंट को डेटा भेजने को
बोल सकते हैं इस सर्वर को। तो अब हमारे इस क्लाइंट और सर्वर के बीच में डेटा ट्रांसफर हो सकता है। तो यह देखा हमने
एसएसएल सर्टिफिकेट्स को। अब लेट्स से कि यदि यहां पे यह पब्लिक की सर्वर की पब्लिक की यह क्लाइंट तक पहुंच ही नहीं पाई। यह
सर्वर की पब्लिक की यह सर्वर की पब्लिक की इस क्लाइंट तक नहीं पहुंच पाई। हैकर ने क्या किया? हैकर ने अपनी पब्लिक की इस
क्लाइंट को दे दी। तो क्लाइंट के पास यह पब्लिक की जाएगी हैकर की। तो यह क्लाइंट क्या करेगा? क्लाइंट गो डैडी से पब्लिक की
मांगेगा। गो डैडी से यहां पे वो पब्लिक की मांगेगा। तो वो यहां पे गो डैडी की पब्लिक की को रखेगा। और यहां पे वो अब सर्वर की
जगह सर्वर की जगह वो यहां पे हैकर की पब्लिक की रखेगा। हैकर की पब्लिक की को रखेगा। और फिर यह इन दोनों को मिला के
इंक्रिप्ट करेगा। इंक्रिप्ट करने के बाद जो उसे अब सिग्नेचर मिलेगा वो सेम नहीं होगा इस सिग्नेचर से। तो यहां पे पता चल
जाएगा कि कि ठीक है ये जो क्लाइंट को पब्लिक की मिली थी ये जो क्लाइंट को यहां पे पब्लिक की मिली थी ये वैलिड नहीं थी ये
वेरीिफाइड नहीं थी और यह शायद सर्वर की नहीं थी यह किसी हैकर की थी मैन इन द मिडिल की थी तो यह होता है हमारा एसएसएल
सर्टिफिकेट और ऐसे करके एसएसएल सर्टिफिकेट क्लाइंट और सर्वर के बीच में अटैक फ्री एनवायरमेंट क्रिएट करते हैं जिससे क्लाइंट
और सर्वर के बीच में ईजीली इंटरेक्शन होता है कम्युनिकेशन होता है और डेटा ट्रांसफर होता है। अब यह जो हमारे एसएसएल
सर्टिफिकेट अथॉरिटीज होती हैं जो हमें एसएसएल सर्टिफिकेट साइन करके देती हैं। यह इसके बदले में हमसे कुछ पैसे चार्ज करती
हैं। यह ऑब्वियस सी बात है कि इफ दे आर प्रोवाइडिंग समथिंग टू अस तो दे विल चार्ज। तो वो उसके बदले में हमसे पैसे
चार्ज करती हैं। अब यह एसएसएल सर्टिफिकेट हम खुद के भी बना सकते हैं। देयर आर प्लेंटी ऑफ रिसोर्सेज। जहां आप देख सकते
हैं कि खुद के हम एसएसएल सर्टिफिकेट कैसे बना सकते हैं। तो यस हम अपने खुद के भी एसएसएल सर्टिफिकेट बना सकते हैं। पर यह जो
हमारे एसएसएल सर्टिफिकेट होंगे हमारे खुद के एसएसएल सर्टिफिकेट होंगे दे विल नॉट बी वेरीिफाइड। वो वेरीिफाइड नहीं होंगे। और
हम इसे बोलते हैं सेल्फ साइन सर्टिफिकेट। इसे फिर हम बोलेंगे सेल्फ साइन सर्टिफिकेट। तो ये देखा हमने एसएसएल
सर्टिफिकेट के बारे में और हमने देखा कि ये कैसे काम करता है और हमने देखा कि एसएसएल सर्टिफिकेट के आने से क्लाइंट और
सर्वर ईजीली डेटा ट्रांसफर कर सकते हैं। जैसे ही क्लाइंट को यह पता लगेगा कि यह जो उसके पास पब्लिक की आई थी, वह वेरीिफाइड
रिसोर्स से आई थी, वेरीिफाइड सर्वर से आई थी, तो फिर उनके बीच में ईज़ली डाटा ट्रांसफर होने लगेगा। और यह वेरिफिकेशन
कैसे पॉसिबल है? थ्रू दिस एसएसएल सर्टिफिकेट। सो आई गेस दिस इज ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट
वीडियो। सो टिल देन ब बाय। शो सम लाभ। थैंक्स। [संगीत]
हे एवरीवन, वेलकम बैक। वेलकम टू दिस अल्टीमेट सिस्टम डिज़ प्लेलिस्ट सीरीज। और आज के इस वीडियो में हम बात करने वाले हैं
डेटाबेस चॉइस के बारे में कि कब हमें कौन सा डेटाबेस यूज करना है और क्यों करना है। तो स्टार्ट करते हैं एंड लेट मी जस्ट
मिनिमाइज माय स्क्रीन। ओके? तो स्टार्ट करते हैं और सबसे पहले आप यह लाइन पढ़िए कि हाउ गुड योर डिज़ाइन इज़ एंड हाउ वेल यू कैन
स्केल योर सिस्टम डिपेंड्स ऑन द चॉइस ऑफ़ डेटाबेस दैट यू हैव यूज़्ड। सो यस इट्स करेक्ट कि आपकी डिजाइन कितनी अच्छी होगी
और कितने अच्छे से आप अपने सिस्टम को स्केल कर सकते हैं। इट डिपेंड्स ऑन डेटाबेस चॉइस। तो यदि आप सिस्टम डिज़ाइन
इंटरव्यू के लिए प्रिपेयर कर रहे हैं या लार्ज स्केल सिस्टम बिल्ड कर रहे हैं तो यस डेटाबेस चॉइस मैटर्स अ लॉट। अब यह जो
हमारी डेटाबेस चॉइस होती है, वह फंक्शनल रिक्वायरमेंट्स को अफेक्ट नहीं करती। लेकिन यस इट कैन इंपैक्ट नॉन फंक्शनल
रिक्वायरमेंट्स। अब फंक्शनल रिक्वायरमेंट्स, नॉन फंक्शनल रिक्वायरमेंट्स और ऐसे डिफरेंट सिस्टम्स
हम ऑलरेडी डिस्कस कर चुके हैं हमारी सिस्टम डिज़ाइन प्लेलिस्ट में। और वहां हमने डेटाबेस चॉइस को भी काफी डिस्कस किया
था कि कब हमें कौन सा डेटाबेस यूज करना है। सो इफ यू हैव ऑलरेडी वॉच्ड दैट प्लेलिस्ट तो आपको आईडिया होगा कि कब हमें
कौन सा डेटाबेस यूज़ करना होता है। एंड इफ यू हैवेंट वॉच्ड दैट सीरीज तो भी कोई प्रॉब्लम नहीं है। इस वीडियो में हम वो
सारी चीजें वापस से डिस्कस करेंगे। तो अब यहां पे हम सबसे पहले देखते हैं कि जो हमारा डेटाबेस चॉइस होता है वो किन
फैक्टर्स पे डिपेंड करता है। तो उसमें सबसे पहला पॉइंट है स्ट्रक्चर ऑफ द डेटा। मतलब हमारी डेटाबेस चॉइस डेटा के
स्ट्रक्चर पे डिपेंड करती है कि हमारा डेटा स्ट्रक्चरर्ड है या अनस्ट्रक्चरर्ड है। तो इस पे हमारी डेटाबेस चॉइस डिपेंड
करती है। अब स्ट्रक्चरर्ड डेटा क्या होता है? जिसमें हम डाटा हमारा एक फिक्स्ड फॉर्मेट में होता है। डाटा ऑर्गेनाइज्ड
होता है। फिक्स्ड फॉर्मेट लेट्स से कि रोज़ और कॉलम्स के फॉर्म में यदि हमारा डेटा रोज़ एंड कॉलम्स के फॉर्म में है तो यस इट
इज़ एन ऑर्गेनाइज़्ड डेटा और ये एक फिक्स्ड फॉर्मेट में है। तो हम बोल सकते हैं कि ये एक स्ट्रक्चरर्ड डेटा है। अब जो हमारा
दूसरा टाइप का डेटा होता है वो होता है अनस्ट्रक्चरर्ड डेटा। अनस्ट्रक्चरर्ड डेटा। तो अनस्ट्रक्चरर्ड डेटा क्या होता
है? जिसमें डेटा का कोई फिक्स्ड फॉर्मेट नहीं होता। फिक्स्ड हम स्कीमा या प्रीडफाइंड मॉडल नहीं रखते हैं डेटा का तो
उसे हम बोलते हैं अनस्ट्रक्चरर्ड डेटा। अनस्ट्रक्चरर्ड डेटा। तो यस डेटाबेस चॉइस डेटा के
स्ट्रक्चर पर डिपेंड करती है। अब ये डेटा हमारा स्ट्रक्चरर्ड भी हो सकता है और अनस्ट्रक्चरर्ड भी हो सकता है। अब जो
दूसरा पॉइंट है हमारा जो दूसरा फैक्टर है वो है क्वेरी पैटर्न। अब लेट्स से कि आपको कोई ऐसा एप्लीकेशन बनाना है जहां आपको दो
टेबल्स के रिजल्ट को कंबाइन करना है। बेसिकली हम सिंपल वर्ड्स में कह सकते हैं कि हमें जॉइन यूज़ करना है हमारे सिस्टम
में या हमारे डेटाबेस टेबल्स में। तो, यह एक हमारा क्वेरी पैटर्न हो गया। हम एसेट प्रॉपर्टीज को मैनेज कर सकते हैं। एसेट
प्रॉपर्टीज को मेंटेन कर सकते हैं। यह एक हमारा क्वेरी पैटर्न हो गया। अब लेट्स से हमें ऐसा कोई डेटा स्टोर चाहिए जो की
वैल्यू की वैल्यू के फॉर्म में डेटा को स्टोर करे। तो ये एक हमारा क्वेरी पैटर्न हो गया कि हम बोलेंगे कि गेट मी द वैल्यू
ऑफ़ दिस की दिस पर्टिकुलर की। तो ये एक हमारा क्वेरी पैटर्न हो गया। तो यस जो हमारा डेटाबेस चॉइस होता है वो क्वेरी
पैटर्न पे भी डिपेंड करता है। यदि हमें जॉइन यूज़ करना है, एसेट प्रॉपर्टीज यूज़ करना है तो हम डिफरेंट डेटाबेस यूज़
करेंगे। हमें की वैल्यू काइंड ऑफ़ डेटा स्टोर यूज़ करना है। या लेट्स से हमें कोई ऐसा डेटाबेस चाहिए जहां हम बोलें कि गेट
मी द वैल्यू ऑफ़ दिस की तो ये डेटा हमें मिल जाए। तो यदि हमारे पास इस टाइप के क्वेरी पैटर्न है तो हम दूसरे डेटाबेस यूज़
करेंगे। तो यस डेटाबेस चॉइस क्वेरी पैटर्न पे भी डिपेंड करती है। अब जो तीसरा पॉइंट है हमारा वो है अमाउंट ऑफ स्केल यू नीड टू
हैंडल। तो यस डेटाबेस चॉइस हैवली डिपेंड्स ऑन द अमाउंट ऑफ स्केल वी नीड टू हैंडल। यदि हमारे एप्लीकेशन में लेट्स से कम
यूज़र्स हैं या बहुत कम डेटा है। बेसिकली हम कह सकते हैं कि हमारा एप्लीकेशन स्मॉल स्केल एप्लीकेशन है। तो हम सीक्वल डेटाबेस
यूज़ कर सकते हैं। रिलेशनल डेटाबेस यूज़ कर सकते हैं। जैसे पोस्ट ग्रेसी सीक्वल, माय सीक्वल बिकॉज़ दे आर वेरी इज़ टू मैनेज एंड
दे सपोर्ट ट्रांजैक्शंस। तो हम आरडीबीएमएस डेटाबेस यूज़ कर सकते हैं। अब लेट्स से हमारे एप्लीकेशन में मिलियंस ऑफ रिकॉर्ड्स
हैं और थाउजेंड्स में यूजर हैं। स्टिल हम इस डेटा को और इतने यूज़र्स को आरडीबीएमएस डेटाबेस से इज़ली मैनेज कर सकते हैं। तो
यहां भी हम सीक्वल डेटाबेस या आरडीबीएमएस डेटाबेस के साथ जा सकते हैं। अब लेट्स से कि हमारे एप्लीकेशन में बिलियंस ऑफ
रिकॉर्ड्स हैं एंड मिलियंस ऑफ यूज़र्स हैं। तो फिर हमें नो सीक्वल डेटाबेससेस की नीड होगी। तो यस डेटाबेस चॉइस आल्सो डिपेंड्स
ऑन अमाउंट ऑफ स्केल वी नीड टू हैंडल। तो ये देखे हमने कुछ फैक्टर्स जिन पे हमारे डेटाबेस चॉइस डिपेंड करता है। तो अब देखते
हैं हम अपने पहले सॉल्यूशन को जिसे हम बोलेंगे कैशिंग सॉल्यूशन। तो कैशिंग सॉल्यूशन में अह सबसे पहले हम देखते हैं
इनके यूज़ केसेस। तो यदि हमारे पास फ्रीक्वेंटली आस्क्ड डेटा है। फ्रीक्वेंटली आस्क्ड डेटा है। लेट्स से
हमारे एप्लीकेशन में कुछ डेटा बार यूज़र्स बार-बार एक्सेस कर रहे हैं। व्हिच इज़ कॉल्ड फ्रीक्वेंटली आस्क्ड डेटा। तो यदि
हमारे एप्लीकेशन में फ्रीक्वेंटली आस्क्ड डेटा है तो इस केस में क्या होगा? इस केस में हमें रिजल्ट्स के लिए बार-बार डेटाबेस
को क्वेरी करना पड़ेगा। राइट? अब लेट्स से कि यहां से क्लाइंट से सर्वर तक रिक्वेस्ट जाने में 2 मिली सेकंड का टाइम लग रहा है।
उसके बाद ये सर्वर को डेटाबेस तक जाने में लेट्स से 2 मिली सेकंड का और टाइम लग रहा है। फिर ये डेटाबेस क्या करेगा? डेटाबेस
सर्वर को रिजल्ट सेंड करेगा। राइट? तो लेट्स से इसमें भी 2 मिली सेकंड का टाइम लग रहा है। 2 मिली सेकंड का टाइम लग रहा
है। और फिर उसके बाद ये सर्वर डेटा को अरेंज करके रिजल्ट को या रिस्पांस को अरेंज करके वापस इस क्लाइंट को भेजेगा। अब
लेट्स से इसमें भी हमें 2 मिलीसे का टाइम लग रहा है। और ये एक बेसिक सा ऑपरेशन है। तो यदि हम इसका टोटल टाइम कैलकुलेट करें
तो इट वुड बी 8 मिलीसे। 8 मिलीसे। तो हमें हम कह सकते हैं कि हमें एक बेसिक से ऑपरेशन के लिए 8 मिली सेकंड
का टाइम लग रहा है और लेट्स से ये यूजर बार-बार इस डेटा को सर्वर से मांग रहा है। तो ये हो जाएगा हमारा फ्रीक्वेंटली आस्क्ड
डेटा। तो इस डेटा के लिए सर्वर को बार-बार डेटाबेस के पास जाना पड़ेगा। व्हिच इज़ नॉट अ गुड थिंग। और लेट्स से हमारे एप्लीकेशन
में नंबर ऑफ यूज़र्स भी ज्यादा हो जाएंगे। तो फिर हर यूजर के लिए ये सर्वर को बार-बार डेटाबेस के पास जाना पड़ेगा। वो
भी मल्टीपल टाइम्स हर यूजर के लिए मल्टीपल टाइम्स व्हिच इज ऑब्वियसली नॉट अ गुड थिंग। तो हम क्या करेंगे? हम यह डेटा जो
भी हमारा फ्रीक्वेंटली आस्क्ड डेटा है उसे हम कैश कर लेंगे। उसे हम लोकली कैश कर लेंगे। फिर क्या होगा कि जब यह क्लाइंट
रिक्वेस्ट करेगा तो यह रिक्वेस्ट जाएगी सर्वर के पास। लेट्स से इस रिक्वेस्ट को जाने में लग रहा है 2 मिलीसे का टाइम। तो
फिर सर्वर क्या करेगा? सर्वर सबसे पहली बार में यह डेटा डेटाबेस से लेके आएगा और फिर क्या करेगा? उस डेटा को वह इस कैश में
स्टोर कर लेगा। तो जब नेक्स्ट टाइम यह यूजर रिक्वेस्ट करेगा तो यह यूजर के यूजर की रिक्वेस्ट आएगी सर्वर के पास तो यह
सर्वर अब डेटाबेस के पास ना जाके कैश से इस डेटा को लेकर आएगा और फिर यह डेटा यूजर को सर्व कर देगा। अब लेट्स से कैश तक जाने
में सर्वर को 1 मिलीसे का टाइम लग रहा है और कैश से डाटा लाने में भी 1 मिलीसे का टाइम लग रहा है। तो अब यहां पे इफ यू विल
कैलकुलेट तो ये हो जाएगा टोटल 2 + 2 4 5 एंड सिक्स। तो जो रिक्वेस्ट हमारी डेटाबेस के थ्रू 8 मिलीसे में फुलफिल हो रही थी वो
यहां पे 6 मिलीसे में फुलफिल हो रही है थ्रू कैश मेमोरी। अब कैश में कम टाइम क्यों लग रहा है? क्योंकि कैश मेमोरी जो
होती है, वह इन मेमोरी सॉल्यूशन है। इस वजह से वह फास्ट होती है। तो, यह देखा हमने हमारा पहला यूज़ केस कैश सॉल्यूशन का,
कैशिंग सॉल्यूशन का जहां हमारे पास फ्रीक्वेंटली आस्क्ड डेटा था। सो, इफ वी हैव फ्रीक्वेंटली आस्क्ड डेटा, तो हम उसे
कैश कर लेंगे। अब जो हमारा दूसरा यूज केस है वो ये है कि लेट्स से हमारा कोई ई-कॉमर्स एप्लीकेशन है। Amazon जैसा कोई
ई-कॉमर्स एप्लीकेशन है। अब उसमें एक हो सकती है हमारे पास यूजर सर्विस। राइट? और एक हो सकती है हमारी इन्वेंटरी सर्विस।
इन्वेंटरी सर्विस बेसिकली क्या कर रही है कि ये सारे प्रोडक्ट्स का जो करंट स्टॉक है, करंट स्टॉक है, उनको मैनेज करती है।
ओके? अ ये Amazon सिस्टम डिजाइन आई हैव ऑलरेडी डिस्कस्ड। सो इफ यू वांट टू लर्न हाउ Amazon वर्क्स, सो प्लीज गो एंड वॉच
दैट वीडियो। तो यह हमारे पास दो सर्विज हैं ई-कॉमर्स एप्लीकेशन की। एक यूजर सर्विस है, एक इन्वेंटरी सर्विस है। अब
लेट्स से कि इस यूजर सर्विस को किसी पर्टिकुलर ऑपरेशन के लिए इन्वेंटरी सर्विस को हर बार कॉल करना पड़ता है। अब लेट्स से
इन्वेंटरी सर्विस को कॉल करने में 2 मिलीसे का टाइम लगता है और वहां से रिस्पांस आने में भी लेट्स से 2 मिली
सेकंड का टाइम लगता है। तो यहां पे हम एक रिमोट कॉल कर रहे हैं। राइट? रिमोट कॉल टू अ डिफरेंट सर्विस। तो ये ऑब्वियसली
लेटेंसी को इनक्रीस कर देती है। तो हम क्या करेंगे? हम इस इन्वेंटरी सर्विस के रिस्पांस को कैश कर लेंगे। तो उसके बाद यह
यूजर सर्विस को इस इन्वेंटरी के पास नहीं जाना पड़ेगा। वो सिंपली यहां कैश से डेटा या रिस्पांस को लेगा और अपने बाकी के
टास्क फुलफिल करेगा। तो अब यह जो हमारी लेटेंसी बढ़ रही थी इन्वेंटरी सर्वर सर्विस तक हमें जाना पड़ रहा था। बेसिकली
हमें रिमोट कॉल करना पड़ रहा था। वह अब हमें नहीं करना पड़ेगा। हम क्योंकि इस इन्वेंटरी सर्विस के रिस्पांस को कैश कर
लेंगे। तो उससे क्या होगा कि यह यूजर सर्विस इन्वेंटरी सर्विस के पास ना जाके कैश से ही इसका इन्वेंटरी सर्विस का
रिस्पांस ले लेगी और फिर सारे टास्क जो उसे फुलफिल करने हैं वो करेगी। तो ये देखे हमने कुछ कैशिंग सॉलशंस और उनके यूज़ केसेस
कि हमें कैशिंग सॉलशंस को कब यूज़ करना है। तो हमने देखा कि इफ वी हैव फ्रीक्वेंटली आस्क्ड डेटा तो हम कैशिंग का यूज़ करेंगे।
और यदि हमें कोई रिमोट कॉल करनी है टू अ डिफरेंट सर्विस तो ये रिमोट कॉल हमारी लेटेंसी को इंक्रीस कर सकती है। राइट? तो
हम क्या करेंगे? हम उस रिमोट कॉल जिस सर्विस को हमें रिमोट कॉल करनी है उसके रिस्पांस को हम कैश कर लेंगे। तो ये देखिए
हमने कुछ यूज़ किए इस कैशिंग सॉलशंस के। अब कैशिंग के लिए हम रेडिस का यूज कर सकते हैं। हम रेडिस का यूज़ कर सकते हैं जो कि
हमारा एक की वैल्यू काइंड ऑफ़ डेटा स्टोर है। की वैल्यू काइंड ऑफ़ डेटा स्टोर। तो यहां पे की हमारी कुछ भी हो सकती है।
लेट्स से हमारी हो गई की यूजर आईडी और वैल्यू में हमारा आ जाएगा आउटपुट दैट वी आर एक्सपेक्टिंग। अब लेट्स से कि इस
आउटपुट में हम यूजर की प्रोफाइल एक्सपेक्ट कर रहे हैं। तो यहां पे की हो जाएगी यूजर की आईडी और ये वैल्यू हो जाएगी यूजर की
प्रोफाइल। तो ये देखा हमने वन ऑफ आवर कैशिंग सॉल्यूशन रेडिस जो कि एक की वैल्यू डेटा स्टोर है। ओके। तो अब हम देखते हैं
कि हम स्टैटिक डेटा को कैसे स्टोर कर सकते हैं। स्टैटिक डेटा में आ जाता है हमारे इमेजज़, वीडियोस, ऑडियोज़। तो अब हम देखते
हैं कि हम इस स्टैटिक डेटा को कैसे और कहां पे स्टोर कर सकते हैं। लेट्स से कि हम सेम Amazon का एग्जांपल लेते हैं
ई-कॉमर्स एप्लीकेशन का। तो हमारे इस एप्लीकेशन में Amazon काइंड ऑफ़ एप्लीकेशन में हम प्रोडक्ट्स की इमेजेस और वीडियोस
को स्टोर कर रहे होंगे। राइट? प्रोडक्ट्स की इमेजज़ और वीडियोस को स्टोर कर रहे होंगे। तो, यह इमेजज़ और वीडियोस को हम
कहां स्टोर करते हैं? दिस इज व्हाट वी हैव टू डिस्कस। तो उसके लिए हम ब्लब स्टोरेज का यूज करते हैं। ब्लॉब स्टोरेज का हम यूज
करते हैं। तो जभी भी हमें हमारे एप्लीकेशन में चाहे वो Amazon एप्लीकेशन हो, ई-कॉमर्स एप्लीकेशन या वो Netflix
एप्लीकेशन हो जहां हम वीडियोस होस्ट करते हैं। तो चाहे हमारा Amazon एप्लीकेशन हो, Netflix हो, स्पॉट हो। तो इन एप्लीकेशन
में स्टैटिक डेटा को स्टोर करने के लिए हम ब्लॉब स्टोरेज का यूज करते हैं। अब ब्लॉब स्टोरेज में ब्लॉब स्टोरेज का एक अच्छा
एग्जांपल है S3 स्टोरेज व्हिच इज़ पावर्ड बाय AWS तो हम क्या करते हैं? हम स्टैटिक डेटा को ब्लॉब स्टोरेज में यूज़ करते हैं।
अब ब्लॉ ब्लॉब स्टोरेज में डेटा हम ऑब्जेक्ट के फॉर्म में स्टोर करते हैं। अब कैसे करते हैं? आई हैव ऑलरेडी मेड अ
सेपरेट वीडियो ऑन दैट। बेसिकली Netflix सिस्टम डिज़ाइन में मैंने यह डिस्कस किया है कि कैसे हम ब्लॉब स्टोरेज में अपनी
वीडियोस को, इमेजज़ को या बेसिकली स्टैटिक डेटा को स्टोर करते हैं। सो, प्लीज रेफर दैट वीडियो फॉर बेटर अंडरस्टैंडिंग। तो,
यहां पे हमने देखा कि स्टैटिक डेटा को स्टोर करने के लिए हम ब्लॉब स्टोरेज का यूज़ करते हैं। एंड वन ऑफ़ आवर ब्लॉब
स्टोरेज इज़ S3 स्टोरेज जो कि AWS ने बनाया है। तो, हम क्या करते हैं? हम इस स्टैटिक डेटा को, इमेजज़, वीडियोस, ऑडियोज़ को S3
स्टोरेज में स्टोर करते हैं। अब लेट्स से कि ये जो हमारा S3 स्टोरेज है, यह होस्टेड है यूएसए में। तो अब क्या होगा कि यदि
लेट्स से हमने Netflix जैसा सिस्टम बनाया जहां पे हम वीडियोस फैच करेंगे। राइट? मूवीज़ फैच करेंगे, वेब सीरीज फैच करेंगे।
अब लेट्स से कोई हमारी वीडियो या कोई वेब सीरीज हमने S3 स्टोरेज में स्टोर कर दी। अब लेट्स से ट्रैफिक आ रहा है। ह्यूज
ट्रैफिक इज कमिंग फ्रॉम इंडिया। तो अब इस केस में क्या होगा? इंडिया के यूज़र्स की रिक्वेस्ट फुलफिल होने में थोड़ा टाइम
लगेगा। क्योंकि हमारा S3 स्टोरेज जो है वो होस्टेड है यूएसए में। वो यूएसए में होस्टेड है और रिक्वेस्ट आ रही है इंडिया
से। तो बेसिकली यहां पे हमारी लेटेंसी इनक्रीस हो जाएगी। लेटेंसी इनक्रीज हो जाएगी। क्यों? क्यों? क्योंकि यहां पे
यूजर है इंडिया में। S3 स्टोरेज होस्टेड है यूएसए में। सो इंडिया के यूज़र्स की रिक्वेस्ट को बहुत ट्रैवल करना पड़ेगा।
देयर रिक्वेस्ट विल हैव टू ट्रैवल अ लॉट। जिसकी वजह से लेटेंसी इनक्रीस हो जाएगी। तो अब इसका क्या सॉल्यूशन है हमारे पास?
तो इसके लिए फिर हम S3 स्टोरेज के साथ हम S3 स्टोरेज के साथ सीडीए का यूज करते हैं। हम सीडीए का यूज़ करते हैं। सीडीएन इज़
नथिंग बट कंटेंट डिलीवरी नेटवर्क जो कि जनरली डिस्ट्रीब्यूट करता है स्टैटिक डेटा को ज्योग्राफिकली। तो अब हम क्या करेंगे?
हम एक सीडीएन को इंडिया में होस्ट कर देंगे। और इंडिया से अब कोई रिक्वेस्ट आती है। लेट्स से इंडिया के यूज़र्स रिक्वेस्ट
करते हैं किसी Netflix की वीडियो के लिए या वेब सीरीज के लिए। तो यह इंडिया के यूज़र्स की रिक्वेस्ट अब इंडिया में जो
सीडीएन होस्टेड है उससे फुलफिल हो जाएगी। तो क्या होगा कि इंडिया के यूज़र्स को इतना ट्रैवल नहीं करना पड़ेगा। S3 स्टोरेज तक
नहीं आना पड़ेगा। उनकी सिंपली रिक्वेस्ट ये सीडीए जो सीडीएन इंडिया में होस्टेड है वो इन यूज़र्स की रिक्वेस्ट को फुलफिल कर
देगा। अब लेट्स से कि जो वीडियो यूजर को देखनी है वो इस सीडीएन में अवेलेबल नहीं है। तब क्या होगा? तब फिर क्या होगा कि यह
यूजर की रिक्वेस्ट जाएगी नियरेस्ट पॉसिबल सीडीए के पास। लेट्स से इंडिया के नियरेस्ट सीडीएन है कोई जापान। तो वह
रिक्वेस्ट जाएगी जापान के पास। जापान में जो सीडीए होस्टेड है उधर यदि वहां भी वीडियो नहीं मिलती है तो फिर यह रिक्वेस्ट
जाएगी हमारे S3 स्टोरेज के पास। तो हम क्या करेंगे? हम डिफरेंट ज्योग्राफीज़ में सीडीएन होस्ट करेंगे। हम लेट्स से ट्रैफिक
यदि इंडिया से आ रहा है तो एक सीडीएन हम इंडिया में होस्ट कर देंगे। ट्रैफिक जापान से आ रहा है तो हम जापान में सीडीएन होस्ट
कर देंगे। फ्रांस में कर देंगे। तो ऐसे करके हम डिफरेंट ज्योग्राफीज़ में अपने सीडीएन को होस्ट कर देंगे। अब सीडीए पे
मैंने एक डेडिकेटेड वीडियो बनाया है। जहां हमने देखा कि सीडीए कैसे काम करता है। सो इफ यू वांट टू लर्न प्लीज रेफर दैट
वीडियो। तो यस ये था हमारा ब्लॉप स्टोरेज जहां हमने देखा कि हम S3 स्टोरेज के साथ सीडीएन को भी यूज़ करेंगे ताकि हम डिफरेंट
ज्योग्राफीज़ के यूज़र्स की रिक्वेस्ट को सर्व कर सकें और लेटेंसी को लेटेंसी को कम कर सकें। सो दिस इज अबाउट ब्लॉब स्टोरेज
जहां हम स्टैटिक डेटा को स्टोर करेंगे और हम S3 स्टोरेज और सीडीए दोनों को साथ में यूज़ करेंगे। S3 स्टोरेज होगा हमारा
प्राइमरी स्टोरेज प्राइमरी स्टोरेज और उसके बाद हम डिफरेंट ज्योग्राफीज़ में सीडीएन होस्ट कर देंगे। जहां हम उस
ज्योग्राफी के अकॉर्डिंग वीडियोस को रखेंगे। सो दिस इज़ अबाउट आवर ब्लॉग स्टोरेज। अब हम देखते हैं सर्च के लिए कि
हम सर्च के लिए क्या यूज करते हैं। लेट्स से कि हम कोई Amazon जैसा एप्लीकेशन बना रहे हैं ई-कॉमर्स एप्लीकेशन। तो उस
एप्लीकेशन में यू विल प्रोवाइड सर्च फंक्शनैलिटीज़। राइट? सर्च फंक्शनैलिटीज़। और उस सर्च फंक्शनैलिटीज़ के थ्रू यूजर विल
बी एबल टू सर्च प्रोडक्ट। तो, यूजर प्रोडक्ट सर्च कर रहे होंगे। तो यह जो सर्च होगा इट विल बी बेस्ड ऑन
प्रोडक्ट नेम प्रोडक्ट नेम या प्रोडक्ट की कैटेगरी। तो बेसिकली यूज़र्स क्या करेंगे? प्रोडक्ट के नेम पर या प्रोडक्ट की
कैटेगरी पर या लेट्स से प्रोडक्ट के ब्रांड पर सर्च करेंगे। तो हमें हमारे एप्लीकेशन में सर्चिंग फंक्शनैलिटी या
सर्च कैपेबिलिटीज़ को भी इनेबल करना है। राइट? तो इसके लिए हम टेक्स्ट सर्च इंजन का यूज करते हैं। टेक्स्ट सर्च इंजन का
यूज करते हैं। अब टेक्स्ट सर्च इंजन की एक बहुत अच्छी इंप्लीमेंटेशन है इलास्टिक सर्च क्लस्टर।
इलास्टिक सर्च क्लस्टर। तो हम सिंपली सर्च फंक्शनैलिटीज के लिए, सर्च कैपेबिलिटीज़ के लिए इलास्टिक सर्च को
यूज़ करेंगे। अब यह जो इलास्टिक सर्च क्लस्टर है इट इज बिल्ड ऑन टॉप ऑफ अपाचे ल्यूसिन। अपाचे ल्यूसिन।
तो यह इलास्टिक सर्च क्लस्टर हमें कुछ फंक्शनैलिटीज प्रोवाइड करता है। बेसिकली इट इज़ बिल्ड ऑन टॉप ऑफ Apache ल्यूसीन। तो
यह इलास्टिक सर्च क्लस्टर हमें कुछ फंक्शनैलिटीज प्रोवाइड करता है। जैसे कि फजी सर्चिंग,
फजी सर्चिंग, ऑटो कंप्लीशन, ऑटो सजेशन। तो ऐसी ये फंक्शनैलिटीज़ हमें
इलास्टिक सर्च क्लस्टर प्रोवाइड करता है। एंड यस वी नीड दीज़ फंक्शनैलिटीज़ इन आवर सर्च फीचर। अब ये फजी सर्चिंग क्या होता
है कि लेट्स से आप कुछ प्रोडक्ट नेम सर्च कर रहे हैं। लेट्स से प्रोटीन आप सर्च कर रहे हैं। तो यदि आप इस प्रोटीन की
स्पेलिंग को गलत लिख देते हैं और प्रोटीन की स्पेलिंग को आप कुछ ऐसा लिख देते हैं। लेट्स से आई को आपने रिप्लेस कर दिया ई से
और आपने प्रोटीन की स्पेलिंग ऐसी लिख दी। तो इस केस में भी हमारा इलास्टिक सर्च क्लस्टर क्या करेगा? आपको सही सर्च
रिजल्ट्स देगा। मतलब वो आपको सारे प्रोडक्ट प्रोटीन से रिलेटेड प्रोडक्ट दिखाएगा। तो इवन इफ यू आर राइटिंग अ रॉन्ग
स्पेलिंग स्टिल यह इलास्टिक सर्च क्लस्टर आपको सही रिजल्ट्स देगा और प्रोटीन से रिलेटेड प्रोडक्ट्स दिखाएगा। तो यह देखिए
हमने पहला फीचर इलास्टिक सर्च का कि इट अलाउस फजी सर्चिंग। तो भले ही आपको स्पेलिंग ना आती हो उस प्रोडक्ट की या
ब्रांड की बट स्टिल यू विल बी एबल टू सर्च दैट प्रोडक्ट। अब जो दूसरा फीचर है हमारा वो है ऑटो कंप्लीट। सेम एग्जांपल लेते
हैं। लेट्स से हम प्रोटीन सर्च कर रहे हैं। सो आफ्टर राइटिंग पीआरओ पीआरओ टी इट विल ऑटो सजेस्ट यू प्रोटीन। तो ये देखा
हमने सेकंड फीचर हमारे इलास्टिक सर्च का। तो यह देखा हमने इलास्टिक सर्च को जो हमें सर्च फंक्शनैलिटी प्रोवाइड करता है। तो
सर्च फीचर के लिए हम इलास्टिक सर्च का यूज करेंगे। तो जैसे ही कोई प्रोडक्ट आता है, जैसे ही कोई नया प्रोडक्ट आता है, लेट्स
से पीनट बटर। पीनट बटर का कोई नया ब्रांड आता है हमारे Amazon एप्लीकेशन में। तो हम इस ब्रांड की एंट्री कर देंगे इलास्टिक
सर्च क्लस्टर में कि हमारे पास एक ये नया प्रोडक्ट आया है पीनट बटर का एक नया प्रोडक्ट पिंटोला ब्रांड का पिंटोला
ब्रांड का तो हम यह ऐसे इसकी एंट्री कर देंगे यहां पे इलास्टिक सर्च क्लस्टर में तो जभी भी कोई यूजर जभी भी कोई यूजर सर्च
करेगा पीनट बटर को या पिंटोला को तो यह इलास्टिक सर्च क्लस्टर उसे यह रिजल्ट प्रोवाइड करेगा या यह रिजल्ट शो करेगा। तो
ये देखा हमने इलास्टिक सर्च क्लस्टर को। अब इलास्टिक सर्च में और एक्चुअल डेटाबसेस में डिफरेंस क्या होता है उसे हम देखते
हैं। तो जो डेटाबेस होते हैं हमारे वो गारंटी देते हैं कि हमारा डेटा लॉस्ट नहीं होगा। सो बेसिकली इट गिव्स गारंटी दैट
डेटा वुडंट बी लॉस्ट। लेकिन इलास्टिक सर्च क्लस्टर ऐसी कोई गारंटी नहीं देता कि आपका डेटा लॉस्ट नहीं होगा। तो यह दोनों में
डिफरेंस होता है। तो जब भी आप कोई प्रोडक्ट सर्च करते हैं लेट्स से आप Amazon काइंड ऑफ एप्लीकेशन में है। Amazon
काइंड ऑफ एप्लीकेशन ई-कॉमर्स एप्लीकेशन में है और आपने एज अ यूजर एज अ यूजर कुछ प्रोडक्ट सर्च किया। तो, यह रिक्वेस्ट
कहां जाएगी? यह रिक्वेस्ट जाएगी इलास्टिक सर्च क्लस्टर के पास। इलास्टिक सर्च क्लस्टर के पास। अब लेट्स से आपने सेम
पीनट बटर पिंटोला का पीनट बटर सर्च सर्च किया था तो ये रिक्वेस्ट जाएगी इलास्टिक सर्च क्लस्टर के पास और इलास्टिक सर्च
क्लस्टर आपको रिजल्ट्स देगा लेकिन यह इलास्टिक सर्च क्लस्टर इज नॉट अ सोर्स ऑफ ट्रुथ मतलब यह नहीं बता पाएगा कि जो आप
प्रोडक्ट देख रहे हैं लेट्स से यह पिंटोला का पीनट बटर यह करेंटली अवेलेबल है या नहीं वो यह नहीं बता सकता है कि यह
करेंटली इनस्टॉक है या इनस्टॉक है या आउट ऑफ स्टॉक। तो इलास्टिक सर्च क्लस्टर यह नहीं बता पाएगा कि यह प्रोडक्ट करेंटली इन
स्टॉक है या आउट ऑफ स्टॉक है। तो, हम कह सकते हैं कि इलास्टिक सर्च इज़ नॉट अ सोर्स ऑफ़ ट्रुथ। तो, हम क्या करेंगे? करंट
अवेलेबिलिटी के लिए, प्रोडक्ट की करंट अवेलेबिलिटी के लिए हम इन्वेंटरी सर्विस को कॉल करेंगे। इन्वेंटरी सर्विस को कॉल
करेंगे। और यह इन्वेंटरी सर्विस बताएगी कि प्रोडक्ट करेंटली इन स्टॉक है या आउट ऑफ स्टॉक है। तो यस इलास्टिक सर्च इज नॉट अ
सोर्स ऑफ ट्रुथ। इसलिए हम इन्वेंटरी सर्विस को कॉल करेंगे और इन्वेंटरी सर्विस के डेटाबेस में हम चेक कर लेंगे कि
प्रोडक्ट करेंटली इन स्टॉक है या आउट ऑफ स्टॉक। तो यह देखा हमने सर्च फंक्शनैलिटी के लिए इलास्टिक सर्च क्लस्टर को। अब जो
नेक्स्ट है हमारा वो है डाटा वेयर हाउस। डाटा वेयर हाउस। तो इफ वी हैव टू डू एनालिटिक्स ऑन ऑल द डाटा ऑफ कंपनी तो हम
डाटा वेयर हाउस का यूज़ करते हैं। तो डेटा वेयर हाउस बेसिकली क्या होते हैं? दे आर लार्ज डेटाबेस जहां हम सारा का सारा कंपनी
डेटा डंप कर देते हैं। एंड वी प्रोवाइड वेरियस क्वेरिंग कैपेबिलिटीज़ ऑन टॉप ऑफ द डेटा टू सर्व लॉट ऑफ रिपोर्ट्स। तो यह
होता है हमारा डेटा वेयर हाउस। इफ वी हैव टू डू एनालिटिक्स ऑन द कंपनी डाटा तो हम सारे का सारा डाटा डेटा वेयर हाउस में डंप
कर देते हैं। और यह डेटा वेयर हाउस क्या है? इट इज़ लार्ज डेटाबेस। ये लार्ज डेटाबेस हैं। तो ये देखे हमने डिफरेंट
टाइप के डेटाबेस। और अब हम देखते हैं हमारा फाइनल सीक्वल वर्सेस नो सीक्वल। कि कब हमें सीक्वल डेटाबेसेस यूज़ करने हैं और
कब हमें नो सीक्वल डेटाबसेस यूज़ करने हैं। तो अब इसे समझते हैं। एक एग्जांपल के थ्रू हमने स्ट्रक्चरर्ड और अनस्ट्रक्चरर्ड डेटा
को ऊपर डिस्कस किया। स्ट्रक्चरर्ड डेटा हमारा क्या है? जिसे हम एक फिक्स्ड फॉर्मेट में एक फिक्स्ड स्कीमा में डिफाइन
कर सकते हैं। वो है हमारा स्ट्रक्चरर्ड डेटा। जैसे कि हम डेटा को यदि रोज़ और कॉलम्स के फॉर्म में प्रेजेंट कर सकते हैं
तो वो है हमारा स्ट्रक्चरर्ड डेटा। रोज़ और कॉलम्स के फॉर्म में यदि हम डेटा को प्रेजेंट कर रहे हैं तो हम कह सकते हैं कि
हम डेटा को टेबल्स के फॉर्म में प्रेजेंट कर सकते हैं। और अनस्ट्रक्चरर्ड डेटा हमने क्या देखा था? जिसका कोई फिक्स्ड फॉर्मेट
नहीं होता। कोई प्रीडफाइंड मॉडल नहीं होता, कोई फिक्स्ड स्कीमा नहीं होता। तो वो था हमारा अनस्ट्रक्चरर्ड डेटा। तो अब
यदि हमारे पास स्ट्रक्चरर्ड डेटा है तो हम लेफ्ट साइड आते हैं और फिर हम चेक करेंगे कि स्ट्रक्चरर्ड डेटा के साथ-साथ क्या
हमें हमारे एप्लीकेशन में एसेट प्रॉपर्टीज को भी मेंटेन करना है। लेट्स से कि हमारे एप्लीकेशन में ट्रांजैक्शन रिलेटेड
क्वेरीज हैं। ट्रांजैक्शन रिलेटेड क्वेरीज हैं। लेट्स से कि हमारे एप्लीकेशन में कोई पेमेंट सर्विस है। लेट्स से हमारे पास दो
यूज़र्स हैं। एक यह यूजर ए है। एक यह यूजर बी है। यूजर ए को पेमेंट करनी है यूजर बी को। तो जब इस यूजर ए के अकाउंट से बैंक
अकाउंट से पेमेंट रिड्यूस होगी। पेमेंट रिड्यूस होगी तो वह पेमेंट इस यूजर बी के अकाउंट में रिफ्लेक्ट होनी चाहिए।
रिफ्लेक्ट होनी चाहिए। ऐड हो के रिफ्लेक्ट होनी चाहिए। यहां पे वह यूजर बी के अकाउंट में बैंक अकाउंट में वह पेमेंट ऐड हो
जाएगी। ऐसा नहीं होना चाहिए कि यहां A से रिड्यूस हो गई लेकिन B में वो ऐड नहीं हुई। ऐसा नहीं होना चाहिए। तो यदि हमारे
एप्लीकेशन में ट्रांजैक्शन रिलेटेड क्वेरीज हैं। ऐसे पेमेंट सर्विस है जहां हम एक के बैंक अकाउंट से मनी डेबिट हो रही
है और दूसरे के में क्रेडिट हो रही है। तो वहां पे हम एसेट प्रॉपर्टीज को मेंटेन करेंगे। एसिड प्रॉपर्टीज को मेंटेन करते
हैं। अब इफ वी हैव टू मैनेज एसिड प्रॉपर्टीज देन रिलेशनल डेटाबसेस आर द बेस्ट। तो हमने क्या देखा था कि यदि हमारे
पास स्ट्रक्चरर्ड डेटा था तो हम लेफ्ट साइड गए और फिर हमने देखा कि क्या हमें एसेट प्रॉपर्टीज मेंटेन करनी है या नहीं।
सो इफ वी हैव टू मैनेज एसेट प्रॉपर्टीज़ या ट्रांजैक्शन रिलेटेड क्वेरीज़ तो फिर हम आरडीबीएमएस डेटाबेस को यूज़ करेंगे। और
उनमें आ जाते हैं हमारे माय सीक्वल डेटाबेस पोस्ट ग्रे सीक्वल डेटाबेस तो इफ वी नीड एटॉमिससिटी कंसिस्टेंसी
ट्रांजैक्शंस तो हम आरडीबीएमएस डेटाबेससेस को यूज़ करेंगे और यदि हमें हमारे एप्लीकेशन में स्ट्रक्चरर्ड डेटा है लेकिन
हमें एसिड प्रॉपर्टीज की नीड नहीं है। एसिड की गारंटी की नीड नहीं है। तो फिर हम सीक्वल डेटाबेस भी यूज़ कर सकते हैं और नो
सीक्वल डेटाबेस भी यूज़ कर सकते हैं। बिकॉज़ यह ज़्यादा डिफरेंस क्रिएट नहीं करेगा क्योंकि आप स्ट्रक्चरर्ड डेटा को नो
सीक्वल डेटाबेसिस में भी ईज़ली मैप कर सकते हैं। तो यह देखा हमने स्ट्रक्चरर्ड डेटा कि यदि हमारे एप्लीकेशन में स्ट्रक्चरर्ड
डेटा है और यदि हमें एसेट प्रॉपर्टीज एसेट गारंटी की नीड है तो हम आरडीबीएमएस डेटाबेस यूज़ करेंगे। यदि हमें एसेट गारंटी
की नीड नहीं है तो हम सीक्वल को भी यूज कर सकते हैं या नो सीक्वल डेटाबेस को भी यूज कर सकते हैं। नो सीक्वल को इसलिए यूज़ कर
सकते हैं क्योंकि स्ट्रक्चरर्ड डेटा को हम नो सीक्वल डेटाबेस में भी ईजीली मैप कर सकते हैं। तो ये देखा हमने यस वाला पार्ट
कि यदि हमारे पास स्ट्रक्चरर्ड डेटा है। अब लेट्स से कि हमारे पास स्ट्रक्चरर्ड डेटा नहीं है। राइट? हमारे पास
स्ट्रक्चरर्ड डेटा नहीं है। तो यहां पे भी हमारे पास दो टाइप के डेटाबसेस हैं। एक है हमारे पास डॉक्यूमेंट डीबी और एक है हमारे
पास कॉलम इनार डीबी। ये है हमारा कॉलम इनार डीबी। तो यदि हमारे पास फाइनाइट सेट ऑफ क्वेरीज़ हैं। हमारे पास फाइनाइट सेट ऑफ
क्वेरीज़ हैं। मतलब हमारे पास नंबर ऑफ़ क्वेरीज़ ज्यादा नहीं है। बट यस वी हैव लार्ज सेट ऑफ़ डेटा। और यह डाटा
कंटीन्यूअसली ग्रो हो रहा है। तो फिर हम कॉलमनार डेटाबेस को यूज करेंगे जिसमें आ जाता है हमारा कसें डेटाबेस। तो यदि हमारे
पास फाइनाइट सेट ऑफ क्वेरीज हैं या नंबर ऑफ क्वेरीज जो हैं वो बहुत ज्यादा नहीं है और हमारा डेटा एवर इंक्रीजिंग डेटा है
मतलब टाइम के साथ वो कंटीन्यूअसली ग्रो करता जाएगा। तो हम कॉलमनार डेटाबेस का यूज़ करेंगे जिसमें आ जाता है हमारा कसेंडर
डेटाबेस। एंड जो हमारा दूसरा ऑप्शन है कि इफ वी हैव वाइड वैरायटी ऑफ क्वेरीज यदि हमारे पास नंबर ऑफ क्वेरीज ज्यादा हैं एंड
वी हैव लॉट ऑफ एट्रिब्यूट्स तो हम डॉक्यूमेंट डीबी का यूज़ करेंगे जिसमें आ जाता है हमारा मोंगो डीबी डेटाबेस। अब लॉट
ऑफ एट्रिब्यूट्स से क्या मतलब है कि लेट्स से आपने कोई स्विगी काइंड ऑफ एप्लीकेशन बनाया sविggi काइंड ऑफ एप्लीकेशन बनाया तो
उस एप्लीकेशन में यू वुड हैव कार्ट राइट आपके पास एक कार्ट होगा या लेट से आपने Amazon काइंड ऑफ एप्लीकेशन बनाया तो उसमें
भी आप एक कार्ट मैनेज कर रहे होंगे राइट उस कार्ट में आप डिफरेंट प्रोडक्ट्स स्टोर करेंगे तो हम एक कार्ड सर्विस बनाएंगे और
इस कार्ट के लिए अब हम कौन सा डेटाबेस यूज़ करेंगे वो हमें डिसाइड करना है। तो अब कार्ट में हम डिफरेंट-डिफरेंट प्रोडक्ट्स
स्टोर करेंगे। राइट? लेट्स से हमने कार्ट में शर्ट स्टोर कर दी। हमने कार्ट में पट स्टोर कर दिया। पट स्टोर कर दिया। हमने एक
iPhone स्टोर कर दिया। iPhone स्टोर कर दिया। हमने एक टीवी स्टोर कर दी। तो ऐसे हमने डिफरेंट-डिफरेंट प्रोडक्ट्स अपने
कार्ड में कार्ट में ऐड कर रखे हैं। तो अब क्या होगा कि हर प्रोडक्ट का हर प्रोडक्ट के लिए एट्रिब्यूट डिफरेंट होंगे। राइट?
इस शर्ट के लिए एट्रिब्यूट डिफरेंट होगा। इस शर्ट के एट्रिब्यूट में क्या आ सकता है? शोल्डर लेंथ।
शोल्डर विड्थ ये आ सकता है। एक आ सकता है शर्ट की लेंथ। एक आ सकता है शर्ट की लेंथ। एक आ सकता है चेस्ट की विड्थ। तो यह आ
सकते हैं हमारे शर्ट में डिफरेंट एट्रिब्यूट्स। हमारे पट में डिफरेंट एट्रिब्यूट्स हो सकते हैं। हमारे iPhone
प्रोडक्ट में डिफरेंट एट्रिब्यूट्स हो सकते हैं। यह जो हमारा टीवी प्रोडक्ट है, इसमें डिफरेंट एट्रिब्यूट्स हो सकते हैं।
इसमें लेट्स से हो सकता है रेोल्यूशन हो सकता है। रेोल्यूशन हो सकता है। टीवी का साइज हो सकता है कि टीवी का साइज क्या है?
32 इंच है, 34 इंच है, 36 इंच है। तो ऐसे हमारे हर प्रोडक्ट के डिफरेंट एट्रिब्यूट्स हो सकते हैं। सो इफ वी हैव
दिस काइंड ऑफ़ डेटा जहां पे हमारे पास अ डिफरेंट-डिफरेंट एट्रिब्यूट्स हो हर प्रोडक्ट के तो वहां पे हम डॉक्यूमेंट
डीबी को यूज़ करते हैं। और डॉक्यूमेंट डीबी में आ जाता है हमारा मोंगो डीबी डेटाबेस। अब ये मोंगो डीबी डेटाबेस में हम डेटा की
वैल्यू पेयर के फॉर्म में की वैल्यू पेयर के फॉर्म में स्टोर करते हैं। तो की हो जाएगा हमारा कुछ भी प्रोडक्ट लेट्स से की
हो गया हमारा टीवी या iPhone तो ये उसकी आईडी हो जाएगी और वैल्यू हो जाएगा उसके एट्रिब्यूट्स। तो यहां पे हर की के लिए
वैल्यू कुड बी डिफरेंट। राइट? तो ये देखा हमने कि यदि हमारे पास डिफरेंट एट्रिब्यूट्स होंगे हर प्रोडक्ट के लिए
हमारे पास एट्रिब्यूट अलग-अलग होंगे तो हम डॉक्यूमेंट डीबी की तरफ जा सकते हैं। और डॉक्यूमेंट डीबी में हमने देखा मोंगो डीबी
डेटाबेस को। सो इफ वी हैव वाइड वैरायटी ऑफ़ क्वेरीज़ एंड लॉट ऑफ़ एट्रिब्यूट्स वी आर गोइंग टू यूज़ डॉक्यूमेंट डीबी। एंड इफ वी
हैव फाइनाइट सेट ऑफ क्वेरीज एंड लार्ज सेट ऑफ डेटा देन वी आर गोइंग टू यूज़ कॉलमनार डेटाबेस जिसमें हमने देखा कसेंडर डेटाबेस
को। तो ये देखा हमने कि हमें कब सीक्वल डेटाबेस को यूज़ करना है। कब हमें नो सीक्वल डेटाबेस को यूज़ करना है। राइट? तो
अब क्वेश्चन ये आता है कि हमें रियल वर्ल्ड प्रोजेक्ट में लेट्स से Amazon काइंड ऑफ ई-कॉमर्स एप्लीकेशन में कौन सा
डेटाबेस यूज़ करना है कहां पे? तो इसे एक एग्जांपल के थ्रू समझते हैं। तो लेट्स से कि Amazon काइंड ऑफ एप्लीकेशन में हमारे
पास एक ऑर्डर सर्विस होगी। राइट? एक ऑर्डर सर्विस होगी। और यह सर्विस का काम क्या होगा कि यह सर्विस ऑर्डर प्लेस करेगी। यह
पेमेंट सर्विस को इनवोक करेगी। पेमेंट सक्सेसफुल होती है, फेल होती है तो यह इन्वेंटरी काउंट को कम करेगी या बढ़ाएगी।
और यह बाकी की सर्विज को जैसे डिलीवरी सर्विस और नोटिफिकेशन सर्विस बाकी को यह इनवोक करेगी। तो यह काम है हमारे ऑर्डर
सर्विस का। और ये ऑर्डर सर्विस के डेटाबेस में हम सारे के सारे ऑर्डर्स को स्टोर करेंगे। अब यहां पे ऑर्डर सर्विस में हम
एसेट प्रॉपर्टीज को मेंटेन करेंगे। राइट? हम एसेट प्रॉपर्टीज को मेंटेन करेंगे। अब हम एसेट प्रॉपर्टीज को क्यों मेंटेन
करेंगे? क्योंकि यहां पर हमारी पेमेंट सक्सेसफुल भी हो सकती है, पेमेंट फेल भी हो सकती है। मतलब ऑर्डर कैंसिल भी हो सकता
है और सक्सेसफुल भी हो सकता है। तो यहां पे हम एसेट प्रॉपर्टीज को हमें मैनेज करना पड़ेगा। बेसिकली हमें ट्रांजैक्शंस को
मैनेज करना पड़ेगा। तो यहां पे कौन सा डेटाबेस हम सेलेक्ट कर सकते हैं जो हमने अभी देखा। उसके अकॉर्डिंग हम यहां पे
आरडीबीएमएस डेटाबेस यूज़ कर सकते हैं। राइट? लेकिन अब यहां पे आप इमेजिन कर सकते हो कि
हर दिन हमारे एप्लीकेशन में लेट्स से आपके एप्लीकेशन में 10 मिलियन यूज़र्स हैं और आपके हर दिन 100 के नए ऑर्डर्स आ रहे हैं।
100 के ऑर्डर्स हर दिन आ रहे हैं नए। तो अब इस केस में क्या होगा? एक टाइम पे यह ऑर्डर सर्विस के लिए जो हमने आरडीबीएमएस
डेटाबेस यूज़ किया है, यह क्रैश कर सकता है। राइट? क्योंकि हम कंटीन्यूअसली हर दिन इसमें 100 के एंट्रीज नई स्टोर कर रहे
हैं। कि एक टाइम पे इस आरडीबीएमएस डेटाबेस की कैपेसिटी फुल हो जाएगी। राइट? तो अब इस केस में हम क्या करते हैं? इस केस में हम
हमें दिख रहा है कि जो हमारा डेटा है वो एवर इंक्रीजिंग डेटा है। वो हर दिन बढ़ेगा। तो यहां पे हमने क्या देखा था कि इफ वी
हैव एवर इंक्रीजिंग डेटा और जो डेटा कंटीन्यूअसली बढ़ रहा है तो हमने देखा था वहां पे हम ये कॉलमनार डेटाबेस को यूज़ कर
सकते हैं। लार्ज सेट ऑफ डेटा फाइनाइट सेट ऑफ क्वेरीज। लेकिन हमें यहां पे एसेट प्रॉपर्टीज भी मैनेज करना था। तो हम क्या
करेंगे? जो हमारे लाइव ऑर्डर्स होंगे जो हमारे लाइव ऑर्डर्स होंगे या रीसेंट ऑर्डर्स होंगे। लाइव ऑर्डर्स या रीसेंट
ऑर्डर्स होंगे। सिर्फ उन ऑर्डर्स को ही हम इस ऑर्डर सर्विस के डेटाबेस में रहने देंगे। हम लाइव ऑर्डर्स को हम लाइव
ऑर्डर्स को बस इस आरडीबीएमएस डेटाबेस में रहने देंगे। बाकी जो हमारे पास्ट ऑर्डर्स होंगे जो हमारे पास्ट ऑर्डर्स होंगे उनको
हम इस आरडीबीएमएस डेटाबेस से निकालकर हम कसें डेटाबेस में डंप कर देंगे। तो यह हो गया हमारा कसें डेटाबेस। कैसा हम सिंपली
क्या करेंगे? हम क्रोन जॉब्स रन करेंगे और हम इस आरडीबीएमएस डेटाबेस में इस ऑर्डर सर्विस के आरडीबीएमएस डेटाबेस में से हम
पास्ट ऑर्डर्स को निकाल लेंगे। पास्ट ऑर्डर्स को निकाल लेंगे और हम उसे डंप कर देंगे इस कसें डेटाबेस में। तो ऐसे हम
रियल वर्ल्ड प्रोजेक्ट्स में रियल वर्ल्ड एप्लीकेशनेशंस में डेटाबेस को यूज़ करते हैं सही से। हमने क्या किया? हमने जब तक
हमें एसेट प्रॉपर्टीज मैनेज करनी थी और यह एसेट प्रॉपर्टीज हमें कब मैनेज करनी थी? यह करनी थी हमें लाइव ऑर्डर्स के लिए। तो
जब तक हमें एसेट प्रॉपर्टीज को मैनेज करना था तब तक हमने आरडीबीएमएस डेटाबेस यूज़ किया और जो हमारे पास्ट ऑर्डर्स होंगे
उनको हम कैसेंडर डेटाबेस में डंप कर देंगे। तो हमारे पास दो सर्विज हैं। यह ऑर्डर सर्विस जो हमारे लाइव ऑर्डर्स को
मैनेज कर रही है। राइट? तो इसके लिए हमने इसके लिए हमने यह आरडीबीएमएस डेटाबेस यूज किया और हमने एक पास्ट ऑर्डर सर्विस बनाई।
यह पास्ट ऑर्डर सर्विस क्या करेगी? यह सिंपली आरडीबीएमएस डेटाबेस से यह क्रोन जॉब्स रन करके पास्ट ऑर्डर्स को फैच करेगी
और उसे डंप कर देगी इस कसंड्रा डेटाबेस में। तो, यह देखा हमने कि कैसे डिफरेंट डेटाबेस साथ में काम करते हैं एंड दे
प्रोवाइड डिफरेंट-डिफरेंट फंक्शनैलिटीज़। आरडीबीएमएस डेटाबेस हमें एसेट प्रॉपर्टीज प्रोवाइड कर रहा था। एसेट गारंटी प्रोवाइड
कर रहा था। और यह कसंड्रा डेटाबेस हमें या कॉलमनार डेटाबेस हमें लार्ज सेट ऑफ डेटा को स्टोर करने की फैसिलिटी प्रोवाइड कर
रहा था। तो हमने पास्ट ऑर्डर्स को कसand्रा डेटाबेस में डंप कर दिया। अब क्वेश्चन यह है कि ये पास्ट ऑर्डर्स कितने
पुराने हैं? यह रिसेंटली होंगे या 5 दिन पुराने, 10 दिन पुराने 1 महीने? तो हम ये कर कह सकते हैं कि जैसे ही हमारा कोई भी
ऑर्डर रिटर्न करने वाली फैसिलिटी के बाहर आता है जैसे एक फैसिलिटी होती है कि आप प्रोडक्ट को रिटर्न कर सकते हैं। आप
प्रोडक्ट को रिटर्न कर सकते हैं। तो जैसे ही हमारा प्रोडक्ट इसके बाहर आता है तो फिर हम उसे कैसेंडर डेटाबेस में डंप कर
सकते हैं। उसे हम फिर पास्ट ऑर्डर में कंसीडर कर सकते हैं और उसे फिर हम कैसेंडर डेटाबेस में डंप कर देंगे। तो ये देखा
हमने डेटाबसेस के बारे में कि कौन सा डेटाबेस हमें कब यूज करना है और हमने देखा कि डिफरेंट डेटाबेस साथ में कैसे काम करते
हैं और कैसे हम लार्ज स्केल सिस्टम में डिफरेंट डेटाबेस को यूज़ करके अपने एप्लीकेशन को अपने सिस्टम को डिफरेंट
फीचर्स प्रोवाइड करते हैं। सो आई गेस दिस इज़ ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन बाय-ब बाय। शो
सम लाभ। थैंक्स। [संगीत] हे एवरीवन वेलकम बैक वेलकम टू अनदर
एक्साइटिंग वीडियो एंड टुडेेस टॉपिक इज़ हाउ टू अवॉयड सिंगल पॉइंट ऑफ फेलियर्स। तो स्टार्ट करते हैं और सबसे पहले समझते हैं
हम इस डेफिनेशन को सिंगल पॉइंट ऑफ़ फेलियर की डेफिनेशन को। सो सिंगल पॉइंट ऑफ फेलियर इज अ कॉम्पोनेंट इन योर सिस्टम हुस फेलियर
कैन ब्रिंग डाउन द एंटायर सिस्टम कॉजिंग डाउन टाइम पोटेंशियल डेटा लॉस एंड मोस्टेंट [नाक से की जाने वाली आवाज़]
थिंग अनहै यूज़र्स। सो यस सिंगल पॉइंट ऑफ फेलियर बेसिकली हमारे सिस्टम में किसी एक पर्टिकुलर कंपोनेंट के फेल हो जाने को
बोलते हैं। और उस कंपोनेंट के फेल हो जाने की वजह से हमारा सिस्टम एंटायर सिस्टम क्रैश कर सकता है। हमारा एंटायर सिस्टम
डाउन हो सकता है। उसकी वजह से हमें डेटा लॉस हो सकता है। एंड इफ आवर सिस्टम विल बी डाउन। सो यूज़र्स विल बी अनहैप्पी। दैट्स
वेरी ऑब्वियस थिंग। तो इसे कहते हैं हम सिंगल पॉइंट ऑफ फेलियर कि हमारे सिस्टम में किसी लार्ज स्केल सिस्टम में यदि कोई
भी एक पर्टिकुलर कॉमोनेंट के फेल हो जाने की वजह से हमारा सिस्टम डाउन हो जाता है। हमें डेटा लॉस होता है या हमारा पूरा
सिस्टम क्रैश कर सकता है तो उसे हम बोलते हैं सिंगल पॉइंट ऑफ फेलियर। अब ये सिंगल पॉइंट ऑफ फेलियर किसी पर्टिकुलर कंपोनेंट
के फेल होने की वजह से आया। राइट? तो अब हम देखते हैं कि ये कॉम्पोनेंट क्या हो सकते हैं। तो ये कंपोनेंट हो सकते हैं
हमारे लोड बैलेंसर, सर्वर्स, डेटाबेस, कैश, डेटा सेंटर्स, अवेलेबिलिटी ज़ोन, रीजंस। तो इनमें से किसी भी एक कॉमोनेंट
के फेल हो जाने की वजह से हमारा पूरा सिस्टम क्रैश कर सकता है। तो अब समझते हैं कि हम सिंगल पॉइंट ऑफ फेलियर्स को कैसे
अवॉइड कर सकते हैं। तो सबसे पहले हमारे पास जो हमारा पहला केस है उसमें हमारे पास अ बेसिकली क्लाइंट्स आ रहे हैं हमारे
एप्लीकेशन में और हमारे पास एक सर्वर है। हमारे पास एक सर्वर है, डेटाबेस है और यह हमारी कैश मेमोरी है। अह व्हिच विल बी आवर
रेडिश। तो अब यहां पे जब हमारे पास केवल एक सिंगल एप्लीकेशन सर्वर होगा हमारे सिस्टम का केवल एक सिंगल एप्लीकेशन सर्वर
होगा। तो दिस सर्वर कैन बिकम अ सिंगल पॉइंट ऑफ़ फेलियर। राइट? सो यहां पे ये सर्वर सिंगल पॉइंट ऑफ फेलियर बन सकता है।
और अब इस सर्वर के फेल हो जाने की वजह से हमारा पूरा का पूरा सिस्टम क्रैश कर सकता है। हमारा पूरा का पूरा सिस्टम क्रैश कर
सकता है। तो अब यदि यहां पे यह हमारा सर्वर क्रैश हो गया, सर्वर डाउन हो गया, तो यह इन यूज़र्स की रिक्वेस्ट को यह जो
हमारे पास यूज़र्स आ रहे हैं, इन यूज़र्स की रिक्वेस्ट को हम फुलफिल नहीं कर पाएंगे। सो इफ वी हैव सिंगल एप्लीकेशन सर्वर तो यह
हमारा सर्वर सिंगल पॉइंट ऑफ फेलियर बन सकता है। अब इस प्रॉब्लम को हम कैसे सॉल्व कर सकते हैं? तो इस प्रॉब्लम को सॉल्व
करने के लिए हम सिंपली क्या करेंगे? हम मल्टीपल एप्लीकेशन सर्वर्स लगा देंगे। हम मल्टीपल एप्लीकेशन सर्वर्स ले आएंगे।
राइट? तो अब हमने क्या किया? हमने हमारे सिस्टम को हॉरिजॉन्टली स्केल कर दिया। और हमने मल्टीपल एप्लीकेशन सर्वर्स यूज किए।
हमारे सिस्टम के लिए हमने मल्टीपल एप्लीकेशन सर्वर्स यूज किए। बेसिकली हमने सिस्टम को हॉरिजॉन्टली स्केल कर दिया। तो
अब जो हमारी प्रॉब्लम थी जहां पे हमारा से सर्वर सिंगल पॉइंट ऑफ फेलियर बन जा रहा था। उस प्रॉब्लम को हमने सॉल्व कर दिया।
और उस प्रॉब्लम को हमने कैसे सॉल्व किया? हमने मल्टीपल एप्लीकेशन सर्वर्स यूज किए। अब ठीक है? के हमने मल्टीपल एप्लीकेशन
सर्वर्स यूज़ किए। तो अब हमने प्रीवियस वीडियोस में पढ़ा कि इफ वी हैव मल्टीपल एप्लीकेशन सर्वर्स तो हमें एक लोड बैलेंसर
की नीड होगी। राइट? ट्रैफिक को डिस्ट्रीब्यूट करने, यूज़र्स की रिक्वेस्ट को डिस्ट्रीब्यूट करने के लिए। तो, यहां
पे हमने एक लोड बैलेंसर कॉन्फ़िगर किया। अब ये लोड बैलेंसर का हमारे पास एक सिंगल इंस्टेंस है। तो यदि हमारे पास ये लोड
बैलेंसर का सिंगल इंस्टेंस है तो ये लोड बैलेंसर भी तो एक सिंगल पॉइंट ऑफ फेलियर बन सकता है। राइट? लेट्स से कि बिकॉज़ ऑफ़
सम एक्स वz रीज़ ये लोड बैलेंसर डाउन हो गया। ये लोड बैलेंसर डाउन हो गया। तो अब यहां पे ये जो यूज़र्स आ रहे हैं, ये जो
क्लाइंट्स आ रहे हैं, इनकी रिक्वेस्ट सर्वर तक जा ही नहीं पाएगी क्योंकि हमारा लोड बैलेंसर ही डाउन हो गया। तो इस केस
में यदि हमारे पास लोड बैलेंसर का केवल एक सिंगल इंस्टेंस होता है व्हेन वी हैव सिंगल इंस्टेंस ऑफ लोड बैलेंसर तो यह
हमारा लोड बैलेंसर सिंगल पॉइंट ऑफ फेलियर बन सकता है। तो अब इस प्रॉब्लम को हम कैसे सॉल्व करेंगे? तो इस प्रॉब्लम को सॉल्व
करने के लिए हमने क्या किया? हमने लोड बैलेंसर को को भी हॉरिजॉन्टली स्केल कर दिया। और हमने क्या किया? हमने लोड
बैलेंसर के मल्टीपल इंस्टेंसेस लगा दिए। मल्टीपल इंस्टेंसेस लगा दिए। तो अब यदि हमारा लोड बैलेंसर का एक इंस्टेंस डाउन भी
होता है तो बाकी के इंस्टेंस एक्टिव रहेंगे। बाकी के इंस्टेंस अप रहेंगे। तो फिर ये इंस्टेंस यूज़र्स की रिक्वेस्ट को
या ट्रैफिक को राउट कर देंगे टू मल्टीपल एप्लीकेशन सर्वर्स। तो ये हमने देखा कि यदि हमारे पास सिंगल लोड बैलेंसर का
इंस्टेंस था तो ये सिंगल पॉइंट ऑफ फेलियर बन सकता था। तो इस प्रॉब्लम को हमने सॉल्व कैसे किया? हमने लोड बैलेंसर के मल्टीपल
इंस्टेंसेस यूज़ किए। ठीक है? तो हमने यह प्रॉब्लम को भी सॉल्व कर दिया। अब यहां पे हमने सर्वर्स को भी हॉरिजॉन्टली स्केल कर
दिया। लोड बैलेंसर्स को भी हॉरिजॉन्टली स्केल कर दिया। अब यहां पे ये हमारा डेटाबेस का हमारे पास केवल एक सिंगल
इंस्टेंस है। राइट? तो यस यहां पे ये डेटाबेस हमारा सिंगल पॉइंट ऑफ फेलियर बन सकता है। तो अब इस प्रॉब्लम को सॉल्व करने
के लिए वी आर गोइंग टू यूज़ मास्टर स्लेव आर्किटेक्चर। तो हमने क्या किया? हमने जहां पर हमारा डेटाबेस सिंगल पॉइंट ऑफ
फेलियर बन सकता था। उस प्रॉब्लम को सॉल्व करने के लिए हमने मास्टर स्लेव आर्किटेक्चर को फॉलो किया और हमने हमारे
डेटाबेस को स्केल कर दिया। बेसिकली हमने मल्टीपल डेटाबेस इंस्टेंसेस लिए। मल्टीपल नोड्स लिए डेटाबेस के। यहां पे मास्टर
स्लेव आर्किटेक्चर में एक हमारे पास हो जाएगा मास्टर नोड। जो कि सारे के सारे राइट ऑपरेशंस के लिए रिस्पांसिबल होगा और
बाकी के होंगे हमारे स्लेव नोड्स। तो ये स्लेव नोड्स क्या करेंगे? ये सिंपली डेटा को रेप्लिककेट करेंगे। जो डेटा इस
इंस्टेंस में होगा, इस डेटाबेस नोड में होगा, वही डेटा इस डेटाबेस नोड में भी होगा। तो हमने क्या देखा कि हम यहां पे
डेटा को रेप्लिकेट करेंगे। डेटाबेस को रेप्लिकेट करेंगे। तो अब यहां पे यदि हमारा एक डेटाबेस इंस्टेंस या एक डेटाबेस
नोड डाउन भी हो जाता है तो हम यूज़र्स की रिक्वेस्ट को फुलफिल करने के लिए दूसरे स्लेव नड्स का यूज़ कर सकते हैं। क्योंकि
दूसरे स्लेव नोड्स में भी सेम डेटा होगा। राइट? हमने क्या देखा कि हम डेटा को रेप्लकेट करेंगे। तो जो डेटा इस डेटाबेस
में होगा वो सेम डेटा इस डेटाबेस में भी होगा। मतलब हमने यहां पे डेटा को रेप्लिकेट कर दिया। तो यदि हमारा एक
डेटाबेस इंस्टेंस या एक डेटाबेस नोट डाउन भी होता है तो हम यूज़र्स की रिक्वेस्ट को दूसरे डेटाबेस के थ्रू फुलफिल कर देंगे।
तो ये देखा हमने एक और केस जहां पे हमारा डेटाबेस सिंगल पॉइंट ऑफ फेलियर बन सकता था। लेकिन उस प्रॉब्लम को हमने सॉल्व कर
दिया मास्टर स्लेव आर्किटेक्चर से। हमने सिंपली डेटाबेस के लिए मल्टीपल नोड्स लिए। हमने मास्टर स्लेव आर्किटेक्चर को फॉलो
किया और हमने डेटा को रेप्लिकेट कर दिया। तो ये देखा हमने एक और पॉइंट जिसमें हमने देखा कि यदि हमारे पास डेटाबेस का केवल एक
सिंगल इंस्टेंस है तो ये डेटाबेस हमारा सिंगल पॉइंट ऑफ फेलियर बन सकता था। तो इस प्रॉब्लम को हमने कैसे सॉल्व किया? इस
प्रॉब्लम को सॉल्व करने के लिए हमने डेटाबेस को भी स्केल कर दिया। एंड वी यूज़्ड मास्टर स्लेव आर्किटेक्चर हियर। तो
हमने डेटा को रेप्लिकेट कर दिया टू मल्टीपल नोड्स। तो अब यदि हमारा एक नोड डाउन भी होता है तो हम यूज़र्स की
रिक्वेस्ट को दूसरे नड या दूसरे डेटाबेस नोड के थ्रू फुलफिल कर सकते हैं। तो ये देखा हमने एक और पॉइंट। अब लेट्स से कि
हमने ये सारे के सारे सर्वर्स को लोड बैलेंसर को हमारे डेटाबेस को एक पर्टिकुलर लोकेशन पे होस्ट कर दिया। स्टोर कर दिया।
तो ये बन जाता है हमारा डेटा सेंटर। ये बन जाता है हमारा डेटा सेंटर। अब यदि यह हमारा डेटा सेंटर एंटायर डेटा सेंटर ही
फेल हो जाता है। यदि ये हमारा एंटायर डेटा सेंटर ही फेल हो जाता है। बिकॉज़ ऑफ़ सम एक्स वz रीज़ ये हमारा एंटायर डेटा सेंटर
ही डाउन हो जाता है। तो इस केस में ये सिंगल पॉइंट ऑफ फेलियर बन सकता है। राइट? यह हमारा डेटा सेंटर सिंगल पॉइंट ऑफ
फेलियर बन सकता है। सो इफ आवर एंटायर डेटा सेंटर गोज़ डाउन तो ये हमारा सिंगल पॉइंट ऑफ फेलियर बन सकता है। तो अब इस प्रॉब्लम
को सॉल्व करने के लिए हम क्या करते हैं? हम मल्टीपल डेटा सेंटर्स बना लेते हैं। हमने सिंपली क्या किया कि हमने
अवेलेबिलिटी ज़ोन लिया। अब एक अवेलेबिलिटी ज़ोन में हमारे पास एक सिंगल डाटा सेंटर भी हो सकता है। मल्टीपल डेटा सेंटर्स भी हो
सकते हैं। तो हमने क्या किया? हमने अवेलेबिलिटी ज़ोन में मल्टीपल डेटा सेंटर्स रखे। तो अब यदि हमारा एक डेटा सेंटर फेल
भी हो जाता है, तो हम यूज़र्स की रिक्वेस्ट को दूसरे डेटा सेंटर के थ्रू फुलफिल कर देंगे। तो ये देखा हमने एक और सॉल्यूशन
जहां हमारा एंटायर डेटा सेंटर डाउन हो गया था या डेटा सेंटर सिंगल पॉइंट ऑफ फेलियर बन गया था। तो इस प्रॉब्लम को हमने कैसे
सॉल्व किया? इस प्रॉब्लम को सॉल्व करने के लिए हमने डेटा सेंटर्स को रेप्लिकेट किया। हमने मल्टीपल डेटा सेंटर्स लिए। तो यदि अब
हमारा एक डेटा सेंटर फेल भी हो जाता है, डाउन भी हो जाता है तो हमारे पास दूसरा डेटा सेंटर अवेलेबल है। तो ये देखा हमने
एक और सॉल्यूशन। अब लेट्स से कि हमारे दोनों डेटा सेंटर डाउन हो जाते हैं। हमारा ये डेटा सेंटर वन भी डाउन हो जाता है।
हमारा डेटा सेंटर टू भी डाउन हो जाता है। और ये दोनों डेटा सेंटर एक अवेलेबिलिटी ज़ोन में है। राइट?
इसका मतलब यह है कि यदि हमारा पूरा अवेलेबिलिटी ज़ोन ही डाउन हो जाता है तब हम क्या करेंगे? तो यदि हमारा पूरा
अवेलेबिलिटी ज़ोन ही डाउन हो जाता है तो यस दिस कैन आल्सो बिकम अ सिंगल पॉइंट ऑफ़ फेलियर। तो यदि हमारे डेटा सेंटर वन, डेटा
सेंटर टू दोनों डाउन हो जाते हैं या हम कह सकते हैं कि हमारा पूरा अवेलेबिलिटी ज़ोन ही डाउन हो जाता है तो यस दिस कैन बिकम अ
सिंगल पॉइंट ऑफ़ फेलियर। तो अब इस प्रॉब्लम को हम कैसे सॉल्व करेंगे? जहां पे हमारा अवेलेबिलिटी ज़ोन ही डाउन हो गया। तो इस
प्रॉब्लम को सॉल्व करने के लिए हम क्या करेंगे? हम मल्टीपल अवेलेबिलिटी ज़ोन बना लेंगे। अब यहां पे क्या हुआ? हमारे पास
अवेलेबिलिटी ज़ोन वन भी आ गया, अवेलेबिलिटी ज़ोन टू भी आ गया। तो अब यदि हमारा अवेलेबिलिटी ज़ोन वन डाउन भी होता है, तो
हमारे पास अवेलेबिलिटी ज़ोन टू है। राइट? तो हम यूज़र्स की रिक्वेस्ट को इस अवेलेबिलिटी ज़ोन टू के थ्रू फुलफिल कर
देंगे। तो ये देखा हमने एक और सॉल्यूशन जहां पे हमारे सारे के सारे डेटा सेंटर्स फेल हो गए थे। एक अवेलेबिलिटी ज़ोन के सारे
डेटा सेंटर्स फेल हो गए थे। इन सिंपल वर्ड्स पूरा अवेलेबिलिटी ज़ोन ही फेल हो गया था। तो, यह सिंगल पॉइंट ऑफ फेलियर बन
गया था। तो, इस प्रॉब्लम को हमने कैसे सॉल्व किया? इस प्रॉब्लम को सॉल्व करने के लिए हमने मल्टीपल अवेलेबिलिटी ज़ोंस यूज
किए। राइट? तो, यदि हमारा अब ये अवेलेबिलिटी ज़ोन वन डाउन भी होता है, तो हम यूज़र्स की रिक्वेस्ट को इस अवेलेबिलिटी
ज़ोन टू के थ्रू फुलफिल कर देंगे। तो, यह देखा हमने एक और सॉल्यूशन। अब लेट्स से कि हमारे अह सारे के सारे अवेलेबिलिटी ज़ोन ही
फेल हो जाते हैं। तब हम क्या करेंगे? तो इसके लिए समझना जरूरी है कि हमारे एक रीजन में हमारे एक रीजन में मल्टीपल
अवेलेबिलिटी ज़ोन हो सकते हैं। हमारे एक रीजन में सिंगल रीजन में लेट्स से इंडिया इंडिया रीजन में मल्टीपल अवेलेबिलिटी ज़ोन
हो सकते हैं। लेट्स से एक हो गया हमारा Aजी वन अवेलेबिलिटी ज़ोन वन। एक ऐसे ही हो गया हमारे पास अवेलेबिलिटी ज़ोन टू। तो यदि
अब हमारे किसी पर्टिकुलर रीजन के सारे के सारे अवेलेबिलिटी जोोन डाउन हो जाते हैं तो हम कह सकते हैं कि हमारा पूरा का पूरा
रीजन ही डाउन हो गया। राइट? पूरा का पूरा रीजन ही डाउन हो गया। तो इस केस में यदि हमारा अवेलेबिलिटी ज़ोन वन भी डाउन हो जाता
है, अवेलेबिलिटी ज़ोन टू भी डाउन हो जाता है, तो हम कह सकते हैं कि हमारा पूरा का पूरा रीजन ही फेल हो गया। हमारा पूरा का
पूरा एंटायर रीजन डाउन हो गया। तो यस दिस कैन आल्सो बिकम अ सिंगल पॉइंट ऑफ फेलियर। तो इस केस में हम क्या करेंगे? हम रीजंस
को भी रेप्लिकेट कर देंगे। मतलब हम मल्टीपल रीजंस का यूज़ कर लेंगे। अब लेट्स से एक ये हो गया हमारा रीजन वन, रीजन टू,
रीजन थ्री, रीजन फोर। तो यदि अब हमारा एक रीजन या लेट्स से दो रीजन डाउन भी होते हैं तो हम यूज़र्स की रिक्वेस्ट को बाकी के
रीजंस के थ्रू फुलफिल कर देंगे। अब ये रीजंस क्या हैं हमारे? यह रीजंस बेसिकली लार्ज ज्योग्राफिकली एरिया है जो एक बहुत
बड़ी ज्योग्राफी को कवर करता है। लेट्स से हम इंडिया को एक रीजन मान सकते हैं और इंडिया रीजन में हमारे पास मल्टीपल
अवेलेबिलिटी ज़ोन हो सकते हैं। तो यहां पे यदि हमारा इंडिया रीजन डाउन होता है। हमने लेट्स से कोई Netflix जैसा सिस्टम बनाया
और यदि हमारे सिस्टम में इंडिया रीजन डाउन होता है या आसपास के कोई और रीजन भी डाउन होते हैं तो हम बाकी के रीजंस के थ्रू
यूज़र्स की रिक्वेस्ट को फुलफिल कर सकते हैं। तो यहां पे हमने क्या किया? हमने रीजंस को भी रेप्लकेट कर दिया। हमने
मल्टीपल रीजंस यूज़ किए। तो यदि हमारा एक रीजन डाउन भी होता है तो हम यूजर की रिक्वेस्ट को दूसरे रीजन में राउट कर सकते
हैं या हम दूसरे रीजन के थ्रू यूजर की रिक्वेस्ट को फुलफिल कर सकते हैं। तो ये देखा हमने एक और पॉइंट जहां पे हमारे एक
पर्टिकुलर रीजन के सारे अवेलेबिलिटी ज़ोन फेल हो गए थे। या हम कह सकते हैं कि एंटायर रीजन हमारा फेल हो गया था। तो इस
केस में हमने क्या किया? इस केस में हमने रीजन को ही रेप्लिकेट कर दिया। हमने सिंपली मल्टीपल रीजंस यूज किए और अब यदि
हमारा एक रीजन डाउन भी होता है तो हम यूज़र्स की रिक्वेस्ट को दूसरे रीजंस के थ्रू फुलफिल कर देंगे। तो ये देखे हमने
कुछ पॉइंट्स जहां हमने देखा कि हम कैसे सिंगल पॉइंट ऑफ फेलियर को अवॉइड कर सकते हैं। हमने यहां पे रीजंस को भी डिस्कस
किया। अवेलेबिलिटी ज़ोन को भी डिस्कस किया। हमने डेटा सेंटर को भी डिस्कस किया। अ जिसमें हमने देखा कि हम डेटाबसेस को, हम
अपने सर्वर्स को, लोड बैलेंसर्स को सबको एक पर्टिकुलर लोकेशन में रखते हैं। जिसे हम बोलते हैं डेटा सेंटर। तो ये डेटा
सेंटर यदि हमारा डाउन होता है तो हमें क्या करना है? तो ये सॉल्यूशन हमने देखा। हमने मास्टर स्लेव आर्किटेक्चर को डिस्कस
किया जिसमें हमने देखा कि हम डेटाबेस को रेप्लिकेट कर देंगे। मल्टीपल डेटाबेस नोड्स को यूज करेंगे और हम डेटा को
रेप्लिकेट करेंगे और ऐसे हम बैकअप से रेडी करेंगे कि यदि हमारा एक डेटाबेस नोड डाउन भी होता है तो हम यूज़र्स की रिक्वेस्ट को
दूसरे डेटाबेस नोड के थ्रू फुलफिल कर देंगे क्योंकि यहां पे हम डेटा को रेप्लिकेट कर रहे हैं। तो सारे नोड्स में
सारे डेटाबेस नोड्स में सेम डेटा होगा। तो हमने ये देखा हमने मल्टीपल एप्लीकेशन सर्वर्स देखे हमने मल्टीपल लोड बैलेंसर्स
देखे मल्टीपल लोड बैलेंसर के इंस्टेंसेस देखे तो ऐसे करके हमने अ रिडंडेंसी को यूज़ करके और रेप्लिकेशन को यूज़ करके सिंगल
पॉइंट ऑफ फेलियर की प्रॉब्लम को काफी हद तक सॉल्व किया। तो यह हमने कुछ सॉलशंस देखे सिंगल पॉइंट ऑफ फेलियर को अवॉइड करने
के जिसमें सबसे पहला देखा हमने रिडंडेंसी जिसमें हमने सबसे पहले क्या देखा रिडंडेंसी और यहां पे रिडंडेंसी का क्या
मतलब है? रिडंडेंसी का मतलब हैविंग मल्टीपल कॉमोनेंट्स दैट कैन टेक ओवर इफ वन फेल्स। तो यदि हमारा एक सर्वर फेल भी होता
है तो हमने क्या किया? हमने मल्टीपल सर्वर्स ले लिए। राइट? या हम कह सकते हैं कि यदि हमारा एक लोड बैलेंसर फेल हो रहा
था तो हमने मल्टीपल लोड बैलेंसर्स ले लिए। तो हमने क्या किया? हमने कॉमोनेंट्स को हॉरिजॉन्टली स्केल कर दिया। एंड नाउ वी
हैव मल्टीपल कॉम्पोनेंट्स। राइट? तो यहां पे हमने कॉमोनेंट्स को हॉरिजॉन्टली स्केल कर दिया। व्हिच इज़ कॉल्ड रिडंडेंसी।
तो ये हमारा पहला सॉल्यूशन था। दूसरा सॉल्यूशन हमने क्या देखा? दूसरा सॉल्यूशन देखा हमने डेटा रेप्लिकेशन। डाटा
रेप्लिकेशन। तो हमने देखा मास्टर स्लेव आर्किटेक्चर में कि हमारे पास एक मास्टर नोड होगा और एक हमारे पास होगा अ एक नहीं
हमारे पास मल्टीपल स्लेव नड्स होंगे। मास्टर नोड हमारा राइट ऑपरेशंस के लिए रिस्पांसिबल होगा और स्लेव नोड्स रीड
ऑपरेशंस के लिए रिस्पांसिबल होंगे। और सारे के सारे स्लेव नड्स जो होंगे वो डेटा को रेप्लिकेट करेंगे। मतलब सारे डेटाबेस
न्स में सेम डेटा हम रखेंगे। तो ये था हमारा दूसरा सॉल्यूशन वि इज डेटा रेप्लिकेशन। अब जो हमारा तीसरा सॉल्यूशन
था वो क्या था कि हमने डेटा को ज्योग्राफिकली डिस्ट्रीब्यूट कर दिया। हमने डेटा सेंटर्स को मल्टीपल अवेलेबिलिटी
ज़ोंस में रखा और हमने डेटा सेंटर को मल्टीपल रीजंस में भी रखा। तो यहां हमने क्या देखा? एक और सॉल्यूशन जियोग्राफिक
डिस्ट्रीब्यूशन। Jio ग्राफिक डिस्ट्रीब्यूशन जिसमें हमने डाटा सेंटर्स को हमारे सर्वर को डेटाबेस को लोड
बैलेंसर्स को हम कह सकते हैं हमने डेटा सेंटर्स को मल्टीपल अवेलेबिलिटी ज़ोंस में रखा। मल्टीपल रीजंस में रखा। तो ये हो गया
हमारा जियोग्राफिक डिस्ट्रीब्यूशन। जियोग्राफिक डिस्ट्रीब्यूशन। तो, यह था हमारा तीसरा स्ट्रेटजी। तीसरी स्ट्रेटजी
अह सिंगल पॉइंट ऑफ़ फेलियर को अवॉइड करने की। और जो हमारी नेक्स्ट स्ट्रेटजी है वो है ग्रेसफुल हैंडलिंग ऑफ फेलियर्स।
ग्रेसफुल हैंडलिंग ऑफ फेलियर्स। तो इसका क्या मतलब है? तो लेट्स से कि हमने Netflix जैसा कोई
एप्लीकेशन बनाया तो उस Netflix एप्लीकेशन में एक रिकमेंडेशन सिस्टम भी होगा। राइट? एक हमारे पास रिकमेंडेशन सिस्टम भी होगा।
अब लेट्स से कि यदि हमारा वो रिकमेंडेशन सिस्टम बिकॉज़ ऑफ सम एक्स व Z रीजन फेल हो जाता है तो अब इस केस में ऐसा नहीं होना
चाहिए कि हमारा पूरा सिस्टम ही क्रैश हो गया। राइट? तो यदि हमारा सिस्टम का हमारे सिस्टम का एक पार्ट फेल होता है। जैसे इस
केस में रिकमेंडेशन सिस्टम फेल हुआ तो ऐसा नहीं होना चाहिए कि हमारा पूरा का पूरा सिस्टम ही उसकी वजह से क्रैश कर गया। तो
ये देखा हमने एक और पॉइंट वि इज ग्रेसफुल हैंडलिंग ऑफ फेलियर्स। तो ये देखी हमने कुछ स्ट्रेटजीस सिंगल पॉइंट ऑफ फेलियर्स
को अवॉइड करने की जिसमें हमने देखा रिडंडेंसी जहां हमने मल्टीपल कॉमोनेंट्स रखे। कंपोनेंट्स को हॉरिजॉन्टली स्केल कर
दिया। और यह रिडंडेंसी में हमारे पास दो टाइप के कॉमोनेंट्स हो सकते हैं। एक हमारे पास एक्टिव कॉमोनेंट्स हो सकते हैं। यहां
हमारे पास एक हो सकते हैं एक्टिव कॉमोनेंट्स और एक हमारे पास यहां हो सकते हैं पैसिव कॉमोनेंट्स। एक हो सकते हैं
हमारे पास पैसिव कॉमोनेंट्स। तो अब दोनों में क्या डिफरेंस है? दोनों में ये डिफरेंस है कि जो हमारे ये एक्टिव
कॉमोनेंट्स होंगे ये हमेशा एक्टिव रहेंगे। दे विल ऑलवेज बी अप एंड रनिंग। और जो हमारे ये पैसिव कॉमोनेंट्स होंगे ये पैसिव
कॉमोनेंट्स जो होंगे हमारे या स्टैंड बाय कॉमोनेंट हम इन्हें बोलते हैं। तो ये हमारे पैसिव कॉमोनेंट्स हमेशा एज अ बैकअप
यूज़ होंगे। दे विल आल्सो बी यूज्ड एज बैकअप। तो ये देखा हमने पहला पॉइंट व्हिच इज़ रिडंडेंसी। सेकंड था हमारा डेटा
रेप्लिकेशन जहां हम डेटा को रेप्लिकेट कर देते हैं टू मल्टीपल डेटाबेस नोड्स। तो ये था हमारा दूसरा पॉइंट। उसके बाद हमने देखा
जियोग्राफिक डिस्ट्रीब्यूशन। तो हमने यहां पे डेटा सेंटर्स को मल्टीपल अवेलेबिलिटी ज़ोन में रखा। अह डेटा सेंटर्स को रीजंस
में भी डिस्ट्रीब्यूट कर दिया। बेसिकली हमने डेटा सेंटर्स को ज्योग्राफिकली डिस्ट्रीब्यूट कर दिया। यहां पे हम सीडीएन
का भी यूज़ कर सकते हैं। हम सीडीएन का भी यूज़ कर सकते हैं। उसके बाद हमने यहां पे देखा ग्रेसफुल हैंडलिंग ऑफ फेलियर्स।
ग्रेसफुल हैंडलिंग ऑफ फेलियर्स। जिसमें हमने देखा कि यदि हमारे सिस्टम का एक पार्ट प्रॉब्लम करता है या एक पार्ट फेल
होता है, डाउन होता है तो हम पूरे के पूरे सिस्टम को डाउन नहीं करेंगे। हमने एग्जांपल भी देखा कि लेट से Netflix
सिस्टम में यदि हमारा रिकमेंडेशन सिस्टम फेल होता है तो ऐसा नहीं होना चाहिए कि उसकी वजह से हमारा पूरा सिस्टम क्रैश हो
गया। पूरा सिस्टम क्रैश कर गया। तो ये देखे हमने कुछ स्ट्रेटजीस जिसके थ्रू हम सिंगल पॉइंट ऑफ फेलियर्स को अवॉइड कर सकते
हैं। एंड आई होप कि अब आपको समझ आ गया होगा कि हम सिंगल पॉइंट ऑफ फेलियर्स को कैसे इजीली अवॉइड कर सकते हैं हमारे लार्ज
स्केल सिस्टम में। अब सिंगल पॉइंट ऑफ फेलियर इज़ नॉट समथिंग जिसे आप कंप्लीटली अपने एप्लीकेशन से या अपने सिस्टम से हटा
सकते हैं। वो कहीं ना कहीं आपको प्रॉब्लम करेगा ही। पर हमारा गोल क्या है कि हम सिंगल पॉइंट ऑफ फेलियर्स को मिनिमाइज कर
सकें। हम उसे मिनिमाइज कर दें। और सिंगल पॉइंट ऑफ फेलियर्स को मिनिमाइज करने का क्या मतलब है? कि यदि हमारे सिस्टम में एक
सिस्टम के किसी पार्ट में प्रॉब्लम भी आती है तो उसकी वजह से ऐसा नहीं होना चाहिए कि हमारा एंटायर सिस्टम क्रैश कर गया या
एंटायर सिस्टम डाउन हो गया। तो यस फेलियर्स कांट बी एंटायरली अवॉयडेड। लेकिन हमारा गोल क्या होगा कि हम इन सिंगल पॉइंट
ऑफ फेलियर्स को मिनिमाइज कर सकें। और सिंगल पॉइंट ऑफ फेलियर्स को मिनिमाइज करने से हमारा सिस्टम रेिलिएंट होगा। हमारे
सिस्टम की रिलायबिलिटी बढ़ जाएगी। रिलायबिलिटी इंप्रूव होगी, अवेलेबिलिटी इंप्रूव होगी और हमारा सिस्टम ज्यादा
रेिलिएंट होगा। सो यस, दिस इज़ ऑल फॉर दिस वीडियो एंड आई होप कि अब आपको पता होगा हाउ यू कैन अवॉइड सिंगल पॉइंट ऑफ
फेलियर्स। सो यस दिस इज ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन ब बाय शो सम लव।
थैंक्स। [संगीत] हे एवरीवन वेलकम बैक। वेलकम टू अनदर
एक्साइटिंग वीडियो। और आज के इस वीडियो में हम बात करने वाले हैं मैसेजिंग क्यूज़ के बारे में कि ये मैसेजिंग क्यूज़ काम
कैसे करते हैं? कहां पे हमें इनका यूज़ होता है और हम देखेंगे कुछ फेमस मैसेजिंग क्यूज़ के बारे में जिसमें हम देखेंगे
काफका को रैबिट एमक्यू को। तो स्टार्ट करते हैं एंड लेट मी जस्ट मिनिमाइज़ माय स्क्रीन। ओके? तो स्टार्ट करते हैं
डेफिनेशन से। और आप सबसे पहले ये डेफिनेशन पढ़िए कि अ मैसेज क्यू इज़ अ कम्युनिकेशन मैकेनिज्म दैट इनेबल्स डिफरेंट पार्ट्स ऑफ
अ सिस्टम मे बी सर्विसेस टू सेंड एंड रिसीव मैसेजेस एसिंक्रोनसली। तो इसे अब हम एक एग्जांपल के थ्रू समझते
हैं। लेट्स से हम हमने कोई ई-कॉमर्स एप्लीकेशन बनाया Amazon जैसा। तो उस ई-कॉमर्स एप्लीकेशन में हमारे पास डिफरेंट
सर्विज होंगी। राइट? एक हमारे पास ये ऑर्डर सर्विस हो सकती है। हमारे पास ये पेमेंट सर्विस हो सकती है। इन्वेंटरी
सर्विस, यूजर सर्विस, नोटिफिकेशन सर्विस। तो ऐसे हमारे पास डिफरेंट सर्विसेस हो सकती हैं। तो हम क्या कह सकते हैं कि ये
डिफरेंट सर्विसेस हमारे सिस्टम के डिफरेंट पार्ट्स हैं। राइट? इन सिंपल वर्ड्स हम इन सर्विसेस को सिस्टम के डिफरेंट-डिफरेंट
पार्ट्स कंसीडर कर सकते हैं। राइट? और यहां पे हर सर्विस का अपना एक अलग टास्क होगा। हर सर्विस कुछ अपना अलग टास्क
परफॉर्म कर रही होगी। जैसे ऑर्डर सर्विस विल बी रिस्पांसिबल फॉर प्लेसिंग ऑल दी ऑर्डर्स। पेमेंट सर्विस पेमेंट्स को
प्रोसेस करेगी। तो ऐसे हर सर्विस के अपने इंडिविजुअल कुछ टास्क होंगे। अब यह मैसेजिंग क्यों क्या है? इट्स अ
कम्युनिकेशन मैकेनिज्म जो डिफरेंट पार्ट्स को सिस्टम के डिफरेंट पार्ट्स के बीच में एसिंक्रोनस कम्युनिकेशन इस्टैब्लिश करता
है। और फिर ये एसिंक्रोनस कम्युनिकेशन इस्टैब्लिश हो जाने के बाद यह डिफरेंट पार्ट्स या डिफरेंट सर्विसेज आपस में एक
दूसरे को मैसेजेस सेंड कर सकती है। यह ऑर्डर सर्विस पेमेंट सर्विस को मैसेज सेंड कर सकती है। पेमेंट सर्विस ऑर्डर सर्विस
को मैसेज सेंड कर सकती है। तो हम कह सकते हैं कि मैसेजिंग क्यू इज अ वे ऑफ कम्युनिकेशन थ्रू व्हिच डिफरेंट सर्विसेस
डिफरेंट पार्ट्स ऑफ सिस्टम कैन कम्युनिकेट विद ईच अदर एंड कैन सेंड मैसेजेस टू ईच अदर एसिंक्रोनसली।
तो अब यहां पे जो सारा खेल है वो इस एसिंक्रोनस वर्ड का ही है। यदि आपने इस एसिंक्रोनस वर्ड को समझ लिया कि ये
एसिंक्रोनस वर्ड क्या है तो आपको ईजीली समझ आ जाएगा कि मैसेजिंग कज़ को आपको कहां यूज़ करना है। तो होता क्या है कि हमारी जो
माइक्रो सर्विसेस होती हैं वो आपस में दो तरीके से कम्युनिकेट कर सकती है। लेट्स से ये हमारी ऑर्डर सर्विस ये पेमेंट सर्विस
ये दो तरीके से कम्युनिकेट कर सकती है। फर्स्ट होता है सिंक्रोनस वे ऑफ कम्युनिकेशन। फर्स्ट होता है सिंक्रोनस वे
ऑफ़ कम्युनिकेशन। और सेकंड वे होता है एसिंक्रोनस वे ऑफ़ कम्युनिकेशन। अब जो ये सिंक्रोनस वे ऑफ़ कम्युनिकेशन होता है, यह
होता है रेस्ट रेस्ट एपीआई के थ्रू, जीआरपीसी के थ्रू, इन सिंपल वर्ड्स नेटवर्क कॉल्स के थ्रू। और जो हमारा ये
एसिंक कम्युनिकेशन होता है, यह होता है मैसेजिंग कज़ के थ्रू। ये क्या होता है? यह मैसेजिंग कज़ के थ्रू पॉसिबल है। तो अब
यहां पे यह समझना जरूरी है कि जब माइक्रो सर्विसेस के बीच में कम्युनिकेशन ये सिंक्रोनस वे में पॉसिबल हो जा रहा था तो
हमें एसिंक्रोनस कम्युनिकेशन की नीड क्यों पड़ी। तो इसे हम एक एग्जांपल के थ्रू समझते हैं और जैसे ही फिर आपको वो
एग्जांपल समझ आ जाएगा तो आपको समझ आ जाएगा कि हमें एसिंक्रोनस कम्युनिकेशन की नीड क्यों है एंड देन यू विल बी एबल टू
अंडरस्टैंड कि हमें मैसेजिंग कज़ को कहां पे यूज़ करना है। तो इसे एक एग्जांपल के थ्रू समझते हैं। लेट्स से सेम एग्जांपल हम
लेते हैं। हमने ई-कॉमर्स एप्लीकेशन बनाया। हमने ई-कॉमर्स एप्लीकेशन बनाया। तो उस ई-कॉमर्स एप्लीकेशन में हमारे पास ये
ऑर्डर सर्विस हो सकती है। हमारे पास इन्वेंटरी सर्विस हो सकती है। पेमेंट सर्विस हो सकती है। नोटिफिकेशन सर्विस
होती है। अब ये ऑर्डर सर्विस का काम क्या है? कि ये यूज़र्स के ऑर्डर को प्रोसेस करेगी। यू यूज़र्स के ऑर्डर्स को प्लेस
करेगी। इन्वेंटरी सर्विस का काम क्या है? कि यह करंट स्टॉक्स को मैनेज करती है। करंट स्टॉक्स को मैनेज करती है। पेमेंट
सर्विस यूज़र्स की पेमेंट को प्रोसेस करती है। नोटिफिकेशन सर्विस यूजर को नोटिफाई करती है कि उसका ऑर्डर प्लेस हुआ है या
नहीं। उसका ऑर्डर कहां पर है? तो यह सारे इंफॉर्मेशन यह नोटिफिकेशन सर्विस प्रोवाइड करती है। तो अब लेट्स से कि हमारे
एप्लीकेशन में कंटिन्यू यूज़र्स आते हैं। लेट्स से बिग बिलियन डेज में या किसी अच्छी सेल में हमारे पास कंटिन्यू यूज़र्स
आते हैं हमारे Amazon एप्लीकेशन में। तो अब यहां पे ये ऑर्डर सर्विस को लेट्स से हर सेकंड में 10 के नए ऑर्डर्स आते हैं।
तो हर सेकंड में ऑर्डर सर्विस के पास क्या हो रहा है? 10 के नए ऑर्डर्स आते हैं। तो हर ऑर्डर के लिए अब हम क्या प्रोसेस फॉलो
करेंगे? सबसे पहले क्या होगा कि ये ऑर्डर सर्विस जाएगी इन्वेंटरी सर्विस के पास और फिर यहां पे वो इन्वेंटरी सर्विस के पास
जाएगी और जो करंट स्टॉक है उसको रिड्यूस करेगी। राइट? लेट्स से हमने पीनट बटर ऑर्डर किया। अब पीनट बटर का जो करंट स्टॉक
था वो था फाइव। तो यहां पे हम सबसे पहले क्या करेंगे? ये इन्वेंटरी सर्विस क्या करेगी? इस स्टॉक काउंट को रिड्यूस करेगी।
तो हमने फाइव से फोर कर दिया। उसके बाद नेक्स्ट काम का क्या होगा कि यह ऑर्डर सर्विस फिर यह पेमेंट सर्विस के पास जाएगी
और यह पेमेंट सर्विस पेमेंट को प्रोसेस करेगी। यूजर की पेमेंट को इनिशिएट करेगी। उसे प्रोसेस करेगी। जैसे ही पेमेंट
कंप्लीट हो जाएगी, फिर यह ऑर्डर सर्विस इस नोटिफिकेशन सर्विस को बोलेगी कि यूजर को नोटिफिकेशन सेंड कर दो कि योर ऑर्डर हैज़
बीन प्लेस्ड। तो इस ऑर्डर में इस ऑर्डर में हमारे ये टास्क कंप्लीट होंगे। तो अब यहां पे सिंक्रोनस कम्युनिकेशन में क्या
होगा कि ये ऑर्डर सर्विस सबसे पहले ऑर्डर के लिए जाएगी इन्वेंटरी सर्विस के पास। जैसे ही ये ऑर्डर प्लेस करेगी फिर ये
जाएगी इन्वेंटरी सर्विस के पास और यहां पे वो स्टॉक को रिड्यूस करेगी। राइट? ये हमने देखा कि स्टॉक को फाइव से फोर करेगी। ये
हमारा है पहला स्टेप। उसके बाद ये जैसे ही इन्वेंटरी सर्विस बोलेगी कि ठीक है स्टॉक अपडेट हो गया। करंट स्टॉक को हमने रिड्यूस
कर दिया। फिर ये ऑर्डर सर्विस नेक्स्ट टास्क के लिए पेमेंट सर्विस के पास जाएगी। जैसे ही पेमेंट इनिश पेमेंट इनिशिएट होगी,
पेमेंट प्रोसेस होगी। अब यह पेमेंट फेल भी हो सकती है, सक्सेसफुल भी हो सकती है। तो, उसके लिए यह पेमेंट सर्विस मैसेज भेजेगी
इस ऑर्डर सर्विस को। फिर यह ऑर्डर सर्विस पेमेंट के हिसाब से पेमेंट यदि सक्सेसफुल होती है या फेल होती है तो उसके हिसाब से
यह नोटिफिकेशन भेजेगी यूजर को तो यह यहां पे नोटिफिकेशन सर्विस को कॉल करेगी और फिर यह नोटिफिकेशन सर्विस इसे यहां पे
रिस्पांस देगी। तो यहां सिंक्रोनस कम्युनिकेशन में प्रॉब्लम क्या है? पहली प्रॉब्लम तो यह है कि यदि इस ऑर्डर सर्विस
को इस पेमेंट सर्विस को कुछ भी मैसेज भेजना है तो सबसे पहले तो इस पेमेंट सर्विस का अवेलेबल होना इंपॉर्टेंट है।
राइट? इसका अवेलेबल अवेलेबल होना इंपॉर्टेंट है। दूसरा क्या है कि दूसरी प्रॉब्लम क्या है सिंक्रोनस कम्युनिकेशन
में कि यदि ये पेमेंट सर्विस पेमेंट को प्रोसेस करने में ज्यादा टाइम लगा रही है। पेमेंट को इनिशिएट करने में या पेमेंट को
प्रोसेस करने में ज्यादा टाइम लगा रही है तो यहां पे हमें रिस्पांस के लिए वेट करना होगा। यहां पे हमें रिस्पांस में डिले
होगा। या रिस्पांस में हमें डिले होगा। तो पहली प्रॉब्लम क्या आ रही थी कि जो हमारे कंज्यूमर है जिसे हमें मैसेज भेजना है उसे
अवेलेबल होना रहे होना पड़ेगा। उसका अवेलेबल होना मस्ट है। दूसरा क्या है कि यहां पे हमें रिस्पांस में डिले हो रहा
है। यहां पे हमें रिस्पांस में डिले हो रहा है। अब जो तीसरी प्रॉब्लम हमारी सिंक्रोनस कम्युनिकेशन में आ सकती है वो
यह है कि लेट्स से यहां पे हमने ऑर्डर सर्विस से पेमेंट सर्विस को कुछ मैसेज भेजा। पेमेंट सर्विस को मैसेज तो गया
लेकिन ये पेमेंट सर्विस तुरंत क्रैश कर गई। तो अब यहां पे जो डाटा हमने भेजा था जो डेटा इस ऑर्डर सर्विस ने भेजा था वो
डेटा यहां पे लॉस हो गया। सो हियर थर्ड प्रॉब्लम इज़ डेटा लॉस्ट। डेटा लॉस्ट। तो ये कुछ प्रॉब्लम आती है हमारे सिंक्रोनस
कम्युनिकेशन में। अब एसिंक्रोनस कम्युनिकेशन इन प्रॉब्लम्स को कैसे सॉल्व करता है? कैसे इन प्रॉब्लम्स को दूर करता
है? इसे हम समझते हैं। तो ये तीन प्रॉब्लम्स हमें आ रही थी सिंक्रोनस कम्युनिकेशन में एक ही अवेलेबिलिटी की, एक
रिस्पांस डिले और यहां पे डेटा लॉस। तो ये तीन प्रॉब्लम्स हमें सिंक्रोनस कम्युनिकेशन में आ रही थी। तो अब हम देखते
हैं कि एसिंक्रोनस कम्युनिकेशन हमारी इन प्रॉब्लम्स को कैसे दूर करता है? तो एसिंक्रोनस कम्युनिकेशन में हम क्या करते
हैं? हम सारे के सारे इवेंट्स को या मैसेजेस को एक मैसेज क्यू में भेज देते हैं। हम एक मैसेज क्यू में भेज देते हैं।
लेट्स सेम एग्जांपल हम लेते हैं कि इस ऑर्डर सर्विस को पेमेंट सर्विस को कुछ मैसेज भेजना है। तो अब एसिंक्रोनस
कम्युनिकेशन में हम क्या करेंगे कि ये ऑर्डर सर्विस सिंपली इस मैसेज को जो भी मैसेज उसे पेमेंट सर्विस को भेजना है वो
उस मैसेज को इस मैसेजिंग क्यू में भेज देगी। इस मैसेजिंग क्यू में भेज देगी और उसके बाद फिर यह पेमेंट सर्विस इस
मैसेजिंग क्यू से उस मैसेज को कंज्यूम कर लेगी या रिट्रीव कर लेगी। तो अब हम देखते हैं कि एसिंक्रोनस कम्युनिकेशन का यूज़
करने से हमने इन प्रॉब्लम्स को कैसे सॉल्व किया? ये अवेलेबिलिटी, रिस्पांस डिले, डेटा लॉस्ट ये प्रॉब्लम को हमने कैसे
सॉल्व किया। तो जो हमारा सिंक्रोनस कम्युनिकेशन है वो रियल टाइम में होता है और वहां पे सारे कॉमोनेंट्स का अवेलेबल
होना मस्ट है। एग्जिस्ट करना मस्ट है। तो अब सिंक्रोनस कम्युनिकेशन में क्या हो रहा था कि यदि ऑर्डर सर्विस को पेमेंट सर्विस
को कुछ मैसेज भेजना है तो पेमेंट सर्विस का अवेलेबल होना इंपॉर्टेंट है। लेकिन अब यहां पे एसिंक्रोनस कम्युनिकेशन में हमें
फर्क नहीं पड़ता कि पेमेंट सर्विस अवेलेबल है या नहीं। एग्जिस्ट करती है या नहीं। यदि उसके लिए कुछ मैसेज है तो यह ऑर्डर
सर्विस सिंपली उस मैसेज को इस मैसेज क्यू में डाल देगी। उसका काम यहीं पर कंप्लीट हो जाएगा। तो अब यहां पे ये अवेलेबिलिटी
वाली प्रॉब्लम को हमने सॉल्व कर दिया। हमें फर्क नहीं पड़ता कि जो हमारा कंज्यूमर है या जिसे हमें मैसेज भेजना है
वो अवेलेबल है या नहीं। ऑर्डर सर्विस का काम क्या था कि उसे पेमेंट सर्विस को मैसेज भेजना है। तो उसने सिंपली क्या
किया? इस मैसेज को मैसेजिंग क्यू में डाल दिया। अब आगे ये मैसेजिंग क्यू की रिस्पांसिबिलिटी है कि वो कैसे उस मैसेज
को पेमेंट सर्विस को भेजती है। तो यहां पे हमने ये अवेलेबिलिटी वाली प्रॉब्लम को सॉल्व किया। अब जो हमारी दूसरी प्रॉब्लम
थी सिंक्रोनस कम्युनिकेशन में वो थी रिस्पांस डिले। क्या हो रहा था कि यदि ये पेमेंट सर्विस पेमेंट को प्रोसेस करने में
टाइम लगा रही थी तो इस केस में ऑर्डर सर्विस को वेट करना पड़ रहा था। यहां पे रिस्पांस में डिले आने की वजह से इस ऑर्डर
सर्विस को वेट करना पड़ रहा था और उस वेट की वजह से वो बाकी के काम कंप्लीट नहीं कर पा रही थी। बाकी के टास्क कंप्लीट नहीं कर
पा रही थी। अब ऐसा क्यों होता है? क्योंकि सिंक्रोनस कम्युनिकेशन में हमारे हम ब्लॉकिंग नेचर देखते हैं। मतलब जो हमारा
यह सेंडर है जिसने रिक्वेस्ट की थी इसने बोला था पेमेंट सर्विस को कि यूजर की पेमेंट को प्रोसेस करो। यूजर की पेमेंट को
इनिशिएट करो। तो यहां पे ये हमारी ऑर्डर सर्विस क्या है? सेंडर है। तो ये सेंडर तब तक के लिए ब्लॉक हो जाएगा जब तक उसे
पेमेंट सर्विस से रिस्पांस नहीं मिलता। तो यदि ये पेमेंट सर्विस रिस्पांस में रिस्पांस भेजने में डिले करती है तो ये
ऑर्डर सर्विस ब्लॉक हो जाएगी। अब ब्लॉक होने का क्या मतलब है कि ये बाकी के टास्क परफॉर्म नहीं कर पाएगी। बाकी के टास्क
परफॉर्म करने से वो ब्लॉक हो जाएगी। तो यहां पे यदि रिस्पांस डिले होता है तो हमारी ऑर्डर सर्विस ब्लॉक हो जाएगी और वो
बाकी के टास्क कंप्लीट नहीं कर पाएगी। तो ये एक प्रॉब्लम आ रही थी हमारी सिंक्रोनस कम्युनिकेशन में। लेकिन अब यहां पे
एसिंक्रोनस कम्युनिकेशन में क्या होता है कि ऑर्डर सर्विस को ऑर्डर सर्विस को मैसेज भेजना है पेमेंट सर्विस को कि देखो एक
यूजर आया है उसकी पेमेंट को तुम्हें प्रोसेस करना है। तो यह ऑर्डर सर्विस क्या करेगी? वह सिंपली इस मैसेज को मैसेजिंग
क्यू में डाल देगी और फिर वह बाकी के काम कंप्लीट करने लगेगी। फिर यह मैसेजिंग क्यू से मैसेज को पेमेंट सर्विस रिट्रीव कर
लेगी और इस यूजर की पेमेंट को प्रोसेस करेगी। तो यहां पे हमने ये दूसरी प्रॉब्लम को भी सॉल्व कर लिया जो कि थी रिस्पांस
डिले। और इस रिस्पांस डिले की वजह से क्या प्रॉब्लम आ रही थी कि जो हमारी ऑर्डर सर्विस थी वो बाकी के टास्क कंप्लीट नहीं
कर पा रही थी। लेकिन अब यहां पे हमने क्या किया? ऑर्डर सर्विस ने सिंपली पेमेंट सर्विस के लिए जो मैसेज था उसे मैसेजिंग
क्यू में डाल दिया और उसके बाद वह अपने बाकी के टास्क कंप्लीट करने लगी। जैसे नोटिफिकेशन सर्विस को कॉल करना या किसी और
सर्विस को कॉल करना। तो ये एक और प्रॉब्लम को हमने सॉल्व कर दिया व्हिच वाज़ रिस्पांस डिले। तो ये प्रॉब्लम को भी हमने
एसिंक्रोनस कम्युनिकेशन से सॉल्व कर दिया। अब जो हमारी तीसरी प्रॉब्लम थी वो थी डेटा लॉस्ट। तो ये डाटा लॉस्ट में क्या हो रहा
था कि जैसे यदि ऑर्डर सर्विस ने कुछ मैसेज भेजा पेमेंट सर्विस को और बीच में यदि ये पेमेंट सर्विस या ये ऑर्डर सर्विस क्रैश
कर गई तो यहां पे हमारा डेटा लॉस्ट हो जा रहा था। लेकिन यहां पे एसिंक्रोनस कम्युनिकेशन में जहां हमने मैसेजिंग क्यूज़
को यूज़ किया वहां पे डेटा लॉस्ट जैसी प्रॉब्लम नहीं आती है। क्योंकि यहां पे तो हमने डेटा को या मैसेज को मैसेजिंग क्यू
में स्टोर कर दिया। राइट? तो यदि ये हमारा प्रोड्यूसर या कंज्यूमर दोनों में से कोई एक फेल भी हो जाता है तो हमारा मैसेज यहां
पे मैसेजिंग क्यू में स्टर्ड है। तो यहां से हम उसे रिट्रीव कर सकते हैं। तो ये देखा हमने कि एसिंक्रोनस कम्युनिकेशन
हमारी सिंक्रोनस कम्युनिकेशन की प्रॉब्लम्स को सॉल्व कर रहा है। तो अब आपको समझ आया होगा कि एसिंक्रोनस
कम्युनिकेशन की हमें नीड क्यों है। तो अब आप समझ सकते हैं कि मैसेजिंग क्यूज़ को हमें कहां पे यूज़ करना है। तो, यह देखा
हमने एसिंक्रोनस कम्युनिकेशन की नीड कि हमें एसिंक्रोनस कम्युनिकेशन की नीड क्यों है? और हमने देखा वन ऑफ़ द यूज़ केस ऑफ़
मैसेजिंग क्यूज़। आगे हम मैसेजिंग क्यूज़ के और भी यूज़ केसेस देखेंगे। लेकिन, यह हमने पहला यूज़ केस देखा मैसेजिंग क्यूज़ का जो
था एसिंक्रोनस कम्युनिकेशन। कि इफ वी हैव टू इनेबल और एस्टैब्लिश एसिंक्रोनस कम्युनिकेशन इन आवर सिस्टम, तो हम
मैसेजिंग क्यूज़ को यूज़ करेंगे। तो हम कह सकते हैं कि ये मैसेजिंग क्यूज़ एक्ट्स एज एन इंटरमीडिएट जो टेंपरेरी मैसेजेस को
होल्ड करते हैं। जो मैसेज प्रोड्यूसर्स ने इन्हें हम बोलते हैं प्रोड्यूसर्स। जो मैसेजेस भेज रहा है उसे हम बोलते हैं
प्रोड्यूसर या पब्लिशर। तो, यह मैसेजिंग क्यूज़ क्या करते हैं? यह एक इंटरमीडिएट की तरह काम करते हैं और यह टेंपरेरी मैसेजेस
को होल्ड करते हैं। जो मैसेजेस प्रोड्यूसर ने सेंड किए या पब्लिशर ने सेंड किए उन्हें यह होल्ड करते हैं और फिर यह उन
मैसेजेस को कंज्यूमर्स को भेज देते हैं। तो इन्हें हम बोलते हैं कंज्यूमर्स या सब्सक्राइबर्स। तो जो मैसेज भेज रहा है
उसे हम बोलेंगे प्रोड्यूसर और जो मैसेज रिसीव कर रहा है उसे हम बोलेंगे कंज्यूमर या सब्सक्राइबर। तो अब हम समझते हैं कोर
कॉम्पोनेंट्स मैसेजिंग कस के कुछ कोर कॉम्पोनेंट्स को। तो उसमें सबसे पहला है हमारा प्रोड्यूसर। तो हमने जस्ट अभी देखा
कि ये प्रोड्यूसर क्या करता है? यह मैसेजेस जनरेट करता है। ये मैसेज जनरेट करता है और फिर ये उस मैसेज को इस
मैसेजिंग क्यू में भेज देता है। यह मैसेजिंग क्यू में उस मैसेज को भेज देता है। तो जो एंटिटी हमारी मैसेज को जनरेट
करके क्यू में भेजती है उसे हम बोलते हैं प्रोड्यूसर। उसके बाद आते हैं हमारे कंज्यूमर या सब्सक्राइबर्स। तो जो एंटिटी
मैसेजेस को रिसीव करती है, जो एंटिटी इन मैसेजेस को रिसीव करती है, उसे हम बोलते हैं कंज्यूमर्स। सो, दीज़ कंज्यूमर्स पुल
मैसेजेस फ्रॉम द क्यू एंड प्रोसेस देम। तो, ये कंज्यूमर्स क्या करते हैं? ये क्यू में से मैसेज को रीड करते हैं। तो, यह थी
हमारी दूसरी एंटिटी व्हिच इज़ कंज्यूमर और सब्सक्राइबर। कंज्यूमर और सब्सक्राइबर। उसके बाद यह होता है हमारा क्यू। क्यू इज
नथिंग बट अ डेटा स्ट्रक्चर जहां पर हम मैसेजेस को स्टोर करते हैं। और यह मैसेजेस को हम कब तक स्टोर रखते हैं? जब तक इन
मैसेजेस को यह कंज्यूमर कंज्यूम ना कर ले। तो हम तब तक इन मैसेजेस को इस क्यू में स्टोर रखते हैं। तो ये देखिए हमने तीसरी
एंटिटी जो थी क्यूज़। तो ये देखा हमने क्यूज़ को। अब यहां पे होता है हमारा क्यू मैनेजर जिसे हम ब्रोकर बोलते हैं। तो यह
कंप्लीट एंटिटी। यह कंप्लीट एंटिटी को हम क्यू मैनेजर या ब्रोकर बोलते हैं। तो, यह ब्रोकर या क्यू मैनेजर क्या है? इट इज़
नथिंग बट अ सॉफ्टवेयर और सर्विस जो कि मैसेजिंग क्यूज़ को मैनेज करती है। यह मैसेजेस की डिलीवरी को हैंडल करती है और
यह इंश्योर करती है कि जो भी मैसेजेस हमारे जा रहे हैं, वह सही जगह जा रहे हैं या नहीं। सही कंज्यूमर के पास जा रहे हैं
या नहीं। तो, यह होती है हमारी एक और एंटिटी जिसे हम बोलते हैं ब्रोकर या क्यू मैनेजर। तो ये देखा हमने क्यू मैनेजर के
बारे में। अब जो हमारा नेक्स्ट कॉम्पोनेंट है वो है ये मैसेजेस। तो ये मैसेजेस क्या हैं? दीज़ मैसेजेस आर द यूनिट ऑफ डेटा जो
हम क्यू के थ्रू इन कंज्यूमर्स को सेंड कर रहे हैं। तो ये मैसेजेस क्या हैं? ये यूनिट ऑफ डेटा है जो हम कंज्यूमर्स को
सेंड कर रहे हैं इस क्यू के थ्रू। और अब इन मैसेजेस में इन मैसेजेस में हमारा एक पेलोड होता है। पेलोड होता है जो कि
एक्चुअल डेटा होगा जो हमें सेंड करना है कंज्यूमर्स को। तो इन मैसेजेस में हमारा पेलोड होगा और हमारा मेटा डेटा होगा। मेटा
डेटा होगा। तो अब मेटा डेटा में क्या आ सकता है? हमारे हेडर्स आ सकते हैं, टाइम स्टेम्स आ सकता है, टास्क की प्रायोरिटी आ
सकती है या मैसेज की प्रायोरिटी आ सकती है। तो हमारे मैसेज में ये दो चीजें रहेंगी। एक होगा पेलोड व्हिच इज़ एक्चुअल
डेटा और एक होगा मेटा डेटा। तो ये देखा हमने कोर कॉम्पोनेंट्स को। हमारे मैसेजिंग क्यू के कोर कॉम्पोनेंट्स को। अब हम देखते
हैं कि ये मैसेजिंग क्यूज़ काम कैसे करते हैं। तो सबसे पहले हमारा ये प्रोड्यूसर मैसेजेस को क्रिएट करता है। मैसेजेस को वो
जनरेट करता है। तो इसे बोलते हैं हम मैसेज क्रिएशन स्टेट। तो सबसे पहले यह प्रोड्यूसर क्या करेगा? यह मैसेजेस को
जनरेट करेगा जिसे हम बोलते हैं मैसेज क्रिएशन। उसके बाद यह प्रोड्यूसर इन मैसेजेस को इन मैसेजेस को यहां भेज देगा
इस क्यू में। यह प्रोड्यूसर क्या करेगा? इन मैसेजेस को भेज देगा इस क्यू में और इसे हम बोलते हैं मैसेज इन क्यू। मैसेज एन
क्यू। उसके बाद क्या होगा? जैसे ही यह मैसेज को हम इस क्यू में स्टोर करेंगे तो यह ब्रोकर प्रोड्यूसर को या पब्लिशर को
एकनॉलेजमेंट सेंड करेगा। यह ब्रोकर क्या करेगा? यह पब्लिशर को या प्रोड्यूसर को एकनॉलेजमेंट सेंड करेगा कि देखो हमने
तुम्हारा मैसेज सक्सेसफुली स्टोर कर लिया है। तो वो ऐसी एकनॉलेजमेंट इस प्रोड्यूसर को सेंड करेगा। उसके बाद हमारे ये मैसेज
या हमारा मैसेज Q तक तो आ गया। Q में हमने इसको स्टोर कर दिया। अब ये मैसेज हम Q में परमानेंट भी स्टोर कर सकते हैं। टेंपरेरी
भी स्टोर कर सकते हैं। इट डिपेंड्स ऑन आवर कॉन्फ़िगरेशन। तो, अभी तक हमने क्या किया? प्रोड्यूसर ने सिंपली मैसेज को जनरेट
किया। मैसेज क्रिएट किया। फिर यह मैसेज को उसने यहां क्यू में स्टोर किया। और जैसे ही वह मैसेज क्यू में स्टोर हुआ, ब्रोकर
ने एकनॉलेजमेंट सेंड की कि तुम्हारा मैसेज सक्सेसफुली q में स्टोर हो गया है। उसके बाद अब यह कंज्यूमर यहां से q से इस मैसेज
को रिट्रीव कर लेगा या कंज्यूम कर लेगा। यह इस मैसेज को रिट्रीव कर लेगा या कंज्यूम कर लेगा। और फिर यह कंज्यूमर एक
एकनॉलेजमेंट सेंड करेगा इस ब्रोकर को कि आई हैव सक्सेसफुली कंज्यूम्ड द मैसेज या वो बोलेगा कि आई हैव सक्सेसफुली प्रोसेस्ड
द मैसेज जिसका क्या मतलब होगा कि कंज्यूमर को सक्सेसफुली वो मैसेज मिल गया है। तो यह कंज्यूमर एकनॉलेजमेंट सेंड करेगा इस
ब्रोकर को। जैसे ही इस कंज्यूमर को मैसेज मिल जाएगा तो यह ब्रोकर इस क्यू में से इस मैसेज को डिलीट कर सकता है। तो यह ब्रोकर
इस मैसेज को क्यू में से डिलीट कर सकता है। तो वो क्या करेगा? इस मैसेज को क्यू में से डिलीट कर देगा। तो ये देखा हमने
वर्किंग कि कैसे मैसेजिंग क्यूज़ काम करते हैं। और अब हम देखते हैं मैसेजिंग कज़ के कुछ टाइप्स को कि ये मैसेजिंग क्यूज़ कितने
टाइप के होते हैं और हर मैसेजिंग कज़ का क्या काम है। तो हमारे पास चार टाइप के मैसेजिंग क्यूज़ हैं। हमारे पास चार
डिफरेंट टाइप के मैसेजिंग क्यूज़ हैं। और चारों के चार डिफरेंट मैसेजिंग क्यूज़ में जो हमारी मैसेजिंग होती है, सबका तरीका
अलग-अलग है। मतलब जो हमारे प्रोड्यूसर और कंज्यूमर के बीच में जो मैसेजेस सेंड और रिसीव होंगे वह सब अलग-अलग तरीके से होते
हैं। हर मैसेजिंग क्यू का अपना एक डिफरेंट पर्पस है और वो एक डिफरेंट मॉडल पे काम करता है। जैसे हमारा ये पॉइंट टू पॉइंट
क्यू है जो हमारा ये पहले पहला क्यू है। पहला मैसेजिंग क्यू है। यह प्रोड्यूसर कंज्यूमर मॉडल पे काम करता है। प्रोड्यूसर
कंज्यूमर मॉडल पे काम करता है। जो हमारा यह पब्लिशर सब्सक्राइबर क्यू है, यह पब्लिशर सब्सक्राइबर मॉडल पे काम करता है।
तो, ऐसे हमारे जो डिफरेंट मैसेजिंग क्यूज़ हैं, वो डिफरेंट मॉडल्स पे काम करते हैं। उनके डिफरेंट पर्पस हैं। और हर मैसेजिंग
क्यू में टाइप ऑफ मैसेजिंग इज़ डिफरेंट। तो, सबसे पहले हम स्टार्ट करते हैं इस पॉइंट टू पॉइंट क्यू से जिसमें हमारा आता
है रैबिट एम क्यू। अब आपने ये दोनों क्यूज़ या मैसेजिंग क्यूज़ को काफी सुना होगा रैबिट MQ और काफका को। तो सबसे पहले समझते
हैं हम इस पॉइंट टू पॉइंट q को जिसमें आता है हमारा रैबिट एमक्यू। तो पॉइंट टू पॉइंट q क्या है? सबसे पहला पॉइंट कि ये
प्रोड्यूसर कंज्यूमर मॉडल पे काम करता है। ये प्रोड्यूसर कंज्यूमर मॉडल पे काम करता है। अब प्रोड्यूसर कंज्यूमर मॉडल और
पब्लिशर सब्सक्राइबर मॉडल में भी लोग काफी कंफ्यूज होते हैं। वो इस प्रोड्यूसर कंज्यूमर मॉडल और पब्लिशर सब्सक्राइबर
मॉडल को एक समझ लेते हैं। बट दे आर नॉट सेम। उनमें थोड़ा डिफरेंस होता है। तो हम इसे भी देखेंगे कि प्रोड्यूसर कंज्यूमर
मॉडल और पब्लिशर सब्सक्राइबर मॉडल में डिफरेंस क्या होता है? तो ये जो हमारा पॉइंट टू पॉइंट क्यों है ये सबसे पहली चीज
कि प्रोड्यूसर कंज्यूमर मॉडल पे काम करता है। अब ये हमारा प्रोड्यूसर कंज्यूमर मॉडल क्या बोलता है कि हमारे पास एक प्रोड्यूसर
होगा। हमारे पास एक प्रोड्यूसर होगा। जैसे इस केस में हमारे पास एक प्रोड्यूसर ऑर्डर सर्विस और हमारे पास केवल एक ही कंज्यूमर
होगा। जैसे इस केस में हमारे पास है कंज्यूमर पेमेंट। तो हमारे पास केवल एक प्रोड्यूसर होगा और केवल एक ही कंज्यूमर
होगा। कंज्यूमर के मल्टीपल इंस्टेंसेस हो सकते हैं। जैसे यहां पे पेमेंट के मल्टीपल इंस्टेंसेस हैं। लेकिन कंज्यूमर केवल एक
ही है। कंज्यूमर केवल एक ही है और वो है पेमेंट। तो प्रोड्यूसर कंज्यूमर मॉडल क्या बोलता है कि हमारे पास एक सिंगल
प्रोड्यूसर होगा और सिंगल कंज्यूमर होगा और उस कंज्यूमर के हमारे पास मल्टीपल इंस्टेंसेस हो सकते हैं। तो ये देखा हमने
प्रोड्यूसर कंज्यूमर मॉडल को। अब पॉइंट टू पॉइंट Q हमारा प्रोड्यूसर कंज्यूमर मॉडल पे बेस्ड है। तो जब भी हमारे पास ऐसा यूज़
केस आता है जहां पे हमें एक प्रोड्यूसर से एक प्रोड्यूसर से एक कंज्यूमर को मैसेज भेजना हो तो हम इस पॉइंट टू पॉइंट Q का
यूज़ करेंगे। तो ये पॉइंट टू पॉइंट Q में क्या होता है? मैसेजेस आर सेंट फ्रॉम वन प्रोड्यूसर टू वन कंज्यूमर। अब इस केस में
हमारा कंज्यूमर क्या है? इस केस में हमारा कंज्यूमर है यह पेमेंट सर्विस। यस, हमारे पास पेमेंट सर्विस के मल्टीपल इंस्टेंसेस
हो सकते हैं। लेकिन हमारा कंज्यूमर केवल एक ही है और वो है पेमेंट सर्विस। और यहां पे जो पेमेंट सर्विस के मल्टीपल
इंस्टेंसेस हैं हमारे पास उसे हम बोलते हैं कंपीटिंग कंज्यूमर्स। मतलब एक ही कंज्यूमर के मल्टीपल इंस्टेंसेस। तो ये
देखा हमने पॉइंट टू पॉइंट Q। तो इस पॉइंट टू पॉइंट Q को हम कहां यूज़ करेंगे? जब भी हमें कोई ऐसा यूज़ केस आता है जहां हमें एक
सिंगल प्रोड्यूसर से सिंगल कंज्यूमर को मैसेज भेजना है। वहां हम इस पॉइंट टू पॉइंट Q का यूज़ करेंगे। तो पॉइंट टू पॉइंट
Q में वी सेंट मैसेज फ्रॉम वन प्रोड्यूसर टू वन कंज्यूमर। तो ये ऑर्डर सर्विस ये ऑर्डर सर्विस सिंपली क्या करेगी? ये मैसेज
को जनरेट करेगी। मैसेज क्रिएट करेगी और फिर ये इस मैसेज को स्टोर कर देगी इस क्यू में। और उसके बाद यह पेमेंट सर्विस का कोई
भी इंस्टेंस या हम कह सकते हैं कि यह पेमेंट कंज्यूमर इस मैसेज को कंज्यूम कर लेगी। और जैसे ही यह पेमेंट सर्विस मैसेज
को कंज्यूम करेगी, यह एकनॉलेजमेंट सेंड करेगी यहां पे बैठे इस ब्रोकर को। यह पेमेंट सर्विस या हमारे कंज्यूमर
एकनॉलेजमेंट सेंड करेंगे यहां पे बैठे इस ब्रोकर को कि वी हैव सक्सेसफुली प्रोसेस्ड द मैसेज। या यह बोलेगा कि वी हैव
सक्सेसफुली रिसीव्ड द मैसेज और उसके बाद यह ब्रोकर जैसे ही यह ब्रोकर को एकनॉलेजमेंट मिलेगी वो इस मैसेज को वो इस
मैसेज को क्यू में से डिलीट कर देगा। तो यहां पे मैसेज लाइफ साइकिल इज़ वेरी स्मॉल। मैसेज विल बी रिमूव्ड वंस इट इज़
कंज्यूम्ड। तो ये देखा हमने यहां पे पॉइंट टू पॉइंट Q को। अब हम देखते हैं कि इस पॉइंट टू पॉइंट Q के यूज केसेस क्या हैं
और कहां पे हमें इसे यूज करना है। तो हमने देखा कि यदि हमें एक सिंगल प्रोड्यूसर से सिंगल कंज्यूमर को मैसेज भेजना है तो वहां
पे हम इस पॉइंट टू पॉइंट Q को यूज़ करेंगे। और उसके बाद यदि हमारे सिस्टम में हमें स्केलिंग को मैनेज करना है। स्केलिंग को
मैनेज करना है। हमें वर्क लोड को डिस्ट्रीब्यूट करना है। वर्क लोड को हमें यदि डिस्ट्रीब्यूट करना है। या हमें रेट
लिमिटिंग जैसा कुछ इंप्लीमेंट करना है। यदि हमें रेट लिमिटिंग जैसा कुछ इंप्लीमेंट करना है तो इन सब में हम पॉइंट
टू पॉइंट Q को यूज़ करेंगे। यदि हमें स्केलिंग करना है, स्केलिंग को मैनेज करना है, वर्क लोड को डिस्ट्रीब्यूट करना है या
रेट लिमिटिंग जैसा कुछ इंप्लीमेंट करना है, तो वहां पे हम इस मैसेजिंग Q पॉइंट टू पॉइंट मैसेजिंग Q को यूज़ करेंगे। तो अब
एक-एक करके समझते हैं कि ये पॉइंट टू पॉइंट क्यों ये तीनों चीजों को कैसे मैनेज कर लेगा। तो सबसे पहला जो पॉइंट है हमारा
वो है स्केलिंग। लेट्स से कि बिग बिलियन डेज में हमारे सिस्टम में हमारे एप्लीकेशन में ई-कॉमर्स एप्लीकेशन में अ थाउजेंड्स
ऑफ यूजर आते हैं और वो कुछ ना कुछ ऑर्डर करते हैं। दे बाय समथिंग दे परचेस समथिंग। तो अब यहां पे कंटिन्यू पेमेंट सर्विस
इनवोक होगी। राइट? हर पेमेंट को प्रोसेस करने के लिए हर ऑर्डर की पेमेंट को प्रोसेस करने के लिए पेमेंट सर्विस इनवोक
होगी। राइट? तो यहां पे जो पेमेंट सर्विस है उस पे पड़ने वाला लोड बढ़ जाएगा। राइट? यहां पे पेमेंट सर्विस पे काफी लोड आएगा।
काफी ट्रैफिक आएगा। तो ये पेमेंट सर्विस यहां पे हमारी क्रैश कर सकती है। तो हम क्या कर सकते हैं? हम यहां पे एक बीच में
ये मैसेजिंग q लगा देंगे। मैसेजिंग q लगा देंगे। अब ऐसा हमने क्यों किया? क्योंकि लेट्स से यदि हमारे ऑर्डर सर्विस के पास
हर सेकंड में 10,000 न्यू ऑर्डर्स आते हैं। यदि 10,000 न्यू ऑर्डर्स हर सेकंड में आते हैं। तो उन
ऑर्डर्स की पेमेंट के लिए ये ऑर्डर सर्विस पेमेंट सर्विस को इनवोक करेगी। राइट? तो अब यहां पे पेमेंट सर्विस पे भी बहुत सारा
लोड आएगा। उस पे भी कंटिन्यू 10,000 रिक्वेस्ट आएंगी। तो हम कह सकते हैं वहां पे काफी लोड आएगा। काफी ट्रैफिक आएगा। तो
अब इस केस में हमारी ये पेमेंट सर्विस जो है वो क्रैश कर सकती है। राइट? उसकी कैपेसिटी लेट्स से थी एक सेकंड में 100
रिक्वेस्ट को प्रोसेस करना। इस पेमेंट सर्विस की कैपेसिटी थी केवल 100 रिक्वेस्ट को प्रोसेस करना। लेकिन यहां पे कितनी आ
गई? यहां पे आ गई 10,000। तो यहां पे हमारी पेमेंट सर्विस क्रैश कर सकती है। तो हम क्या करेंगे? हम बीच में यह मैसेजिंग
क्यू को लगा देंगे। हम यहां पे बीच में मैसेजिंग क्यू को लगा देंगे। और फिर ये मैसेजिंग क्यू को हमने लगा दिया। तो ये जो
ऑर्डर सर्विस में ये जो 10,000 रिक्वेस्ट आ रही हैं, जो 10,000 रिक्वेस्ट आ रही हैं एक ही सेकंड में वो इस पेमेंट सर्विस को
डायरेक्ट हिट नहीं करेंगी। वो इस पेमेंट सर्विस को डायरेक्ट हिट नहीं करेंगी। यह सारी रिक्वेस्ट ये सारी 10,000 रिक्वेस्ट
हमारे इस क्यू में स्टोर हो जाएंगी। हमारे इस क्यू में स्टोर हो जाएंगी और फिर पेमेंट सर्विस अपनी कैपेसिटी के अकॉर्डिंग
उन रिक्वेस्ट को प्रोसेस करेगा। यह पेमेंट सर्विस अपनी कैपेसिटी के अकॉर्डिंग इन रिक्वेस्ट को प्रोसेस करेगा। लेट्स से कि
पेमेंट सर्विस की कैपेसिटी है केवल 100 रिक्वेस्ट को प्रोसेस करना एक सेकंड में तो वो इस क्यू में से 100 रिक्वेस्ट को
लेगा और पेमेंट्स को प्रोसेस कर देगा। अब लेट्स से कि काफी सारी रिक्वेस्ट आई। जैसे हमने देखा यहां पे 10,000 रिक्वेस्ट आई।
तो हम कह सकते हैं कि यहां पे काफी लोड बढ़ गया। एक साथ काफी रिक्वेस्ट आ रही और यदि यह पेमेंट सर्विस केवल 100 रिक्वेस्ट
को प्रोसेस करेगी तो तो बहुत स्लो हो जाएगा। तो हम क्या कर सकते हैं? हम यहां पे हॉरिजॉन्टली स्केल कर सकते हैं। हम इस
पेमेंट सर्विस को हॉरिजॉन्टली स्केल कर कर सकते हैं। तो हमने यहां पे पेमेंट सर्विस के मल्टीपल इंस्टेंसेस लगा दिए। तो ये
देखा हमने वन ऑफ़ द यूज़ केस इस पॉइंट टू पॉइंट Q का कि हम डायरेक्ट पेमेंट सर्विस को हिट नहीं कर रहे हैं। बीच में हमने
मैसेजिंग Q लगा दिया। तो अब जो भी रिक्वेस्ट आएंगी वो पहले मैसेजिंग क्यू में आएंगी और फिर यह पेमेंट सर्विस अपनी
कैपेसिटी के अकॉर्डिंग इस मैसेजिंग क्यू में से रिक्वेस्ट को प्रोसेस कर लेगा। तो ये देखा हमने वन ऑफ द यूज़ केस ऑफ पॉइंट टू
पॉइंट Q व्हिच वाज़ स्केलिंग जहां हमें स्केलिंग की नीड हो। ये और दूसरा भी हमारा वही है कि वर्क लोड डिस्ट्रीब्यूशन। अब
यहां पे ये जो पेमेंट सर्विस का इंस्टेंस था यह पेमेंट वन यह केवल 100 रिक्वेस्ट को प्रोसेस कर पा रहा था। हमारे पास आ रही थी
टोटल 10,000 तो यहां पे हम काफी स्लो हो जाते। इसलिए हमने क्या किया? वर्क लोड को डिस्ट्रीब्यूट कर दिया और हमने पेमेंट
सर्विस को हॉरिजॉन्टली स्केल कर दिया और मल्टीपल इंस्टेंसेस लगा दिए। तो अब यहां पे मल्टीपल इंस्टेंसेस लगाने से हमारा
वर्क लोड डिस्ट्रीब्यूट हो गया। तो अब बाकी की रिक्वेस्ट इनके पास भी जाने लगी। लेट्स से 100 इसके पास चली गई। 100 इस
इंस्टेंस के पास चली गई। तो ये देखा हमने इस पॉइंट टू पॉइंट q का यूज़ केस। अब जो हमारा लास्ट यूज़ केस है वो है रेट
लिमिटिंग जैसा कुछ इंप्लीमेंट करना। अब रेट लिमिटिंग जैसा इंप्लीमेंट करना तो इसे हम देखते हैं एक YouTube के एग्जांपल से।
लेट्स से कि अभी इस वीडियो को बनाने के बाद मैं इसे अपलोड करूंगा। राइट? मुझे इस वीडियो को अपलोड करना है। तो अब ये वीडियो
अपलोड होने के पहले और आपके पास पहुंचने से पहले वो वीडियो प्रोसेस होगी। राइट? वो वीडियो प्रोसेस होगी। तो अब वीडियो
प्रोसेस होगी तो उसके लिए हमारे पास एक होगी वीडियो प्रोसेसिंग सर्विस। राइट? एक होगी हमारे पास वीडियो प्रोसेसिंग सर्विस
जो वीडियो को प्रोसेस करेगी जो वीडियो को S3 स्टोरेज सीडीए में स्टोर करेगी और वीडियो को डिफरेंट फॉर्मेट्स में कन्वर्ट
कन्वर्ट करेगी। डिफरेंट क्वालिटी वर्जनंस में कन्वर्ट करेगी। तो यहां पे हमारे पास एक ऐसी वीडियो प्रोसेसिंग सर्विस होगी। अब
ये सब चीजें मैंने YouTube सिस्टम डिजाइन या TikTok सिस्टम डिजाइन में डिस्कस की हैं। सो इफ यू वांट टू लर्न मोर अबाउट
TikTok सिस्टम डिज़ाइन और हाउ वी कैन स्टोर वीडियोस टू S3 स्टोरेज CDN और कैसे हम फेच करेंगे तो प्लीज रेफर दैट वीडियो। तो क्या
होगा कि हमारे पास एक ऐसे वीडियो प्रोसेसिंग सर्विस होगी जो वीडियो को प्रोसेस करेगी। डिफरेंट फॉर्मेट्स में
कन्वर्ट करेगी। डिफरेंट क्वालिटी वर्जनंस में कन्वर्ट करेगी। और यहां पे होगी हमारे पास एक अपलोड सर्विस। एक होगी हमारे पास
अपलोड सर्विस जिसके थ्रू मैं वीडियोस को अपलोड करूंगा जिसके थ्रू मैं वीडियोस को अपलोड करूंगा। अब लेट्स से कि हमारे
सिस्टम में हमारे सिस्टम में थाउजेंड्स ऑफ यूजर या मिलियंस ऑफ यूजर आ जाते हैं। तो अब इस केस में मैं यूजर को यह तो नहीं बोल
सकता कि तुम 1 मिनट में केवल एक ही वीडियो पुश करो या 1 मिनट में एक ही वीडियो डाल सकते हो। राइट? हमने क्या बोला कि हमारे
सिस्टम में यदि 100 मिलियन यूज़र्स आ जाते हैं, 100 मिलियन यूज़र्स आ जाते हैं, तो मैं यूज़र्स को ये तो नहीं बोलूंगा कि आप 1
मिनट में केवल एक ही वीडियो पुश करना। है ना? मतलब हम यहां पे रेट लिमिटिंग तो लगा नहीं सकते। यहां हम रेट लिमिटिंग नहीं लगा
सकते। तो, इससे क्या होगा कि जब ये हमारी अपलोड सर्विस से हम वीडियो को अपलोड करेंगे, तो यहां पे यह वीडियो प्रोसेसिंग
सर्विस पे काफी लोड पड़ सकता है। क्यों? क्योंकि हमारे पास 100 मिलियन यूज़र्स हैं और एक यूजर एक साथ 4 5 10 100 कितनी भी
वीडियोस अपलोड कर सकता है। तो इस वीडियो प्रोसेसिंग सर्विस पे काफी लोड पड़ सकता है। राइट? और यहां हम रेट लिमिटिंग जैसा
भी कुछ इंप्लीमेंट नहीं कर सकते। हम यूजर को ये थोड़ी बोलेंगे कि आप 1 मिनट में केवल एक ही वीडियो डालो। तो 100 मिलियन यूज़र्स
के आने से या जैसे ही हमने सिस्टम को स्केल किया तो सिस्टम को स्केल करने से इनकमिंग रिक्वेस्ट भी बढ़ गई। नंबर ऑफ़
रिक्वेस्ट भी बढ़ गई और एक एक यूज़र एक साथ पांच या 10 वीडियोज़ भी अपलोड कर सकता है। तो, यहां पे क्या होगा कि इस वीडियो
प्रोसेसिंग सर्विस पे लोड बढ़ सकता है और यह क्रैश कर सकती है। इफ वी स्केल और हमारे पास यदि 100 मिलियन यूज़र्स आते हैं।
तो इस केस में हम क्या करेंगे? इस केस में यहां पे हम मैसेजिंग Q को लगा देंगे। यहां पे हम पॉइंट टू पॉइंट मैसेजिंग Q को लगा
देंगे। अब यहां पे पॉइंट टू पॉइंट मैसेजिंग Q को हमने लगाया। तो इससे क्या होगा कि कोई भी रिक्वेस्ट डायरेक्ट इस
वीडियो प्रोसेसिंग सर्विस को हिट नहीं करेगी। राइट? लेट्स से कि इस वीडियो प्रोसेसिंग सर्विस की कैपेसिटी है 100
रिक्वेस्ट को 100 वीडियोस को 1 सेकंड में प्रोसेस करना। और यहां पे ये अपलोड सर्विस से आ रही हैं। लेट्स से 100 के रिक्वेस्ट।
100 के रिक्वेस्ट। तो मैसेजिंग क्यू लगाने से क्या होगा कि अब कोई भी रिक्वेस्ट ये इतनी सारी रिक्वेस्ट 100 के रिक्वेस्ट
डायरेक्ट इस वीडियो प्रोसेसिंग सर्विस को हिट नहीं करेंगी। वो सीधे जाएंगी इस मैसेजिंग क्यू में और फिर यह वीडियो
प्रोसेसिंग सर्विस अपनी कैपेसिटी के अकॉर्डिंग जैसे उसकी कैपेसिटी है 100 रिक्वेस्ट तो वो अपनी कैपेसिटी के
अकॉर्डिंग इन रिक्वेस्ट को या वीडियोस को प्रोसेस कर लेगा। और यदि हमें लगेगा कि हमें ज्यादा वर्कर्स की नीड है तो हम इस
वीडियो प्रोसेसिंग सर्विस को स्केल कर लेंगे। और इस इसके मल्टीपल इंस्टेंसेस ले आएंगे। जैसे वीडियो प्रोसेसिंग सर्विस वन,
वीडियो प्रोसेसिंग सर्विस टू। तो ऐसे हम इसको हॉरिजॉन्टली स्केल कर लेंगे। इसके मल्टीपल इंस्टेंसेस लगा देंगे। तो ये देखा
हमने एक और एडवांटेज मैसेजिंग Q का एक और यूज़ केस इस पॉइंट टू पॉइंट मैसेजिंग Q का। जहां हमने मैसेजिंग Q का यूज़ करके इस
वीडियो प्रोसेसिंग सर्विस पे पड़ने वाले लोड को कम कर दिया। और हमने यूजर को यह भी नहीं बोला कि आप 1 सेकंड में केवल पांच
पांच या 10 वीडियोस ही अपलोड करो। तो हमने यूजर को ऐसा रिस्ट्रिक्ट भी नहीं किया। तो ये देखा हमने एक और यूज़ केस। और अब अब हम
यहां पे अपलोड सर्विस को बोल सकते हैं कि आपको जितनी रिक्वेस्ट भेजना है वीडियो प्रोसेसिंग सर्विस को आप कंटिन्यू भेज
सकते हो। क्योंकि वो रिक्वेस्ट डायरेक्ट तो यहां आएंगी नहीं। वो रिक्वेस्ट पहले कहां जाएंगी? वो रिक्वेस्ट पहले स्टोर
होंगी इस मैसेजिंग क्यू में। तो अब हम इस अपलोड सर्विस से कितनी भी वीडियो अपलोड कर सकते हैं एज मच एज वी वांट और भले ही फिर
ये वीडियो प्रोसेसिंग सर्विस कितना भी ट्रैफिक ले रहा हो या कितना ही इस पे लोड हो हम जितनी चाहे उतनी वीडियोस को यहां पे
पुश कर सकते हैं क्योंकि यहां पे हमारा बीच में मैसेजिंग क्यू है। तो ये देखा हमने एक और यूज़ केस इस पॉइंट टू पॉइंट
मैसेजिंग क्यू का। अब हम देखते हैं हमारे दूसरे टाइप का मैसेजिंग क्यू जिसे हम बोलते हैं पब्लिशर सब्सक्राइबर क्यू।
पब्लिश सब्सक्राइब क्यू। तो इस पब्लिश सब्सक्राइब क्यू में हमारा आ जाता है काफका। तो यह जो हमारा पब्लिश सब्सक्राइब
क्यू है, यह पब्लिशर सब्सक्राइबर मॉडल पे बेस्ड है। और पब्लिशर सब्सक्राइबर मॉडल क्या कहता है कि जब भी आपका एक सिंगल
प्रोड्यूसर हो, जब भी भी आपके पास एक सिंगल प्रोड्यूसर हो। यहां पे एक प्रोड्यूसर हो और आपके पास मल्टीपल
सब्सक्राइबर्स हो। मल्टीपल सब्सक्राइबर्स हो। या हम कह सकते हैं कि हमें एक सोर्स से डेटा को ब्रॉडकास्ट करना है टू मल्टीपल
डेस्टिनेशंस। तो हम वहां पे पब्लिशर सब्सक्राइबर मॉडल का यूज़ करते हैं। तो ये जो हमारे दूसरे टाइप का क्यू है पब्लिश
सब्सक्राइब क्यू जिसमें आता है हमारा काफका। तो यह काफ का हमारा पब्लिशर सब्सक्राइबर मॉडल पर बेस्ड है। और पब्लिशर
सब्सक्राइबर मॉडल क्या कहता है कि जभी भी हमें एक सिंगल सोर्स से सिंगल पब्लिशर से मल्टीपल सब्सक्राइबर्स को डेटा भेजना हो,
मैसेज भेजना हो तो वहां पे हम पब्लिशर सब्सक्राइबर मॉडल का यूज़ करते हैं। तो इट्स लाइक ब्रॉडकास्टिंग योर
इंफॉर्मेशनेशन। तो यहां पे हम एक सिंगल सोर्स से अपनी इंफॉर्मेशन को ब्रॉडकास्ट कर रहे हैं टू मल्टीपल डेस्टिनेशन। तो इस
पब्लिश सब्सक्राइब क्यू में क्या होता है कि हम मैसेजेस को पब्लिश कर देते हैं टॉपिक्स में और यह टॉपिक्स में हमारे
मैसेजेस स्टोर हो जाते हैं और फिर यहां पे हमारे पास मल्टीपल कंज्यूमर्स होते हैं। जैसे इन्वेंटरी सर्विस एक कंज्यूमर हो
गया, नोटिफिकेशन सर्विस एक कंज्यूमर हो गया, पेमेंट सर्विस एक कंज्यूमर हो गया। तो ऐसे हमारे पास मल्टीपल कंज्यूमर्स होते
हैं। वो सब्सक्राइब करते हैं इन टॉपिक्स को। ये कंज्यूमर्स क्या करते हैं? यह सब्सक्राइब करते हैं इन टॉपिक्स को और फिर
वो इन टॉपिक्स में से मैसेज को रीड कर लेते हैं। तो यह देखा हमने पब्लिश सब्सक्राइब क्यू और यह जो क्यू होता है
हमारा यह ब्रॉडकास्टिंग के काम आता है। मैसेजिंग को ब्रॉडकास्ट करने के काम आता है। यदि हमें मल्टीपल सब्सक्राइबर्स को या
मल्टीपल सर्विसेस को कुछ मैसेज ब्रॉडकास्ट करना है तो वहां पे हम पब्लिश सब्सक्राइब क्यू को यूज़ करते हैं। तो इसमें आता है
हमारा काफ का। अब इसका एग्जांपल हमने ऑलरेडी देखा कि जैसे ही हम कोई ऑर्डर प्लेस करते हैं तो सबसे पहला काम क्या
होता है इस ऑर्डर सर्विस का ये ऑर्डर सर्विस को इन्वेंटरी अकाउंट भी रिड्यूस करना है। उसको पेमेंट भी प्रोसेस करवानी
है। उसको नोटिफिकेशन भी भेजना है यूजर को। तो यहां पे ऐसे डिफरेंट टास्क होते हैं ऑर्डर सर्विस के पास। तो ये ऑर्डर सर्विस
क्या करती है? जैसे ही ऑर्डर प्लेस होगा वो उस इवेंट को यहां से वह इवेंट को इस टॉपिक में भेजेगी। मैसेज को या इवेंट को
टॉपिक में भेजेगी। फिर यहां पे होते हैं हमारे पास मल्टीपल सब्सक्राइबर्स। तो ये मल्टीपल सब्सक्राइबर्स हमारे टॉपिक्स को
सब्सक्राइब करते हैं और फिर ये इंफॉर्मेशन ब्रॉडकास्ट हो जाती है इन डिफरेंट सर्विसेज में या इन डिफरेंट सब्सक्राइबर्स
को। तो यह देखा हमने पब्लिश सब्सक्राइब q। अब हमने क्या देखा? हमने रैबिट एमक्यू को देखा। हमने पॉइंट टू पॉइंट क्यू देखा और
दूसरा हमने देखा पब्लिश सब्सक्राइब क्यू। तो अब हम देखते हैं कि ये जो हमारा रैबिट एमक्यू है और ये काफका है ये साथ में कैसे
काम करते हैं। हमने ये तो देख लिया कि रैबिट एमक्यू को हमें कहां पे यूज़ करना है। हमने यह भी देख लिया कि हमें काफका को
कहां पे यूज़ करना है। जब भी हमें इंफॉर्मेशनेशन को ब्रॉडकास्ट करना होगा। एक सोर्स से मल्टीपल डेस्टिनेशन में भेजना
होगा। वहां हम काफका को यूज़ करेंगे। और जहां भी हमें वन टू वन इंफॉर्मेशन भेजनी होगी वहां हम रेबिट एमक्यू को यूज़ करेंगे।
तो हमने इनके इंडिविजुअल यूजज़ तो देख लिए। अब हम देखते हैं कि एक रियल वर्ल्ड प्रोजेक्ट में ये साथ में कैसे काम करते
हैं। तो यहां पे ये एग्जांपल देखिए कि जैसे ही कोई ऑर्डर प्लेस होगा। जैसे ही कोई ऑर्डर प्लेस होगा यहां पे यह ऑर्डर
सर्विस क्या करेगी? इवेंट को पुश कर देगी। यह इवेंट को या मैसेज को पुश कर देगी। कहां पे? इस काफका में। वह इस मैसेज को या
इवेंट को काफका में पुश करेगी। काफका में टॉपिक्स में वह मैसेज या इवेंट स्टोर हो जाएगा। उसके बाद यह काफका का काम क्या है?
यह काफका का काम यह है कि इन सब्सक्राइबर्स को इन इवेंट्स को या मैसेजेस को वो भेज दे। तो यहां पे यह
काफका ऐसे डिफरेंट सर्विसेस को डिफरेंट सब्सक्राइबर्स को वो इंफॉर्मेशन ब्रॉडकास्ट कर देगी। तो अब काफका का एक
काम यह था कि इसको पेमेंट सर्विस को भी इवेंट या मैसेज भेजना था। राइट? तो अब यहां पर यह काफका पेमेंट इवेंट्स को भेज
देगी इस पेमेंट सर्विस को। लेकिन अब हमने क्या देखा कि यदि हम स्केल करते हैं हमारे सिस्टम में नंबर ऑफ यूज़र्स ज्यादा हो जाते
हैं तो हमें स्केलिंग को मैनेज करना होगा। राइट? और अब यहां पे जो हमारे पेमेंट के इवेंट्स होंगे जो हमारे पेमेंट के इवेंट्स
होंगे उन्हें उन्हें तो केवल एक ही कंज्यूमर कंज्यूम करेगा वो होगी हमारी पेमेंट सर्विस। तो यहां पे हमारा केवल एक
सिंगल प्रोड्यूसर होगा। सिंगल प्रोड्यूसर होगा और सिंगल कंज्यूमर होगा। तो यहां पे फिर हम क्या यूज़ करेंगे? तो यहां पे हम
यूज़ करेंगे इस रैबिट एमक्यू को। और रैबिट एमक्यू को हमने क्यों यूज़ किया? क्योंकि अब हमारे पास एक सिंगल प्रोड्यूसर था और
कंज्यूमर भी हमारा एक सिंगल था जो था पेमेंट सर्विस। पेमेंट सर्विस के हमारे पास मल्टीपल इंस्टेंसेस हो सकते हैं। वी
हैव ऑलरेडी डिस्कस्ड दिस जिसे हम बोलते हैं कमटिंग कंज्यूमर्स। लेकिन कंज्यूमर केवल एक ही है वो है पेमेंट सर्विस। तो
फिर यहां पे हम रैबिट एमक्यू को यूज कर सकते हैं क्योंकि यहां पे हमें स्केलिंग को मैनेज करना है। वर्क लोड को
डिस्ट्रीब्यूट करना है। हमारे पास मल्टीपल इंस्टेंसेस हैं। वर्क लोड को हमें डिस्ट्रीब्यूट करना है और स्केलिंग को
हमें मैनेज करना है। तो फिर यहां पे हम ये पॉइंट टू पॉइंट q को यूज़ कर लेंगे। तो यहां पे हमने यूज़ किया पॉइंट टू पॉइंट Q
को और यहां पे हमने यूज़ किया पब सब Q को। पब सब Q को। तो ये देखा हमने कि हम काफका को और रैबिट एमक्यू को एक रियल वर्ल्ड
एप्लीकेशन में साथ में कैसे यूज कर सकते हैं। सो दिस इज़ ऑल फॉर दिस वीडियो। और जो हमारे दो मैसेजिंग क्यूज़ और हैं जिसमें
आता है हमारा प्रायोरिटी क्यू। ये सिंपली क्या करता है? इसमें क्यू में हम मैसेज की प्रायोरिटी डिसाइड कर देते हैं।
प्रायोरिटी डिफाइन कर देते हैं। जिस मैसेज की प्रायोरिटी ज्यादा होगी वो पहले एग्जीक्यूट होगा। तो ऐसे हम इस प्रायोरिटी
क्यू को इंप्लीमेंट करते हैं। और फिर ये है हमारा डेड लेटर क्यू। तो अब डेड लेटर क्यू क्या करता है कि जो भी रिक्वेस्ट
हमारी या जो भी मैसेजेस प्रोसेस नहीं हो पाए थे बिकॉज़ ऑफ़ सम एरर और फेलियर तो उन मैसेजेस को हम इस डेड लेटर क्यू में स्टोर
करते हैं। तो ये देखिए हमने डिफरेंट टाइप्स के मैसेजिंग क्यू और हमने देखा कि हमें कहां पे कौन सा क्यू यूज़ करना है।
हमने रैबिट एम क्यू काफका को साथ में भी देखा। इंडिविजुअल भी देखा कि हमें इनको कहां पे यूज़ करना है। साथ में देखा कि हम
साथ में इन्हें कैसे यूज़ कर सकते हैं। मैसेजिंग क्यू की वर्किंग देखी कि ये कैसे काम करते हैं। हमने कोर कॉम्पोनेंट्स देखे
मैसेजिंग क्यू के। हमने एसिंक्रोनस कम्युनिकेशन एसिंक्रोनस कम्युनिकेशन को डिस्कस किया। हमने देखा कि हमें नीड क्यों
है मैसेजिंग क्यूज़ की। एंड आई होप कि आपको यह वीडियो पसंद आया होगा। सो इफ यू लाइक दिस वीडियो प्लीज डू शेयर एंड सब्सक्राइब।
एंड यस दिस इज़ ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन ब बाय। शो सम लव। थैंक्स।
[संगीत] हे एवरीवन वेलकम बैक। वेलकम टू अनदर एक्साइटिंग वीडियो। और आज के इस वीडियो में हम बात करने वाले हैं
कंसिस्टेंट हैशिंग के बारे में कि यह कंसिस्टेंट हैशिंग होता क्या है? क्यों हमें इसकी नीड है? और हम देखेंगे कि यह
कंसिस्टेंट हैशिंग हमारी किस प्रॉब्लम को सॉल्व करता है? तो स्टार्ट करते हैं। एंड लेट मी जस्ट मिनिमाइज माय स्क्रीन। ओके?
तो लास्ट कुछ वीडियोस में हमने डिस्कस किया कि यदि हम हमारे सिस्टम को हॉरिजॉन्टली स्केल करते हैं, मतलब हम
हमारे सिस्टम में नंबर ऑफ सर्वर्स को बढ़ा देते हैं, तो हमें ट्रैफिक को डिस्ट्रीब्यूट करने के लिए लोड बैलेंसर की
नीड होगी। राइट? और हमने यह भी डिस्कस किया कि हम एक पर्टिकुलर सर्वर पे लेट्स से इस सर्वर पे पूरे 100% ट्रैफिक को या
100% लोड को नहीं रख सकते। हमें ट्रैफिक को या लोड को इक्वली डिस्ट्रीब्यूट करना होगा। और ट्रैफिक को या लोड को इक्वली
डिस्ट्रीब्यूट करने के लिए वी हैव लोड बैलेंसिंग एल्गोरिदम्स। वी हैव लोड बैलेंसिंग एल्गोरिदम्स। जिसमें हमने
स्टैटिक एल्गोरिदम्स को भी देखा। हमने डायनेमिक एल्गोरिदम्स को भी देखा। तो ये लोड बैलेंसिंग एल्गोरिदम्स क्या करती हैं?
यह ट्रैफिक को या लोड को इक्वली डिस्ट्रीब्यूट कर देती हैं। मतलब हर सर्वर पे लोड को इक्वली डिस्ट्रीब्यूट कर देती
हैं। लेट्स से हमारे पास तीन सर्वर्स हैं। तो ये लोड बैलेंसिंग एल्गोरिदम क्या करेंगी? हर सर्वर पे इक्वली ट्रैफिक को या
लोड को डिस्ट्रीब्यूट कर देंगी। लेट्स से 33 33%। अब सब कुछ तो सही चल रहा था। फिर यहां पे
प्रॉब्लम क्या आती है? तो ये जो हमारी लोड बैलेंसिंग एल्गोरिदम्स हैं ये सर्वर्स का तो ध्यान रख रही हैं। सर्वर्स पे इक्वली
ट्रैफिक को डिस्ट्रीब्यूट कर दे रही हैं। वो ध्यान रख रही हैं कि कोई भी सर्वर ओवरवेल्म ना हो जाए। किसी पे ज्यादा लोड
ना आए। मतलब वो ट्रैफिक को या लोड को इक्वली डिस्ट्रीब्यूट कर दे रही हैं। सो वी कैन से कि दे थिंक अबाउट सर्वर्स। दे
टेक केयर ऑफ़ सर्वर्स। बट व्हाट अबाउट क्लाइंट एंड इट्स डेटा। अब इसका क्या मतलब है? तो इसे हम एक एग्जांपल के थ्रू समझते
हैं। लेट्स से हमारे पास छह यूज़र्स हैं फ्रॉम U1 टू U6 तो हमारे पास ऐसे सिक्स डिफरेंट यूज़र्स हैं और हम एक लोड
बैलेंसिंग एल्गोरिदम ले लेते हैं। लेट्स से राउंड रबिन। तो ये राउंड रबिन क्या करता है? यूजर वन की रिक्वेस्ट को यह
भेजेगा यहां पे। यूजर टू की रिक्वेस्ट को वो भेजेगा यहां पे। फिर यूजर थ्री की रिक्वेस्ट को भेजेगा यहां पे। फिर जब यूजर
फोर आएगा, यूजर फोर आएगा तो वो उसकी रिक्वेस्ट को वापस से यहां भेजेगा। या यूजर फाइव की रिक्वेस्ट को यहां भेजेगा।
यूजर सिक्स की रिक्वेस्ट को यहां भेजेगा। तो ऐसे करके ट्रैफिक को लोड को इक्वली डिस्ट्रीब्यूट कर देता है। उसने क्या
किया? यूजर वन को यहां भेजा। यूजर वन की रिक्वेस्ट को, यूजर फोर की रिक्वेस्ट को यहां पे, यूजर टू एंड यूजर फाइव की
रिक्वेस्ट को इस पे, सर्वर वन पे और यूजर थ्री और यूजर सिक्स की रिक्वेस्ट को उसने यहां सर्वर टू पे भेज दिया। अब लेट्स से
कि ये जो हमारा यूजर वन था इसने सर्वर से बोला कि मुझे अपनी प्रोफाइल चाहिए। तो ये सर्वर क्या करेगा? यह सर्वर जाएगा डेटाबेस
के पास और वो इस यूजर वन की प्रोफाइल को लेके आएगा और प्रोफाइल को वो कर देगा इस यूजर वन को रिटर्न। इसके साथ-साथ यह जो
हमारा सर्वर होगा, यह इस यूजर वन की प्रोफाइल को कैश कर लेगा। राइट? यह इस यूजर वन की प्रोफाइल को कैश कर लेगा फॉर
फ्यूचर lookअप्स। ताकि जब ये नेक्स्ट टाइम यूजर वन आए तो इस सर्वर को डेटाबेस के पास ना जाना पड़े। वो सिर्फ अपने कैश में चेक
करेगा और यूजर वन को वापस उसकी प्रोफाइल रिटर्न कर देगा। ठीक है? तो हमने क्या देखा कि ये जो हमारा सर्वर था इसने यूजर
की प्रोफाइल को कैश कर लिया। तो हम कह सकते हैं कि यह जो सर्वर है इसमें हम कैस्ट डाटा कैस्ट डाटा और सेशन डाटा स्टोर
कर रहे हैं। हम कैस्ट डेटा और यूजर के सेशन स्टोर कर रहे हैं। राइट? अब लेट्स से कि नेक्स्ट टाइम जब ये यूजर आया, नेक्स्ट
टाइम वापस से यह यूजर वन आया और अब इसको वापस से अपनी प्रोफाइल एक्सेस करनी है। और अब इस बार यह लोड बैलेंसर ने क्या किया?
इस यूजर वन की रिक्वेस्ट को इस सर्वर टू के पास राउट कर दिया। यह लोड बैलेंसर ने क्या किया? हमारी राउंड रबिन एल्गोरिदम ने
क्या किया? इस यूजर वन की रिक्वेस्ट को इस सर्वर टू पे राउट कर दिया। अब यहां पे सर्वर टू के कैश में तो यूजर वन की
प्रोफाइल मिलेगी नहीं। राइट? तो हम कह सकते हैं कि यहां पे हमारा कैश मिस हुआ। हमारा यहां पे कैश मिस हुआ। अब लेट्स से
कि ऐसा हर यूजर के साथ होता है। लेट्स से यूजर टू, यूजर थ्री इनके साथ भी कैश मिस होता है। मतलब इन यूज़र्स का डेटा भी हमें
कैश में नहीं मिला। तो इसकी वजह से क्या प्रॉब्लम आती है कि लेट्स से ये जो हमारा यूजर वन था, इसका डेटा हमने सर्वर ज़ीरो के
कैश में स्टोर कर दिया था। राइट? अब उसके बाद क्या हुआ? यूजर वन की रिक्वेस्ट इस सर्वर टू के पास आई। तो, हमें सर्वर टू के
कैश में भी डेटा स्टोर करना पड़ेगा। राइट? फॉर फ्यूचर lookअप्स। तो इसकी वजह से क्या प्रॉब्लम आ रही है कि हम एक यूजर के डेटा
को मल्टीपल सर्वर्स के कैश में स्टोर कर दे रहे हैं। तो हमारे मल्टीपल सर्वर्स में रिडंडेंट डेटा हो जाएगा। हमारे मल्टीपल
सर्वर्स में रिडंडेंट डेटा हो जाएगा। राइट? और जो दूसरी प्रॉब्लम आ रही है वो यह आ रही है कि अब ये जो हमारा यूजर वन का
डेटा था वो ये सर्वर ज़ीरो के कैश में स्टोर था। तो यह सिंपली यूजर वन आता। सर्वर ज़ीरो से बोलता है आई वांट माय
प्रोफाइल। सर्वर ज़ीरो अपने कैश से उसकी प्रोफाइल को लेके उसे रिटर्न कर देता। राइट? लेकिन अब यहां पे यूजर वन की
रिक्वेस्ट कहां गई? सर्वर टू के पास। सर्वर टू के कैश में तो था नहीं यूजर वन की प्रोफाइल। तो इसको वापस से डेटाबेस
एक्सेस करना पड़ेगा। सो इफ वी विल एक्सेस डेटाबेस अगेन इट विल स्लो डाउन द थिंग्स। इट विल मेक थिंग्स स्लो। तो ये देखा हमने
प्रॉब्लम्स कि लोड बैलेंसिंग एल्गोरिदम्स सर्वर पे ट्रैफिक को या लोड को इक्वली तो डिस्ट्रीब्यूट कर दे रही थी लेकिन वो
क्लाइंट डेटा को पर्सिस्ट नहीं कर पा रही थी। क्लाइंट डेटा हर बार मिस हो जा रहा था। क्लाइंट डेटा को वो सही से स्टोर नहीं
कर पा रही थी। तो इसके लिए इसे फिक्स करने के लिए वी नीड रिक्वेस्ट स्टिकीनेस। अब रिक्वेस्ट स्टिकीनेस का क्या मतलब है? कि
हम एक पर्टिकुलर यूजर को लेट्स से इस यूजर वन को सेम सर्वर पे बार-बार भेजेंगे। तो इससे क्या होगा कि यूज़र्स की रिक्वेस्ट को
उन्हीं सर्वर पे राउट करेंगे जो सर्वर उनका डेटा स्टोर कर रहा है या उनका सेशन स्टोर कर रहा है। लेट्स से कि ये जो हमारा
यूजर वन था इसका सेशन या इसकी प्रोफाइल हमने इस सर्वर ज़ीरो में कैश कर लिया। तो अब ये यूजर वन जब भी रिक्वेस्ट करेगा इसकी
रिक्वेस्ट हर बार जाएगी। इस सर्वर ज़ीरो के पास। सो दिस इज नथिंग बट रिक्वेस्ट स्टिकीनेस। अब रिक्वेस्ट स्टिकीनेस को
मैनेज करने के लिए वी यूज़ हैशिंग। तो अब हम समझते हैं कि हैशिंग रिक्वेस्ट स्टिकीनेस को कैसे मैनेज करता है? तो
हैशिंग में हम सिंपली क्या करते हैं? हम हैश फंक्शन को एक कोई भी की देते हैं। यह की हमारी यूजर आईडी भी हो सकती है। तो हम
क्या करते हैं? हमारे हैश फंक्शन को एक की पास करते हैं। दिस की कैन बी अ यूजर आईडी और उसके बाद यह हमारा हैश फंक्शन एक कोई
हैश वैल्यू जनरेट करता है। लेट्स से इस केस में इसने जनरेट की 34 तो उसके बाद हम क्या करेंगे? हमें चाहिए रिक्वेस्ट
स्टिकीनेस। मतलब हमारे एक यूजर की रिक्वेस्ट बार-बार सेम सर्वर पे जाना चाहिए। उस सर्वर पे जो उस यूजर का डाटा
होल्ड कर रहा है। राइट? तो हम क्या करते हैं? जो भी हमारी हैश वैल्यू आती है उसको हम मोड कर देते हैं नंबर ऑफ सर्वर्स जितने
हैं उस वैल्यू से। तो यहां पे इस केस में हमारे पास नंबर ऑफ सर्वर्स कितने हैं? नंबर ऑफ सर्वर्स हैं हमारे पास थ्री। तो
हम क्या करेंगे? इस हैश वैल्यू को मोड कर देंगे थ्री से। तो यहां पे जो आउटपुट आएगा हमारा वो आएगा वन। तो अब लेट्स से कि ये
जो हमारी की थी ये यूजर वन की थी। यह यूजर टू, दिस इज यूजर थ्री, यूजर फोर, यूजर फाइव एंड यूजर सिक्स। तो ये हमारे ऐसी
डिफरेंट कीज़ थी। तो हमने क्या देखा कि यूजर वन की जो हैश वैल्यू को हमने मोड किया तो आउटपुट क्या आया? वन। तो इसका
मतलब यह है कि यूजर वन की रिक्वेस्ट को हम हमेशा सर्वर वन पे राउट करेंगे। सर्वर वन पे राउट करेंगे। ऐसे ही बाकी यूज़र्स के
लिए बाकी कीज़ के लिए भी हम हैश वैल्यू निकालेंगे। हम सिंपली हैश फंक्शन को की पास करेंगे। यूजर आईडी पास करेंगे और फिर
हम एक हैश वैल्यू जो हमें मिलेगी उसे हम मोड कर लेंगे। उसके बाद जो भी वैल्यू हमारे पास आएगी जो भी नंबर हमारे पास आएगा
उस नंबर वाले सर्वर पे हम यूज़र्स की रिक्वेस्ट को राउट करने लगेंगे। लेट्स से ज़ीरो। तो हम क्या करेंगे? हम इस यूजर टू
की रिक्वेस्ट को इस सर्वर ज़ीरो पे हमेशा राउट करेंगे। तो, यह देखा हमने हैशिंग कि कैसे हम हैशिंग से रिक्वेस्ट स्टिकीनेस को
अचीव कर सकते हैं। और एक बार जब हमने रिक्वेस्ट स्टिकीनेस अचीव कर ली तो हमारे यूजर की रिक्वेस्ट हर बार सेम सर्वर पे
जाएगी। तो अब यहां पे आप देखिए कि ये हमारे पास तीन सर्वर्स हैं। सर्वर ज़ीरो, सर्वर वन एंड सर्वर टू। तो ये जो हमारे की
वन एंड की फाइव है यह हमेशा इनकी रिक्वेस्ट जाएगी सर्वर ज़ीरो पे। ये की ज़ीरो और की फोर जो है इनकी रिक्वेस्ट
जाएगी हमेशा सर्वर वन। और की टू एंड की थ्री की रिक्वेस्ट हमेशा जाएगी इस सर्वर टू पे। तो, यह जो हमारी की वन एंड की फाइव
है, यह किसकी है? की वन एंड की फाइव है, यह किसकी है? यूजर टू एंड यूजर सिक्स। तो यहां पे हमारा यूजर टू एंड यूजर सिक्स जो
हमारी की ज़ीरो है वो किसकी है? वो है यूजर वन की और की फोर किसकी है? वो है यूजर फाइव की। तो हमारे यूजर वन एंड यूजर फाइव
की रिक्वेस्ट जाएगी हमेशा सर्वर वन पे। और फिर हमारे पास बचे कौन? यूजर थ्री, यूजर थ्री एंड यूजर फोर। तो इनकी रिक्वेस्ट
जाएगी हमेशा सर्वर टू पे। तो ऐसे करके हम रिक्वेस्ट स्टिकीनेस को अचीव करेंगे और ये जो हमारे फिर यूज़र्स की रिक्वेस्ट है ये
हमेशा सेम सर्वर पे जाएगी। तो ये देखा हमने हैशिंग को जहां पे हमने क्या किया? हम एक हैश फंक्शन को की देंगे। एक की पास
करेंगे। दिस की कैन बी अ यूजर आईडी। तो हम हैश फंक्शन को एक की पास करेंगे। और फिर यह जो हमारा हैश फंक्शन होगा उस की के लिए
एक हैश वैल्यू जनरेट करेगा और फिर हम क्या करेंगे उस हैश वैल्यू को मोड कर देंगे जितने भी हमारे नंबर ऑफ सर्वर हैं उस नंबर
से यदि हमारे पास नंबर ऑफ सर्वर्स थ्री हैं तो हम हैश वैल्यू को मोड कर देंगे थ्री से उसके बाद जो भी हमें नंबर मिलेगा
वो होगा किस रेंज में? 0 से लेके n - 1 की रेंज में। तो इसके बाद जो भी हमें ये नंबर मिलेगा इन दिस रेंज लेट्स से हमें मिलता
है टू तो हम क्या करेंगे? हम यूजर की रिक्वेस्ट को हमेशा सर्वर टू पे राउट करेंगे। सर्वर टू पे राउट करेंगे। तो ये
देखा हमने हैशिंग को कि कैसे हम हैशिंग के थ्रू रिक्वेस्ट स्टिकीनेस को अचीव कर सकते हैं। तो ठीक है यहां तक तो सब सही चल रहा
है। फिर प्रॉब्लम कहां आती है? सो प्रॉब्लम कम्स व्हेन वी ऐड एंड रिमूव सर्वर्स। तो जब हम हमारे सिस्टम को
हॉरिजॉन्टली स्केल करते हैं या हम नंबर ऑफ सर्वर्स को बढ़ा देते हैं हमारे सिस्टम में या किसी सर्वर को रिमूव कर देते हैं
तब फिर हमें हैशिंग टेक्निक में प्रॉब्लम आती है। तो इसे हम समझते हैं एक एग्जांपल के थ्रू। तो लेट्स से कि हमारे सिस्टम में
या हमारे प्रोडक्ट के बारे में किसी सेलिब्रिटी ने पोस्ट किया। एक्स वzेड सेलिब्रिटी ने पोस्ट किया। सो इवेंचुअली
यू विल स्टार्ट गेटिंग मोर ट्रैफिक। राइट? और जैसे ही आपके सिस्टम में ट्रैफिक पड़ेगा, यू विल गो विद हॉरिजॉन्टल
स्केलिंग। आप क्या चाहोगे कि आप अपने सिस्टम को स्केल कर लो ताकि यू विल बी एबल टू हैंडल मोर रिक्वेस्ट, मोर ट्रैफिक।
राइट? तो आपने क्या किया? आपने अपने सिस्टम को हॉरिजॉन्टली स्केल कर दिया। नाउ यू हैव फोर सर्वर्स। इनिशियली आपके पास
तीन सर्वर्स थे। सर्वर जीरो, सर्वर वन, सर्वर टू। नाउ यू हैव ऐडेड वन मोर सर्वर वि इज सर्वर थ्री। तो आपने क्या किया?
आपने सिस्टम में एक और सर्वर ऐड कर दिया। तो अब यहां पे नंबर ऑफ सर्वर्स हमारे पास कितने हो गए? फोर। पहले हमारे पास नंबर ऑफ
सर्वर्स कितने थे? थ्री। थ्री। अब हमारे पास नंबर ऑफ सर्वर्स हो गए फोर। तो अब क्या होगा? अब ये सेम टेबल हम देखते हैं।
सेम हैश टेबल हम देखते हैं। जहां पे ये जो हमारा यूजर वन था इसकी की को जब हम पास कर रहे थे#श फंक्शन में तो ये हमें एक हैश
वैल्यू रिटर्न कर रहा था 34 और उसे हम थ्री से मोड कर दे रहे थे। क्योंकि पहले हमारे पास नंबर ऑफ सर्वर्स थ्री थे। तो
मोड करने के बाद हमारे पास वैल्यू आ रही थी वन। राइट? अब लेट्स से कि हमारे पास नंबर ऑफ सर्वर्स हैं फोर। तो हम क्या
करेंगे? हैश फंक्शन को हम यूजर की आईडी दे देंगे। बेसिकली हम उसे एक की दे देंगे। और फिर यह जो हमारा हैश फंक्शन होगा#श फंक्शन
होगा ये एक हैश वैल्यू जनरेट करेगा। लेट्स से ये वैल्यू जनरेट करता है 34 और उसके बाद हम इस हैश वैल्यू को मोड कर देंगे फोर
से। क्योंकि अब हमारे पास नंबर ऑफ सर्वर्स हैं फोर। तो हम इस हैश वैल्यू को फोर से मोड कर देंगे। तो हम क्या करेंगे? हम 34
को फोर से मोड कर देंगे। एंड वी विल गेट टू। राइट? तो अब इस टू का क्या मतलब है? ये जो हमारी की ज़ीरो थी, यह किसकी थी? ये
थी यूजर वन की। राइट? ये थी यूजर वन की। यहां पे ये जो हमारी की ज़ीरो थी, यह किसकी थी? यूजर वन की। और जब हमारे पास नंबर ऑफ़
सर्वर्स थ्री थे, तो यूजर वन की रिक्वेस्ट कहां जा रही थी? सर्वर वन पे। सर्वर वन पे। राइट? क्योंकि मोड की वैल्यू आई थी
वन। लेकिन अब यहां पे हमारे पास मोड की वैल्यू कितनी आई? टू। तो ये जो हमारे यूजर वन की रिक्वेस्ट है, यह जाएगी इस सर्वर टू
के पास। ये हमारे यूजर वन की रिक्वेस्ट जाएगी सर्वर टू के पास। ऐसे ही यह जो हमारा की वन थी, यह किसकी थी? ये थी हमारे
यूजर टू की। ये थी हमारे यूजर टू की। राइट? और जब हमने इस वैल्यू को मोड किया फोर से तो हमें क्या मिला? वन। तो यह जो
हमारी यूजर टू की रिक्वेस्ट है यह जाएगी यहां पे सर्वर वन के पास। यूजर टू की रिक्वेस्ट जाएगी सर्वर वन के पास। और यूजर
टू की रिक्वेस्ट पहले कहां जा रही थी? यूजर टू की रिक्वेस्ट पहले जा रही थी सर्वर ज़ीरो के पास। राइट? यह जा रही थी
यहां पे। यूजर टू की रिक्वेस्ट यहां जा रही थी सर्वर ज़ीरो के पास। सो यू कैन सी एवरीथिंग इज बमबूजल्ड नाउ। जैसे ही हमने
नंबर ऑफ सर्वर्स को चेंज किया। अब हम नंबर ऑफ सर्वर्स को बढ़ा भी सकते हैं, घटा भी सकते हैं। तो जैसे ही हमने नंबर ऑफ
सर्वर्स को चेंज किया, हमें सारे के सारे यूज़र्स की रिक्वेस्ट को रिअरेंज करना पड़ेगा। एवरीथिंग इज़ बमबूज़्ल्ड नाउ। एंड
एंड वी कैन से कि ये पर्टिकुलर सॉल्यूशन हमारा यह कंटीन्यूअस हमें कैश मिसेस देगा। राइट? क्यों? क्योंकि यहां पे ये जो हमारा
यूजर वन था इसका डेटा पहले कहां स्टोर था? ये जो हमारा यूजर वन था इसका डेटा पहले कहां पे स्टोर था? इसका डेटा स्टोर था
सर्वर वन पे। राइट? यहां पे। अब जैसे ही हमारे नंबर ऑफ सर्वर्स फोर हुए तो ये हमारे यूजर वन कहां गया? इस सर्वर टू के
पास। सर्वर टू के पास। और सर्वर टू के कैश में हमें यूजर वन का डाटा मिलेगा नहीं। सो वी कैन से यहां पे हमारा कैश मिस होगा।
ऐसे ही बाकी के यूज़र्स के लिए भी और बाकी की कीज़ के लिए भी कंटिन्यू कैश मिस होगा। तो हम कह सकते हैं कि जैसे ही हमने नंबर
ऑफ सर्वर्स को बढ़ाया, नए सर्वर्स को ऐड किया या पुराने सर्वर्स को रिमूव किया, दिस विल कॉज़ द स्टॉर्म ऑफ़ कैश मिसेस।
कंटीन्यूअस हमें कैश मिसेस मिलेंगे। कैसे? तो इसे भी हम एक बार डिस्कस करते हैं। तो इनिशियली जब हमारे पास तीन सर्वर्स थे तो
की वन एंड की फाइव ये जा रहे थे सर्वर ज़ीरो पे। की ज़ीरो की फोर ये जा रहे थे सर्वर वन पे। की टू एंड की थ्री ये जा रहे
थे सर्वर टू पे। अब जैसे ही हमने एक और सर्वर ऐड किया। सर्वर थ्री को ऐड किया। तो अब यहां पे आप देखोगे कि सारी कीज़ जो हैं
उन्हें हमें वापस से रिअरेंज करना पड़ा। राइट? क्यों? क्योंकि यहां पे मोड की वैल्यू डिफरेंट आई थी। हमने ये हमारी की
थ्री जो है इसकी हैश वैल्यू कितनी थी? 20। लेकिन अब हमने हमारे नंबर ऑफ सर्वर्स हैं फोर। तो अब जब हमने इस 20 को मोड किया तो
हमें वैल्यू मिली ज़ीरो। तो इसीलिए ये जो हमारा की थ्री थी ये गई सर्वर ज़ीरो के पास। तो ऐसे ही बाकी कीज़ के साथ भी सेम
चीज़ हुई। राइट? तो इसकी वजह से अब क्या होगा? हमें इन कीज़ के लिए जैसे यह की टू है तो अब इस की टू के लिए हमें इस सर्वर
थ्री पे डेटा स्टोर करना होगा। हमें इसके कैश में डेटा स्टोर करेंगे। हम यूजर डेटा या सेशन डेटा स्टोर करेंगे। तो यहां पे
हमें वापस से ये चीज रिपीट करनी होगी। हमें सेम यूजर के लिए हम मल्टीपल सर्वर्स में डेटा स्टोर करेंगे और वो भी कैश में
व्हिच इज़ इन मेमोरी सॉल्यूशन। एंड वी ऑल नो दैट मेमोरी इज़ वेरी लिमिटेड। एंड मोस्टेंट कि हम कैश में स्टोर कर भी क्या
रहे हैं? रिडंडेंट डाटा। राइट? यह की टू का डाटा कहीं और पे भी स्टोर होगा। उसे हम सर्वर थ्री में भी स्टोर कर रहे हैं। सो
वी कैन से कि हम यहां पे रिडंडेंट डेटा को स्टोर कर रहे हैं। सो नाउ वी कैन अंडरस्टैंड कि अब हम हैशिंग सॉल्यूशन के
साथ नहीं जा सकते। राइट? हम ये हैशिंग टेक्निक के साथ नहीं जा सकते। वी नीड सम अदर वे सम अदर सॉल्यूशन। सो हियर
कंसिस्टेंट हैशिंग कम्स। तो कंसिस्टेंट हैशिंग में हमारे पास एक ऐसे रिंग काइंड ऑफ स्ट्रक्चर होता है। हमारे पास ये रिंग
काइंड ऑफ स्ट्रक्चर होता है। अब क्वेश्चन ये आता है कि ये रिंग हमें मिलती कैसे है? तो कंसिस्टेंट हैशिंग में हमारे पास एक
स्पेशल हैश फंक्शन होता है। तो इस हैश फंक्शन को हम एक वैल्यू देते हैं और फिर ये हैश फंक्शन उसके लिए आउटपुट जनरेट करता
है। अब जो ये आउटपुट जनरेट करता है वो होता है इस रेंज में फ्रॉम x0 टू ऐसी कोई एक रेंज में फ्रॉम x0 टू xn वेयर n इज़
नंबर ऑफ सर्वर्स नंबर ऑफ सर्वर्स। तो इस रेंज में यह हमारा#श फंक्शन वैल्यू रिटर्न करता है। अब हम यदि इन दोनों एंड्स को ये
दोनों एंड्स को ऐसे ट्विस्ट करके मिला दें तो ये एक हमें रिंग काइंड ऑफ स्ट्रक्चर मिल जाएगा। राइट? तो अब इस रिंग काइंड ऑफ
स्ट्रक्चर में हमारे पास यहां पे आ जाएगा x0। फिर यहां पे हमारा कहीं पे x1 हो सकता है x2। ऐसे हम क्लॉकवाइज़ जाएंगे। और फिर
यहां कहीं पे हमारा होगा xn। राइट? तो इसे मैं थोड़ा हटा देता हूं। सो दैट यू विल बी एबल टू अंडरस्टैंड द डायग्राम प्रॉपर्ली।
जब हम सर्वर्स को ऐड करेंगे। तो अब आपको समझ में आया होगा कि ऐसे ये एक रेंज में फ्रॉम x0 टू xn ये#श फंक्शन हमें वैल्यू
रिटर्न करेगा। अब लेट्स से कि हमने इस#श फंक्शन को सर्वर का IP या सर्वर का नेम दिया। लेट्स से S0 सर्वर जो है हमारा S0
सर्वर या सर्वर ज़ीरो उसका हमने IP एड्रेस दिया। तो ये हैश फंक्शन ने हमें कुछ वैल्यू रिटर्न की। राइट? अब लेट्स से कि
ये वैल्यू आती है यहां कहीं पे इस रेंज में। तो हम यहां पे हम यहां पे नोट डाउन कर लेंगे कि ये है हमारा सर्वर ज़ीरो। ठीक
है? अब हम और भी ऐसे सर्वर्स को हैश कर लेंगे। राइट? तो लेट्स से यहां कहीं पर आता है हमारा S1 सर्वर। यहां पे आ गया
हमारा S1 सर्वर। और यहां पे आ गया हमारा ये S2 सर्वर। राइट? ये आ गया हमारा S2 सर्वर। और यहां पे आ गया हमारा ये S3
सर्वर। यहां पे आ गया ये हमारा S3 सर्वर। क्योंकि हमारे पास ये चार सर्वर हैं। सर्वर ज़ीरो, सर्वर वन, सर्वर टू, सर्वर
थ्री। तो ऐसे हमारे पास चार सर्वसर्स थे। और हमने जब इस हैश फंक्शन को ये सर्वर के IP या नेम दिए तो उसने एक वैल्यू जनरेट
की। हमें एक आउटपुट जनरेट किया हमारे लिए वो था इस रेंज में फ्रॉम X0 टू XN। तो जो भी हमें वैल्यू मिली उसके अकॉर्डिंग हमने
इस हैश रिंग में उस सर्वर को लोकेट कर दिया। तो ये आया हमारा यहां पे सर्वर वन। ये आया हमारा सर्वर वन। यहां पे आया हमारा
सर्वर टू। ये आया हमारा सर्वर टू। और यहां पे आया हमारा सर्वर थ्री। तो ये आया हमारा सर्वर। तो हम कह सकते हैं कि यहां पे हमने
हमारे सर्वर्स को हैश कर लिया। राइट? अब हमारा जो दूसरा टास्क है वो है हम कीज़ को हैश करेंगे। क्योंकि हमें डिसाइड करना है
राइट? कि कौन सी की किस सर्वर के पास जाएगी। राइट? तो उसके लिए हमें कीज़ को हैश करना पड़ेगा। अब लेट्स से कि जो हमारी की
ज़ीरो थी ये हमारे पास ऐसे सिक्स की थी। की ज़ीरो की 1 2 3 की फोर की फाइव तो हमारे पास ऐसे सिक्स डिफरेंट कीज़ थी। अब लेट्स
से कि ये जो हमारी की ज़ीरो थी ये यहां कहीं पे आई। जो हमारी की ज़ीरो थी वो यहां कहीं पे आई। ये हमारी हो गई की ज़ीरो। की
ज़ीरो। जो हमारी की वन थी जो हमारी की वन थी वो आई यहां कहीं पे। तो यहां पे आया हमारा की वन। की वन। राइट? उसके बाद हमारे
पास नेक्स्ट की कौन सी है? नेक्स्ट की है हमारे पास की टू। तो नेक्स्ट की आई हमारी लेट्स से यहां कहीं पे। तो ये हो गई हमारी
की टू। यहां पे आ गई हमारी की टू। और लेट लेट्स से हम एक और की ले लेते हैं। की थ्री और इस की थ्री को हम लोकेट कर देते
हैं यहां पे। यह हो गई हमारी की थ्री। तो, यह ऐसे करके हमने कीज़ को भी लोकेट कर दिया। हमने सिंपली क्या किया? हमने सबसे
पहले क्या किया? हमने इस हैश फंक्शन को हमने इस#श फंक्शन को सर्वर के IP सर्वर के नेम दिए। उसके बेसिस पे उसने सर्वर को हैश
किया और यहां पे इस हैश रिंग में सर्वर को लोकेट कर दिया। ऑन द बेसिस ऑफ़ दिस आउटपुट। इस रेंज में जहां पे भी आउटपुट आया उसके
हिसाब से यहां हमने सर्वर को लोकेट कर दिया। उसके बाद हम सेम हैश फंक्शन को कीज़ देंगे। सेम हैश फंक्शन को हम कीज़ देंगे।
राइट? यहां पे लेट्स से हमने इस हैश फंक्शन को एक की दी k0 तो यह हैश फंक्शन क्या करेगा? इस रेंज में कहीं पे एक
आउटपुट जनरेट करेगा और फिर हम उस आउटपुट के हिसाब से उस की को अरेंज कर देंगे या लोकेट कर देंगे इस रिंग में। अब लेट्स से
कि ये जो हैश फंक्शन ने जो आउटपुट रिटर्न किया वो यहां कहीं पे आया। वो आया इस x1 के अराउंड। राइट? तो हम क्या करेंगे? हम
इस की को की k0 को यहां पे लोकेट कर देंगे x1 के आसपास कहीं पे। राइट? तो ऐसे करके हमने कीज़ को और सर्वर को इस हैश रिंग में
अरेंज कर लिया। लोकेट कर दिया। अब क्वेश्चन ये आता है कि कौन सी की किस सर्वर के पास जाएगी? यह बेसिकली की क्या
है? यह की क्या है? यह यूजर आईडी हो सकती है। जैसे हमने ऊपर देखा था कि यह की K0 जो है वो यूजर वन को डिनोट कर रही है। यूजर
वन को रिप्रेजेंट कर रही है। राइट? तो अब हमें कैसे पता चलेगा कि ये यूजर वन की रिक्वेस्ट किस सर्वर के पास जाएगी? तो
इसके लिए क्या करते हैं? इसके लिए कंसिस्टेंट हैशिंग में हम क्लॉकवाइज जाते हैं। तो ये हमारी क्या है? यह हमारी K0 की
है। तो अब इसके आगे जो भी हमें पहला सर्वर मिलेगा क्लॉकवाइज जाने पे जो भी हमें पहला सर्वर मिलेगा ये की उसे असाइन हो जाएगी।
तो ये जो K0 है ये सर्वर ज़ीरो को असाइन हो जाएगी। ये जो K1 है ये क्लॉकवाइज जाएगी और इसे पहला सर्वर कौन सा मिलेगा? S1 तो ये
S1 को असाइन हो जाएगी। K2 S2 को असाइन हो जाएगी और K3 S3 को असाइन हो जाएगी। ठीक है? तो यह तो हमने हैशिंग में भी देखा था।
इतना पार्ट तो हमने हैशिंग में भी देखा था कि हमने कीज़ को सर्वर को असाइन कर दिया था। और फिर ये यूज़र्स की रिक्वेस्ट हमेशा
सेम सर्वर पे जा रही थी बार-बार। ठीक है? तो इतना तो हमने हैशिंग में भी देखा। अब प्रॉब्लम हमें कहां आ रही थी? जब हम नए
सर्वर्स ऐड कर रहे थे या किसी सर्वर को हम रिमूव कर रहे थे। राइट? अब लेट्स से कि हम कोई एक नया सर्वर ऐड करते हैं। लेट्स से
कि हमने S4 सर्वर ऐड किया। हमने लेट्स से यहां कहीं पे एक S4 सर्वर ऐड किया। तो लेट मी जस्ट नेम इट एज S4। ठीक है? तो हमने
यहां पे S4 सर्वर अरेंज किया। तो अब आप देखोगे कि यह जो हमारी K1 की थी, यह जो हमारी K1 की थी, यह पहले किसके पास जा रही
थी? यह जो हमारी K1 की थी यह जा रही थी S1 सर्वर के पास। राइट? लेकिन अब यहां से क्लॉकवाइज जाने पे जो सबसे पहला सर्वर
आएगा वो आएगा S4। तो अब हमारी ये जो K1 की है ये S4 सर्वर को असाइन हो जाएगी। तो ये तो हम फिर से वहीं प्रॉब्लम में फंस गए।
राइट? हमारा क्या हो रहा था? हैशिंग में क्या हो रहा था कि जैसे ही हम किसी नए सर्वर को ऐड कर रहे थे तो हमारा हमें कीज़
को रिअरेंज करना पड़ रहा था। राइट? यदि हमारे पास के कीज़ थी टोटल तो हमें पूरी K कीज़ को रिअरेंज करना पड़ रहा था। तो यहां
पे भी हम यही प्रॉब्लम आते हुए देख रहे हैं कि हमें की को रिअरेंज करना पड़ रहा है। यस वी आर रिअरेंजिंग कीज़ बट
कंसिस्टेंट हैशिंग में क्या होता है कि हम एक पोर्शन ऑफ़ कीज़ को ही रिअरेंज करते हैं। लेट मी एक्सप्लेन यू नाउ। तो यहां पे हमने
क्या किया? S4 सर्वर को ऐड किया। अब लेट्स से यहां पे एक कोई और की है। लेट्स से K4 की। ठीक है? यह भी पहले जा रही थी सर्वर
वन के पास। और लेट्स से एक और की थी K5। यह पहले किसके पास जा रही थी? ये K1, K4 एंड K5 ये जा रही थी S1 सर्वर के पास।
जैसे ही S4 सर्वर आया तो ये तीनों कीज़ K4, K1 एंड K5 ये अब जाएंगी S4 सर्वर के पास। तो यस हमें कीज़ को रिअरेंज तो करना पड़ेगा
बट हमें एक लिमिटेड नंबर ऑफ कीज़ को या एक पोर्शन ऑफ कीज़ को ही रिअरेंज करना है। अब जैसे हमने सर्वर फोर को ऐड किया तो क्या
हमने इन कीज़ को छेड़ा? क्या हमने ये K2 K3 K0 इन कीज़ को छेड़ा नहीं छेड़ा। तो हम कह सकते हैं कि हमने सिर्फ इस रेंज में सिर्फ
इस रेंज में ही जो कीज़ थी सिर्फ उनको बस रिअरेंज किया। राइट? तो यहां पे जो हमारा सॉल्यूशन होता है कंसिस्टेंट हैशिंग में
यहां पे हम कीज़ को रिअरेंज तो करते हैं लेकिन हम सिर्फ इतनी कीज़ को ही रिअरेंज करते हैं। लेट्स से हमारे पास टोटल 20 कीज़
थी। हमारे पास सर्वर हैं फोर। तो हम सिर्फ फाइव कीज़ को ही रिअरेंज करते हैं। और हैशिंग में क्या हो रहा था कि हमें पूरी
20 कीज़ को रिअरेंज करना पड़ रहा था। राइट? तो ये प्रॉब्लम को सॉल्व करता है हमारा कंसिस्टेंट हैशिंग। कंसिस्टेंट हैशिंग में
भी हमें कीज़ को रिअरेंज करना है। बट द नंबर इज वेरी स्मॉल। हमें एक छोटे से पोर्शन ऑफ कीज़ को ही रिअरेंज करना है। तो,
यह नंबर हमें क्या बताता है? यह नंबर हमें बताता है अफेक्टेड कीज़। कि किसी नए सर्वर को ऐड करने पे या किसी सर्वर को हटाने पे
कितनी कीज़ अफेक्ट हुई? वो बताता है यह नंबर। तो, अब हम इस अफेक्टेड कीज़ को कैसे निकालेंगे? तो उसके लिए हम वापस से आते
हैं इस डायग्राम में। तो सबसे पहले क्या था हमारा? S0 सर्वर था और S0 सर्वर के बाद हमारे पास S1 सर्वर था। राइट? फिर हमने
बीच में इस S4 सर्वर को ऐड किया। तो अब यहां पे हमें क्या करना है? हमें अफेक्टेड कीज़ को फाइंड करना है कि कितनी कीज़ को
हमें रिअरेंज करना पड़ेगा। तो उसके लिए हम क्या करते हैं? जो भी हमारा न्यूली ऐडेड सर्वर है उससे हम एंटीक्लॉकवाइज जाते हैं।
हम एंटीक्लॉकवाइज जाते हैं। तो हम यहां पे S4 से एंटीक्लॉकवाइज जाएंगे और फिर जो भी कीज़ आती जाएंगी उन्हें हम गैदर करते
जाएंगे। मतलब दे आर अफेक्टेड कीज़। हम कब तक करेंगे? जब तक हम एक और सर्वर पे नहीं पहुंच जाते। तो अब इस केस में हम पहुंच गए
सर्वर जीरो पे। तो यहां पे जैसे ही हमें कोई नया सर्वर मिलेगा वहां हम रुक जाएंगे और इस बीच में जो भी हमारी कीज़ आई दे ऑल
आर अफेक्टेड कीज़ मतलब वी हैव टू रिअरेंज देम। तो ये देखा हमने कंसिस्टेंट हैशिंग। जब हम एक नया सर्वर ऐड करते हैं। अब हम एक
और सेम एग्जांपल लेते हैं। सेम डायग्राम लेते हैं और हम देखते हैं व्हाट विल हैपन इफ वी रिमूव द सर्वर। तो यहां पे हमने सेम
डायग्राम लिया। हमारे पास चार सर्वर्स हैं। चार डिफरेंट सर्वर हैं। S0, S1, S2, S3 और हमने फोर डिफरेंट कीज़ ली। राइट? अब
लेट्स से कि हम क्या करते हैं? हम इस S3 सर्वर को हम इस S3 सर्वर को रिमूव कर देते हैं। या हम कह सकते हैं कि लेट्स से ये
हमारा S3 सर्वर डाउन हो गया। तो, हमने क्या किया? हमने इस S3 सर्वर को रिमूव कर दिया या ये S3 सर्वर डाउन हो गया। तो अब
इस केस में हमें सिर्फ इस K3 की को K3 की को ही रिीस्ट्रीब्यूट करना है, रिअरेंज करना है। तो अब ये जो हमारी K3 की है वो
वो क्लॉकवाइज जाके इस S0 सर्वर को असाइन हो जाएगी। तो ये देखा हमने कि यदि हम किसी सर्वर को रिमूव भी करते हैं तो हमें एक
स्मॉल फ्रैक्शन ऑफ कीज़ को ही रिडस्ट्रीब्यूट करना है, रिअरेंज करना है। सो दिस इज़ अबाउट कंसिस्टेंट हैशिंग।
कंसिस्टेंट हैशिंग के आने से हम हमें क्या फायदा हुआ कि हम हमारी यूजर की रिक्वेस्ट लेट से U1 यूजर है तो उसकी रिक्वेस्ट हर
बार सेम सर्वर पे ही जाएगी। लेट्स से S0 सर्वर तो उसकी रिक्वेस्ट हमेशा सेम सर्वर पे जाएगी। दूसरा फायदा क्या हुआ जो हैशिंग
में हमें प्रॉब्लम कर रहा था कि यदि हम हम किसी नए सर्वर को ऐड करते हैं या सर्वर को रिमूव करते हैं तो हमें के कीज़ को टोटल
यदि हमारे पास के कीज़ हैं तो हमें सबको रिअरेंज या रिस्ट्रीब्यूट करना हो रहा था। लेकिन यहां पे कंसिस्टेंट है के केस में
हमें सिर्फ कितनी कीज़ को ही रिीस्ट्रीब्यूट या रिअरेंज करना है। सो दिस इज़ अबाउट कंसिस्टेंट हैशिंग। अब
कंसिस्टेंट हैशिंग में भी एक प्रॉब्लम आती है। उसे हम समझते हैं। तो लेट्स से कि जैसे ही हमने सर्वर्स के IP एड्रेस को हैश
फंक्शन को दिया तो हैश फंक्शन क्या करेगा? एक वैल्यू जनरेट करेगा। राइट? किस रेंज में? फ्रॉम x0 टू x0 टू xn वो इस रेंज में
कुछ वैल्यू जनरेट करेगा। हमारा हैश फंक्शन इस रेंज में वैल्यू जनरेट करेगा। अब जो भी वैल्यू उस हैश फंक्शन ने जनरेट की उसने
सर्वर को क्या किया? उसने सर्वर को ऐसे जनरेट करा दिया। s0 से s1 के बीच में बड़ा गैप हो गया। और फिर यहां पे S1, S2, S3
यहां पे ये बहुत पासपास हो गए। तो अब इस केस में भी क्या होगा? S1 जो सर्वर है, उस पे पड़ने वाला लोड ज्यादा होगा। राइट?
क्योंकि यहां पे एक कि लार्ज एरिया को कवर कर रहा है। राइट? तो अब यहां पे जो भी कीज़ आती हैं, यहां पे जो भी कीज़ आती हैं,
लेट्स से यहां पे कंटिन्यू ऐसे कीज़ आती हैं हमारे पास। तो ये सारी कीज़ जो होंगी, ये इस S1 सर्वर को असाइन होंगी। और यहां
S2 और S3 और S0 सर्वर पे पड़ने वाला जो लोड होगा वो बहुत कम होगा। तो अब इस केस में हम क्या करते हैं? इस केस में हम वर्चुअल
नोड्स को यूज़ करते हैं। वर्चुअल नोड्स में क्या होता है? लेट से ये है हमारी एक की। तो लेट मी नेम इट एज की। ये हमारी की। तो
वर्चुअल नोड्स का हम यूज़ करते हैं। वर्चुअल नोड्स में हम क्या करते हैं? हम इन सर्वर्स के लेट्स से हमने इस S3 सर्वर
को यहां लोकेट कर दिया। ये क्या है? ये इस S3 सर्वर का वर्चुअल नोड है। सो लेट मी जस्ट हाईलाइट इट लाइक दिस। यस। तो ये जो
हमारा नोड है, ये जो हमारा नोड है, ये क्या है? यह S3 सर्वर का वर्चुअल नोड है। मतलब यह वाला जो हमारा वर्चुअल नोड है, वो
इस S3 सर्वर को पॉइंट कर रहा है। वो इस S3 सर्वर को पॉइंट कर रहा है। तो अब यहां पे जो भी कीज़ आएंगी जो भी S0 और S3 के बीच
में जो कीज़ आएंगी वो इस S3 सर्वर को असाइन होंगी। वो इस S1 सर्वर के पास ना जाके अब S3 को असाइन हो जाएंगी। और ये S3 क्या है?
इट्स अ वर्चुअल नोड ऑफ़ दिस S3। तो यहां पर एक पॉइंटर या एड्रेस काइंड ऑफ होता है जो हमारा कंसिस्टेंट हैशिंग की प्रॉब्लम को
सॉल्व करता है। सो आई गेस दिस इज़ ऑल अबाउट कंसिस्टेंट हैशिंग। आई होप यू लाइक दिस वीडियो। इफ यू लाइक दिस वीडियो डू शेयर
एंड सब्सक्राइब एंड यस प्लीज शेयर विद योर फ्रेंड्स। सो यस दिस इज ऑल फॉर दिस वीडियो। वी विल सी यू इन द नेक्स्ट
वीडियो। सो टिल देन ब बाय शो सम लव। थैंक्स। [संगीत]
हाय एवरीवन, वेलकम बैक। वेलकम टू अनदर एक्साइटिंग वीडियो। और आज के इस वीडियो में हम बात करने वाले हैं बैक ऑफ द एनवेलप
कैलकुलेशंस के बारे में। तो स्टार्ट करते हैं एंड लेट मी जस्ट मिनिमाइज माय स्क्रीन। ओके? तो, सबसे पहला क्वेश्चन कि
ये बैक ऑफ द एनवेलप कैलकुलेशंस है क्या? तो, इसे आप इसके नाम से ही समझ सकते हो। बैक ऑफ द एनवेलप कैलकुलेशन मतलब कैलकुलेशन
दैट यू डिड ऑन द बैक साइड ऑफ़ द एनवेलप। लेट्स से कि आपके पास कोई एक एनवेलप है या लेट्स से आपके पास कोई एक नोटबुक है एंड
यू आर डूइंग समथिंग ऑन द बैक साइड ऑफ़ दैट नोटबुक या एनवेलप तो आप इसे क्या बोलोगे? आप इसे बोलोगे कि यू आर डूइंग सम रफ
कैलकुलेशंस। राइट? सो दिस इज़ व्हाट बैक ऑफ द एनवेलप कैलकुलेशंस इज़ ऑल अबाउट। डूइंग रफ़ वर्क। पर अब क्वेश्चन ये आता है कि रफ
वर्क तो हमें करना है पर किस चीज के लिए? क्या हमें रफ वर्क करना है? सो इफ यू आर बिल्डिंग अ प्रोडक्ट या लेट्स से आप कोई
एप्लीकेशन बिल्ड कर रहे हैं तो उसके लिए आपको कुछ कैलकुलेशंस करने पड़ते हैं। आपको देखना पड़ता है कि आप किस कितने स्केल पर
ऑपरेट करेंगे। कितनी कॉस्ट आएगी आपको उस प्रोडक्ट को बिल्ड करने में। आपका प्रोडक्ट फिजिबल है भी या नहीं। कितना
स्टोरेज आपको लगेगा? कितने सर्वर्स आपको लगेंगे? तो ये सारी कैलकुलेशंस आपको करनी पड़ती है। अब इनिशियली जब आपका प्रोडक्ट
बिल्ड नहीं होता तो आपके पास रियल डेटा तो होता नहीं है। आपके पास कैलकुलेशंस करने रियल डेटा तो होगा नहीं। रियल डेटा कैसा
होता है हमारा? तो रियल डेटा हमारा ऐसा होता है कि कितने हमारे प्रोडक्ट में या कितने हमारे एप्लीकेशन में राइट्स आ रहे
हैं। तो उसके लिए हम लिखते हैं राइट्स पर सेकंड रीड्स पर सेकंड या हम इसे क्यूपीएस भी बोल देते हैं क्वेरी पर सेकंड। उसके
बाद हम राइट रीड रेशियो देखते हैं कि हमारे सिस्टम में या प्रोडक्ट में राइट रीड रेश्यो क्या आ रहा है। हम बैंडविड्थ
को कैलकुलेट करते हैं। हम देखते हैं कि हमारे सिस्टम में एप्लीकेशन में डेली एक्टिव यूज़र्स कितने हैं? मंथली एक्टिव
यूज़र्स कितने हैं? हमारा पीक क्यूपीएस क्या जा रहा है? तो ये होता है हमारा रियल वर्ल्ड डेटा। अब इनिशियली जब प्रोडक्ट
बिल्ड नहीं होता, प्रोडक्ट हमने बनाया नहीं होता। तो हमारे पास ये रियल वर्ल्ड डेटा तो होता नहीं है। राइट? क्योंकि हमने
अभी हमारे सिस्टम को या प्रोडक्ट को प्रोडक्शन में नहीं भेजा। तो हमारे पास रियल वर्ल्ड डेटा तो होगा नहीं। पर
कैलकुलेशंस तो हमें करनी पड़ेगी। तभी हम डिसाइड कर पाएंगे कि हमें कितने सर्वर चाहिए, कितने कितना स्टोरेज चाहिए, हम
कितने स्केल पे ऑपरेट करेंगे, कितनी कॉस्ट आएगी। तो ये सारी चीजें डिसाइड करने के लिए कैलकुलेशन इज़ मस्ट। और यदि हम
कैलकुलेशन नहीं करेंगे और लेट्स से हमने ऐसे ही रैंडमली हमारे सिस्टम में हमारे प्रोडक्ट में रिसोर्सेज को ज्यादा यूज़ कर
लिया। हमारा काम कम रिसोर्सेज में ही हो जाता लेकिन हमने ज्यादा रिसोर्सेज को यूज़ कर लिया। तो, उसकी वजह से क्या होगा कि
हमारी कॉस्ट ज्यादा आ जाएगी। राइट? एंड ऑब्वियसली यू विल बी पेइंग दिस। और एक केस यह भी हो सकता है कि यदि आप कम रिसोर्सेज
कॉन्फ़िगर करते हैं और हमें ज्यादा रिसोर्सेज की नीड थी, तो उसमें हमारा सिस्टम क्रैश हो सकता है। तो, ये सारी
चीजों से बचने के लिए वी नीड कैलकुलेशन। अब ये कैलकुलेशन हमारी रियल डेटा पे तो हो नहीं सकती क्योंकि रियल डेटा हमारे पास है
ही नहीं अभी। तो वी विल हैव टू मेक सम एजम्पशनंस। राइट? हमारे सिस्टम या प्रोडक्ट के लिए वी विल हैव टू मेक सम
एजम्पशंस कि कितना हमारे सिस्टम में रीट ट्रैफिक आएगा। कितने हमारे सिस्टम में राइट ट्रैफिक आएगा? कितने हमारे डेली
एक्टिव यूज़र्स हो सकते हैं? कितने हमारे मंथली एक्टिव यूज़र्स हो सकते हैं? हमारा पीक क्यूपीएस क्या जा सकता है? तो ये सारी
चीजें हमें डिसाइड करनी पड़ती हैं। वी विल हैव टू मेक एजम्पशनंस रिगार्डिंग दैट। तो यहां पर हम कुछ एजमशंस, थोड़ी सी मैथ्स और
लॉजिकल रीजनिंग के बेसिस पे डिसाइड करते हैं कि डज़ दैट आईडिया रियली मेक्स अ सेंस ऑ नॉट। लेट्स से कि आप कोई WhatsApp जैसा
एप्लीकेशन बना रहे हैं और आप डिसाइड करते हैं या आप लेट्स से कोई एजमशन लेते हैं कि आप डेली के 100 मिलियन मैसेजेस मैनेज
करेंगे। 100 मिलियन मैसेजेस हैंडल करेंगे। ठीक है? आपने यह तो डिसाइड कर लिया कि आप 100 मिलियन मैसेजेस डेली के हैंडल करेंगे।
बट व्हाट डस दैट मीन इन टर्म्स ऑफ स्टोरेज सर्वर एंड नेटवर्क? आपको ये भी तो डिसाइड करना पड़ेगा ना कि आपको कितने सर्वर
लगेंगे। सर्वर में कितनी आपको रैम लगेगी, कितने सीपीयूस चाहिए। राइट? वी विल हैव टू डिसाइड दिस। अब ये सब हम ऐसे ही तो डिसाइड
कर नहीं सकते। उसके लिए चाहिए हमें रियल वर्ल्ड डेटा कि हमारे सिस्टम में कितने राइट्स आ रहे हैं, कितने रीड्स आ रहे हैं।
तो उसके लिए फिर फिर हम कुछ एजमशंस करते हैं। वी मेक सम एजम्पशंस कि कितने हमारे एप्लीकेशन में डेली एक्टिव यूज़र्स होंगे।
कितने मंथली एक्टिव यूज़र्स होंगे। उसके बाद हम डिसाइड करते हैं कि कितने मैसेजेस हम हर दिन मैनेज करेंगे। तो ये सब हमने
कुछ एजम्पशंस लिए। राइट? इसके बेसिस पे हम फिर रियल वर्ल्ड डेटा के पास जाने का ट्राई करते हैं कि कितने हमारे सिस्टम में
राइट्स होंगे। हर सेकंड में हमारे सिस्टम में कितने राइट्स होंगे, कितने रीड्स होंगे? तो हम इन एजम्पशनंस के बेसिस पे
रियल डेटा के क्लोज जाने का ट्राई करते हैं। और जैसे ही फिर हम रियल डेटा के क्लोज चले जाते हैं देन वी कैन डिसाइड कि
कितने हमें स्टोरेज लगेगा, कितने हमें सर्वर्स लगेंगे, कितने सीपीयूस की नीड होगी, हमें कितनी रैम लगेगी। तो ये सब फिर
हम डिसाइड कर सकते हैं क्योंकि एक प्रोडक्ट को या एक एप्लीकेशन को रन करने के लिए व्हाट आर द बेयर मिनिमम थिंग्स कि
आपके पास सर्वर हो, स्टोरेज हो, कैपेसिटी हो, नेटवर्क हो। राइट? दीज़ आर द बेयर मिनिमम थिंग्स टू गेट सिस्टम अप एंड
रनिंग। तो यहां पे हमें ये क्वांटिटी को डिसाइड करना है। हम ये कैलकुलेशंस कर क्यों रहे हैं? ताकि हम इन सारी ये सारे
जो हमारे रिसोर्सेज हैं इनकी कितनी क्वांटिटी हमें चाहिए उसको हम मेजर कर पाएं। राइट? सो दिस इज़ व्हाई वी आर डूइंग
बैक ऑफ द एनवेलप कैलकुलेशंस। अब बैक ऑफ द एनवेलप कैलकुलेशन में हमें कुछ चीजों का ध्यान रखना होता है। सबसे पहला वी हैव
ऑलरेडी डिस्कस्ड कि वी मेक सम एजम्पशंस। वी मेक सम एजम्पशनंस। हम कुछ एजम्पशनंस लेते हैं कि कितने हमारे डेली एक्टिव
यूज़र्स होंगे। कितने मंथली एक्टिव यूज़र्स होंगे। सो वी मेक सम एजम्पशनंस। उसके बाद जो दूसरी चीज हमें ध्यान रखनी है वो ये कि
हमें एग्जैक्ट वैल्यू नहीं लेनी या हमें एग्जैक्ट वैल्यू लेने के पीछे नहीं जाना कि आप एकदम एग्जैक्ट कैलकुलेशन कर रहे
हैं। वी कैन टेक राउंड ऑफ्स। वी कैन टेक राउंड ऑफ्स एंड एप्रोक्सीमेशंस। सो हियर द सेकंड थिंग इज़
राउंड ऑफ्स एंड एप्रोक्सीमेशन। और जो लास्ट चीज है हमारी वो है लेबल योर यूनिट। लेबल योर यूनिट। अब आपकी यूनिट KB भी हो
सकती है, एमबी भी हो सकती है। राइट? तो यहां पे हमें हर बार जब भी हम कोई रियल वर्ल्ड डेटा लिख रहे हैं। सो वी शुड मेक
श्योर कि हम हमेशा यूनिट्स के साथ उसे लिखें। वी नीड टू लेबल द यूनिट। तो ये कुछ चीजें हैं जो हमें ध्यान रखनी होती है।
व्हनेवर वी डू बैक ऑफ दी एनवेलप कैलकुलेशन। तो ये हमने देख लिया बैक ऑफ द एनवेलप कैलकुलेशन को कि ये है क्या और
हमने ये भी देख लिया कि इसमें हम कुछ एजम्पशनंस लेते हैं। हम एग्जैक्ट वैल्यू नहीं लेंगे। हम राउंड ऑफ्स एंड
एप्रोक्सीमेशन लेंगे और हमेशा हम यूनिट्स को लेबल करके रखेंगे। अब हम देखते हैं कि हम बैक ऑफ द एनवेलप कैलकुलेशन करते कैसे
हैं। तो इसे हम WhatsApp के एग्जांपल से समझते हैं। लेट्स से हम कोई WhatsApp जैसा एप्लीकेशन डिजाइन कर रहे हैं और उस
एप्लीकेशन में हमें सिर्फ मैसेजेस के लिए स्टोरेज कैपेसिटी निकालनी है। राइट? कि हमें कितना स्टोरेज की नीड होगी। तो ये
हमें डिसाइड करना है और सिर्फ टेक्स्ट मैसेजेस के लिए इमेजेस वीडियोस को या मीडिया को अभी कुछ टाइम के लिए हम साइड
में रखते हैं। हमें मैसेजेस के लिए कितने स्टोरेज की नीड होगी ये हमें फाइंड आउट करना है। सो दिस इज़ आवर गोल एस्टीिमेट हाउ
मच स्टोरेज WhatsApp नीड्स पर डे फॉर मैसेजेस। तो यहां पे सबसे पहली चीज़ हमने क्या देखी थी कि वी विल मेक सम अजमशंस।
राइट? तो स्टार्ट करते हैं हम एजमशंस से और हम कुछ यहां पे एजमशंस को नोट डाउन कर लेते हैं। तो सबसे पहले हमारा फर्स्ट
एजम्पशनंस हम लेते हैं। फर्स्ट एजमशन हम लेते हैं कि देयर आर 2 बिलियन यूज़र्स इन आवर एप्लीकेशन 2 बिलियन डेली एक्टिव
यूज़र्स। उसके बाद जो हमारा सेकंड एजमशन है वो ये है कि हर यूजर ईच यूजर सेंड्स 50 मैसेजेस पर डे और ये 50 मैसेजेस क्या है?
सिर्फ नॉर्मल टेक्स्ट मैसेजेस हैं। दे डू नॉट कंटेन एनी इमेजेस वीडियोस और वी कैन से मीडिया। तो पहला एजमशन हमारा क्या है?
कि वी हैव 2 बिलियन डेली एक्टिव यूज़र्स और हर यूजर एक दिन में 50 मैसेजेस सेंड करता है। राइट? और उसके बाद ईच मैसेज एवरेजेस
100 बाइट्स। 100 बाइट्स मतलब जो हमारा एक सिंगल टेक्स्ट मैसेज होगा वो एवरेज 100 बाइट्स का होगा। तो ये हमने कुछ एजम्पशंस
लिए। राइट? ये हमने कुछ एजम्पशंस लिए रिगार्डिंग आवर WhatsApp। हमारे WhatsApp सिस्टम के लिए। अब जो हमारा सेकंड पॉइंट
था वो क्या था? कि हमें राउंड ऑफ सेंड एप्रोक्सीमेशन लेना है। तो इसे भी हम एक बार देखते हैं। तो अभी तक हमने क्या
एजम्पशनंस लिए कि वी हैव 2 बिलियन डेली एक्टिव यूज़र्स और हर यूजर एक दिन में 50 मैसेजेस सेंड कर सकता है। राइट? 50
मैसेजेस सेंड कर रहा है ऑन एन एवरेज। और हमने क्या डिसाइड किया कि हर मैसेज जो होगा वो एवरेज 100 बाइट्स का होगा। राइट?
अब हमें देखना है एप्रोक्सीमेशन एंड राउंड ऑफ्स। तो अभी तक हमने क्या देखा कि वी हैव 2 बिलियन वी हैव 2 बिलियन डेली एक्टिव
यूज़र्स। राइट? और हर यूजर क्या कर रहा है? हर यूजर 1 दिन में 50 मैसेजेस सेंड कर रहा है। सो इफ वी विल कैलकुलेट देयर विल बी
100 बिलियन मैसेजेस पर डे। मतलब हमारे एप्लीकेशन में WhatsApp एप्लीकेशन में 100 बिलियन मैसेजेस डेली भेजे जा रहे हैं। और
ये मैसेजेस कौन से हैं? ये मैसेजेस हैं सिर्फ टेक्स्ट मैसेजेस। 100 बिलियन मैसेजेस पर डे। अभी हमने वीडियो इमेज मतलब
मीडिया को तो कंसीडर किया ही नहीं। ये सिर्फ हैं हमारे टेक्स्ट मैसेजेस। तो हमें क्या नंबर मिला? वी हैव 100 बिलियन
मैसेजेस पर डे। मतलब हमारे WhatsApp एप्लीकेशन में 100 बिलियन डेली के मैसेजेस भेजे जा रहे हैं। उसके बाद हमने क्या देखा
कि हर मैसेज जो है वो 100 बाइट्स का है। राइट? ऑन एन एवरेज वो 100 बाइट्स का है। 100 बाइट्स। तो अब ये जो 100 बिलियन है
इसको हम क्या लिख सकते हैं? इसके लिए मैंने यहां पे ये ऑलरेडी नोट डाउन करके रखा है कि 100 बिलियन को क्या बोल सकते
हैं? सो 100 बिलियन इज़ नथिंग बट 10 टू द पावर 11। तो यहां पे 100 बिलियन को हम क्या बोलेंगे? 100 बिलियन को हम बोलेंगे
10 टू द पावर 10 टू द पावर 11 * 100 को हम क्या लिख सकते हैं? 10 टू द पावर 2 राइट? तो ये हमारा टोटल कितना हो जाएगा? 10 टू द
पावर 13 10 टू द पावर 13। तो यहां पर हमें 10 टू द पावर 13 बाइट्स ऑफ डेटा 10 टू द पावर 13 बाइट्स ऑफ डेटा पर डे सिर्फ
टेक्स्ट मैसेजेस के लिए ही लग रहा है। 10 टू द पावर 13 बाइट्स ऑफ डेटा पर डे सिर्फ टेक्स्ट मैसेजेस के लिए ही लग रहा है। अब
10 टू द पावर 13 बाइट्स सीम्स वेरी बिग। राइट? तो इसे हम क्या लिख सकते हैं? इसे हम लिख सकते हैं 10 टेराबाइट्स ऑफ डेटा पर
डे। अब ये कैसे हमने कन्वर्ट किया? तो इसके लिए आई हैव दिस शीट और आई हैव दिस सेक्शन जहां पे हमने ये नोट डाउन करके रखा
है कि 1 टेराबाइट इक्व टू 10 टू द पावर 12 बाइट्स। तो इसीलिए 10 टू द पावर 13 बाइट्स कितना हो जाएगा? 10 टेराबाइट्स। तो यहां
पे टेक्स्ट मैसेजेस अकेले के लिए 10 टेराबाइट्स ऑफ डेटा हम स्टोर कर रहे हैं। अब ये डेटा ज्यादा भी हो सकता है, कम भी
हो सकता है। बट हियर वी डिड एप्रोक्सीमेशन एंड राउंड ऑफ। हमने यहां पे एप्रोक्सीमेशन और राउंड ऑफ लिया। और ये 10 टेराबाइट्स ऑफ़
डेटा ये सिर्फ टेक्स्ट मैसेज के लिए। राइट? सिर्फ मैसेज के लिए। यहां हमने सेंडर, रिसीवर, सेंड टाइम। तो ये सारी
चीजें हमने यहां पे डिस्कस नहीं की हैं। ये डेटा जो है ये सिर्फ टेक्स्ट मैसेज के लिए है। रॉ टेक्स्ट मैसेज के लिए। तो मतलब
यहां पे हम 10 टेराबाइट्स ऑफ डेटा स्टोर कर रहे हैं पर डे जस्ट फॉर टेक्स्ट मैसेजेस। अब इट इज़ 10 टेराबाइट्स पर डे।
राइट? तो ये 30 डज़ के लिए कितना हो जाएगा? 10 टेराबाइट्स * 30. सो इट विल बी 300 टेराबाइट्स पर मंथ। तो ये हमने पर मंथ के
लिए कैलकुलेट कर लिया। अब यहां पे हमने ये तो डिसाइड कर लिया कि हमें टेक्स्ट मैसेजेस के लिए हम कितना डेटा स्टोर कर
रहे हैं। हम 1 महीने में 300 टेराबाइट्स ऑफ डेटा स्टोर कर रहे हैं। एक सिंगल डे में 10 टेराबाइट ऑफ डेटा स्टोर कर रहे
हैं। और 3 महीने में एक बार हम 3 मंथ्स का भी कैलकुलेट कर लेते हैं। सो इट वुड बी 300 टेराबाइट्स * 3. सो इट वुड बी 900
टेराबाइट्स। 900 टेराबाइट्स इन 3 मंथ्स। तो यहां पर हमने यह डिसाइड कर लिया कि हम 3 महीने में 900 टेराबाइट्स ऑफ डेटा स्टोर
करेंगे जस्ट फॉर मैसेजेस। तो अब क्वेश्चन ये आता है कि हमें कितने स्टोरेज की नीड होगी। राइट? तो यहां पे स्टोरेज की हमें
जो नीड होगी वो डिपेंड करता है कि हम कितने टाइम तक डेटा को रिटेन करके रखेंगे। राइट? इसलिए मैंने क्या किया? यहां पे जब
हमने 10 टेराबाइट पर डे कैलकुलेट किया तो आई कैलकुलेटेड दिस फॉर थ्री 3 मंथ्स एज़ वेल। तो यहां पे हमें पता चल गया कि 3
महीने में हम 900 टेराबाइट्स ऑफ़ डेटा को स्टोर करेंगे। तो फिर इसके अकॉर्डिंग हम स्टोरेज को निकाल सकते हैं। सो आवर
स्टोरेज डिपेंड्स कि हम कितने टाइम तक डेटा को रिटेन करके रखते हैं। सो दिस इज़ व्हाट वी कैलकुलेटेड फॉर WhatsApp। हमारा
गोल क्या था? हमारा गोल था कि हमें पता करना है कि हमें कितना स्टोरेज लगेगा जस्ट टू स्टोर मैसेजेस। राइट? सो वी विल बी
स्टोरिंग 900 टेराबाइट्स ऑफ़ डेटा। 900 टेराबाइट्स ऑफ़ डेटा जस्ट फॉर मैसेजेस इन 3 मंथ्स एंड 10 टेराबाइट्स ऑफ़ डेटा पर डे।
तो फिर इसके अकॉर्डिंग हम स्टोरेज को निकाल लेंगे। हमें कितने टाइम तक डेटा को रिटेन करना है। उसके बेसिस पे हम फिर
फाइंड आउट कर लेंगे कि हमें कितने स्टोरेज की नीड है। तो यह देखा हमने बैक ऑफ द एनवेलप कैलकुलेशन या कैपेसिटी एस्टीिमेशन
WhatsApp मैसेजेस के लिए हमने यहां पे मीडिया को तो कंसीडर किया ही नहीं वरना दैट डेटा कैन बी ह्यूज। तो यहां पे हमने
WhatsApp मैसेजेस के लिए कैपेसिटी एस्टीिमेशन को डिस्कस किया। जहां पर हमने देखा कि हम कितना डाटा स्टोर कर रहे हैं
और कितने स्टोरेज की हमें नीड होगी। सो दिस इज़ अबाउट WhatsApp। नाउ लेट्स डिस्कस द कैपेसिटी एस्टीिमेशन और बैक ऑफ द एनवेलप
कैलकुलेशन फॉर Instagram। कि हमें Instagram में इमेज को अपलोड करने के लिए कितनी बैंडविड्थ की नीड होगी। सो दिस इज़
आवर गोल। हाउ मच बैंडविड्थ इज़ यूज़्ड पर सेकंड फॉर इमेज अपलोड्स ऑन Instagram। तो इसके लिए भी हम कुछ एजमशंस को डिस्कस करते
हैं। तो उसमें सबसे पहला एजमशन है हमारा कि वी विल बी हैविंग 1 बिलियन डेली एक्टिव यूज़र्स। तो हमारे एप्लीकेशन में हमारे
सिस्टम में डेली के 1 बिलियन यूज़र्स होंगे। 1 बिलियन डेली एक्टिव यूज़र्स। अब 1 बिलियन को वी कैन राइट लाइक दिस। 1 बिलियन
को हम लिख सकते हैं 10 टू द पावर न। राइट? तो यहां पे हम लिख देते हैं 10 टू द पावर न। 10 टू द पावर 9 उसके बाद 10% यूज़र्स
अपलोड इमेजज़। अब 10 टू द पावर 9 का 10% कितना है? 10 टू द पावर 9 का 10% होगा 10 टू द पावर 8। राइट? तो यदि हमारे सिस्टम
में 10 टू द पावर 9 या 1 बिलियन डेली एक्टिव यूज़र्स हैं तो उसमें से 10 टू द पावर 8 या 10% यूज़र्स डेली इमेज अपलोड
करेंगे। राइट? और एक हमारा एजमशन है कि ऑन एन एवरेज एक यूजर केवल एक ही इमेज अपलोड करता है। एक यूजर एक दिन में केवल एक
सिंगल इमेज अपलोड करता है। तो ये हमने तीन एजम्पशंस लिए और हमने एक और क्या डिसाइड किया कि हर इमेज का साइज जो है वो लेट्स
से 2 MB है। हर इमेज का साइज़ है 2 MB। तो अब हम कुछ कैलकुलेशंस करते हैं। सबसे पहले हम कैलकुलेट करते हैं कि हमारे सिस्टम में
डेली कितनी इमेजेस अपलोड होंगी। तो हमने क्या देखा कि 10% यूज़र्स अपलोड इमेजज़। तो मतलब 10 टू द पावर एट यूज़र्स जो हैं वो
डेली इमेज अपलोड करते हैं। 10 टू द पावर एट यूज़र्स अपलोड इमेज एवरी डे। राइट? इंटू अब हमें क्या करना है
कि एक यूजर 1 दिन में कितनी इमेज अपलोड करता है? तो ये भी हमने ऑलरेडी कैलकुलेट किया या इसका भी हमने एजमशन ले लिया कि ऑन
एन एवरेज एक यूजर 1 दिन में केवल एक सिंगल इमेज अपलोड करता है। सो वी डोंट नीड दिस मल्टीप्लाई हियर। तो यहां पे हम इस
मल्टीप्लाई को हटा देते हैं। तो अब हमारा टोटल कितना हो जाएगा? 10 टू द पावर 8 यूज़र्स डेली इमेज अपलोड करते हैं और हर
यूजर केवल एक इमेज अपलोड करता है। सो टोटल हमारे सिस्टम में 10 टू द पावर 8 इमेजेस अपलोड होंगी पर डे। 10 टू द पावर 8 इमेजज़
पर डे। अब इसको हम कितना लिख सकते हैं? 100 100 मिलियन इमेजज़
पर डे। तो हमने क्या किया? 10 टू द पावर 8 को हम क्या लिख सकते हैं? 100 मिलियन। वी हैव सीन दिस। वी हैव सीन दिस हियर कि हम
100 मिलियन को 10 टू द पावर 8 लिख सकते हैं। तो यहां पे हमने क्या किया? हमने डिसाइड कर लिया या हमने फाइंड आउट कर लिया
कि हमारे सिस्टम में एक दिन में एक सिंगल डे में 100 मिलियन इमेजज़ अपलोड हो रही हैं। राइट? और उसके बाद एक इमेज का साइज
क्या है? हमारे सिस्टम में टोटल 100 मिलियन इमेजेस अपलोड हो रही हैं। और एक इमेज का साइज है 2 MB। तो अब हमारे सिस्टम
में टोटल 200 मिलियन MB अपलोड होगी। 200 मिलियन MB अपलोड होगी पर डे। तो, यह हमने निकाल लिया टोटल अपलोड डाटा पर डे। हमने
यह क्या फाइंड आउट कर लिया? टोटल अपलोड डेटा पर डे। अब यहां पे हमें क्या है? हमारे पास 200 मिलियन MB आया। राइट? तो
इसको हम क्या लिख सकते हैं? 2 * अब 100 मिलियन के लिए हम क्या लिख सकते हैं? 10 टू द पावर 8 MB को बाइट्स में कन्वर्ट
करने के लिए हम क्या लिख सकते हैं? 10 टू द पावर 6 बाइट्स। तो, यह हो गया हमारा टोटल अपलोड डेटा पर डे इन बाइट्स। तो, यह
हमने निकाल लिया इसको बाइट्स में। अब यह टोटल कितना हो गया? 2 * 10 ^ 14 राइट तो हम 10 टू द पावर 14 बाइट्स अब हम इसको
क्या लिख सकते हैं 2 * 10 टू द पावर 2 10 टू द पावर 12 राइट और ये हो जाएगा हमारा यूनिट बाइट्स तो अब यहां पे हमने इसको
कैसे कन्वर्ट कर दिया 2 * 10 टू द पावर 2 * 10 टू द पावर 12 बाइट्स तो ये हो जाएगा हमारा टोटल
2 * 10 टू द पावर 2 हो गया हमारा 200 और 10 टू द पावर 12 को हम बोलते हैं टेराबाइट्स। तो अब हमारा जो टोटल अपलोड
डेटा है पर डे का वो कितना है? 200 टेराबाइट्स पर डे। तो ये है हमारा अपलोड डेटा जस्ट फॉर इमेजेस। मतलब हम इतने इतना
डेटा हम अपलोड कर रहे हैं हमारे सिस्टम में जस्ट फॉर इमेजेस। अब हम इसे सेकंड के लिए यदि निकालें एक सिंगल सेकंड में हम
कितना डाटा अपलोड कर रहे हैं हमारे सिस्टम में उसको हम निकालें तो इसके लिए हमने क्या करना पड़ेगा हमें वन डे को कन्वर्ट
करना पड़ेगा सेकंड्स में सो इन वन सिंगल डे वी हैव 24 आवर्स राइट और 24 आवर्स और 24 आवर्स में वी हैव 60 मिनट्स और 60
मिनट्स में वी हैव 60 सेकंड्स सो इट वुड बी 86400 तो अब यहां पे हम 200 टेराबाइट को डिवाइड
कर देंगे 86400 सो इट वुड कम अराउंड 2.3 GB पर सेकंड सो दिस वुड बी आवर डेटा दिस वुड बी आवर अपलोड
डेटा फॉर अ सेकंड मतलब एक सिंगल सेकंड में हम 2.3GB डेटा अपलोड कर रहे हैं जस्ट फॉर इमेजज़। सो
दिस इज़ हाउ वी कैलकुलेट बैक ऑफ द एनवेलप कैलकुलेशंस। दिस इज़ हाउ वी डू कैपेसिटी एस्टीिमेशंस। और यह हमने निकाला क्या?
सिर्फ अपलोड ट्रैफिक। अब वहां से फेच ट्रैफिक, फीड को फेच करने या रील्स को फेच करने का ट्रैफिक वो अलग होगा। सो दिस इज़
जस्ट फॉर अपलोड। यह सिर्फ है अपलोड ट्रैफिक। तो, यह देखा हमने कैपेसिटी एस्टीिमेशन या बैक ऑफ़ द एनवेलप कैलकुलेशंस
को कि हम कैसे बैक ऑफ़ द एनवेलप कैलकुलेशन करते हैं। हमने बैक ऑफ़ द एनवेलप कैलकुलेशन क्या होता है? ये भी डिस्कस किया। ये
क्यों इंपॉर्टेंट है? ये भी डिस्कस किया। और हम बैक ऑफ़ द एनवेलप कैलकुलेशन कैसे करते हैं? हमने ये भी डिस्कस किया। सो,
दिस इज़ ऑल अबाउट बैक ऑफ द एनवेलप कैलकुलेशन। और इसमें हमें एक चीज समझ में आती है कि वी जस्ट कैन नॉट बी 100%
एक्यूरेट। राइट? हम डायरेक्शनली करेक्ट होने का ट्राई करते हैं। हम अजमशंस लेते हैं, राउंड नंबर्स लेते हैं और सिंपल
लॉजिक के बेसिस पे हम फिगर आउट करते हैं कि क्या हमारा सिस्टम स्केलेबल है भी या नहीं और क्या यह आइडिया मिलियंस ऑफ यूज़र्स
को हैंडल कर पाएगा या नहीं। सो वी कैन से कि बैक ऑफ द एनवेलप कैलकुलेशन से या कैपेसिटी एस्टीिमेशंस के थ्रू हम सिस्टम
के बॉटल नेक्स को फाइंड आउट कर सकते हैं। राइट? सो यस आई गेस दिस इज़ ऑल फॉर दिस वीडियो। आई होप यू लाइक दिस वीडियो एंड इफ
यू एंजॉयड दिस वीडियो प्लीज डू लाइक, शेयर एंड सब्सक्राइब एंड आल्सो शेयर विद योर फ्रेंड्स। सो दैट्स ऑल फॉर दिस वीडियो। वी
विल सी यू इन द नेक्स्ट वीडियो। सो टिल देन ब बाय। शो सम लव। थैंक्स। [संगीत]
हाय एवरीवन, वेलकम बैक। वेलकम टू अनदर एक्साइटिंग वीडियो। और आज के इस वीडियो में हम बात करने वाले हैं डेटाबेस
शार्डिंग के बारे में कि ये डेटाबेस शार्डिंग होता क्या है? क्यों हमें इसकी नीड है? सो, स्टार्ट करते हैं। एंड लेट्स
ट्राई टू अंडरस्टैंड दिस विद द हेल्प ऑफ़ एग्जांपल। एग्जांपल ऑफ सोशल मीडिया एप्लीकेशन। तो लेट्स से कि आपने कोई एक
Instagram जैसा एप्लीकेशन बनाया और शुरू में आपके पास कम यूज़र्स थे। थाउजेंड्स ऑफ यूज़र्स थे। तो आपने अपने एप्लीकेशन के लिए
एक ऐप सर्वर कॉन्फ़िगर किया और एक आपने डेटाबेस सर्वर कॉन्फ़िगर किया। यू हैव लेस ट्रैफिक। तो आपने एक ऐप सर्वर लिया और एक
आपने डेटाबेस सर्वर लिया। सो इनिशियली यू हैव वन ऐप सर्वर, वन डेटाबेस सर्वर एंड फ्यू थाउजेंड यूज़र्स। अब अचानक से एक दिन
किसी फेमस यूजर ने किसी फेमस पर्सन ने आपके प्रोडक्ट के बारे में कमेंट किया या ट्वीट किया। सो लेट्स से एक्स वzेड पर्सन
ने आपके प्रोडक्ट के बारे में ट्वीट किया। एंड ऑल ऑफ अ सडन योर ऐप वेंट वायरल। और आपको अब मिलियंस ऑफ यूज़र्स आ गए आपके
एप्लीकेशन में। यू गेट टन्स ऑफ़ पोस्ट, टन्स ऑफ़ कमेंट्स। अह पीपल आर फॉलोइंग ईच अदर ऑन ऑन योर एप्लीकेशन। इन सिंपल वर्ड्स
आपके पास काफी सारा डेटा हो जाएगा। यू हैव टू मैनेज लॉट ऑफ डेटा। राइट? यू हैव पोस्ट, यू हैव कमेंट्स, यू हैव लाइक्स कि
किसने किसकी प्रोफाइल में लाइक किया, किसकी पोस्ट को लाइक किया, किसने किसको फॉलो किया। सो, यू हैव लॉट ऑफ़ डेटा। एंड
यू हैव टू मैनेज दिस डेटा। सो, इन ऑर्डर टू मैनेज दिस डेटा, आपको यह डेटा कहीं पर स्टोर करना होगा। राइट? यू विल बी
स्टोरिंग दिस डेटा समवेयर। और वो डेटा हम कहां पे स्टोर करेंगे? वो डेटा हम स्टोर करेंगे हमारे डेटाबेस में। सो उसके लिए
हमारे पास है यह डेटाबेस सर्वर। अब यह जो डेटाबेस सर्वर है हमारा यह क्या है? इट इज़ नथिंग बट अ वर्चुअल सर्वर और इट इज़ इन
ईसी2 इंस्टेंस ईसी2 मशीन। सो वी ऑल हियर कि हमने डेटाबेस में डेटा स्टोर किया। पर एक्चुअल में डेटाबेस में डेटा स्टोर करने
का मतलब क्या है? उसे हम समझते हैं। सो वी हैव दिस डेटाबेस सर्वर। दिस इज़ आवर वर्चुअल सर्वर और इट कैन बी एन ईसी टू
इंस्टेंस। तो इस ईसी टू इंस्टेंस में हमने क्या किया? हमने एक माय सीक्वल सर्वर को इंस्टॉल किया। हमने क्या किया? हमने एक
माय सीक्वल सर्वर को इंस्टॉल किया। एंड दिस दिस सर्वर इज़ नथिंग बट डेटाबेस प्रोसेस। सो दिस माय सीक्वल सर्वर इज़
नथिंग बट डेटाबेस प्रोसेस। एंड दिस प्रोसेस इज़ नथिंग बट आवर डेटाबेस। दिस प्रोसेस इज़ नथिंग बट आवर डेटाबेस। तो हमने
क्या किया? हमने EC2 इंस्टेंस में एक माय सीक्वल सर्वर को इंस्टॉल किया। दिस वुड बी आवर डेटाबेस प्रोसेस। एंड दिस डेटाबेस
प्रोसेस इज़ नथिंग बट आवर डेटाबेस। तो यही है हमारा डेटाबेस। अब यहां पर ये जो डेटाबेस प्रोसेस है, यह किसी एक डिफ़ॉल्ट
पोर्ट पे रन हो रही होगी। राइट? लेट्स से यह रन हो रही है 3306 पोर्ट पे। अब किसी यूजर को डेटाबेस से कनेक्ट करना है या
डेटाबेस से इंटरेक्ट करना है तो उसकी रिक्वेस्ट आएगी सबसे पहले इस पोर्ट पे एंड दिस पोर्ट इज़ कपल्ड या एसोसिएटेड विद द
डेटाबेस प्रोसेस राइट तो फिर ये रिक्वेस्ट जाएगी इस डेटाबेस प्रोसेस के पास उसके बाद ये जो डेटाबेस प्रोसेस है इट विल कंप्यूट
द क्वेरी एंड सेंड्स बैक द रिस्पांस राइट तो यह हमारा होगा फ्लो कि कैसे डाटा आएगा कैसे डाटा स्टोर होगा कैसे डाटा रीड होगा।
अब यहां पे एक्चुअल में डेटा स्टोर कैसे हो रहा है उसे हम देखते हैं। सो वी हैव दिस EC2 सर्वर। अब इस EC2 सर्वर में इस
EC2 सर्वर की कुछ मेमोरी होगी। राइट? कुछ इसमें डिस्क होगी जहां पे हम डेटा स्टोर करते हैं। इस EC2 सर्वर के कुछ CPU होंगे।
और यहां पे हमने एक माय सीक्वल प्रोसेस को रन किया है इस EC2 सर्वर में। तो अब जो भी डेटा हमारा स्टोर होगा वो कहां पे होगा?
वो स्टोर होगा इस EC2 सर्वर के लोकल डिस्क में। जो भी हमारा डेटा होगा वो कहां स्टोर होगा? इस EC2 सर्वर के लोकल डिस्क में। यह
Mys सीक्वल सर्वर Mysl प्रोसेस सिंपली क्या करेगा? इट विल टेक द क्वेरी। इफ इट इज़ अ राइट क्वेरी तो वो इस डिस्क में उस
डेटा को स्टोर कर देगा। और इफ इट इज़ अ रीड क्वेरी तो वह इस डिस्क से डेटा को रीड करके यूजर को रिटर्न कर देगा। सो दिस इज़
गोइंग टू बी द फ्लो। एंड दिस थिंग ऑल टुगेदर इज नोन एज डेटाबेस। तो हमने क्या किया? हमने इस EC2 सर्वर पे एक माय सीक्वल
सर्वर को इंस्टॉल किया। तो ये हो गई हमारी डेटाबेस प्रोसेस। उसके बाद हम इस डिस्क में इस EC2 सर्वर की डिस्क में लोकल डिस्क
में डेटा को स्टोर कर रहे हैं। तो ये सारी चीजें कलेक्टिवली या साथ में हम इसको क्या बोल सकते हैं? हम इसे बोल देते हैं
डेटाबेस कि ये है हमारा डेटाबेस। सो दिस इज़ ऑल अबाउट डेटाबेस। एंड दिस इज़ हाउ एक्चुअली वी स्टोर डेटा इन डेटाबेस। हम
सिंपली एक EC2 सर्वर की डिस्क में डेटा को स्टोर कर रहे हैं। तो ऐसे हम डेटा को स्टोर करते हैं। एंड दिस इज़ द एक्चुअल
मीनिंग ऑफ़ स्टोरिंग डेटा इंटू द डेटाबेस। और इसे फिर हम कम क्या बोल दे रहे हैं? इसे हम बोल दे रहे हैं साथ में डेटाबेस।
ठीक है? अब यहां पे हमने क्या किया? हमारे एप्लीकेशन में शुरू में थाउजेंड्स ऑफ यूज़र्स थे। राइट? तो नंबर ऑफ पोस्ट भी कम
थे, नंबर ऑफ कमेंट्स भी कम थे। सो वी हैव लेस डेटा। तो ये जो हमारा डिस्क है, इस EC2 सर्वर की जो डिस्क है, इसमें हम ईजीली
डेटा को मैनेज कर ले रहे थे। अब जैसे ही हमारा एप्लीकेशन वायरल हुआ, वी गेट मिलियंस ऑफ यूज़र्स। तो, अब हमारे पास टन्स
ऑफ़ पोस्ट आ रहे हैं। टन्स ऑफ़ कमेंट्स आ रहे हैं। राइट? तो कहने का मतलब है कि यहां पे हमारा डेटा भी बढ़ गया। तो अब हो
सकता है कि इस EC2 सर्वर की डिस्क में हम ये डेटा प्रॉपर्ली स्टोर नहीं कर पा रहे हैं। इस EC2 सर्वर की जो डिस्क है वो इतना
सारा डेटा स्टोर नहीं कर पा रही है। तो हम कह सकते हैं कि ये जो हमारा डेटाबेस सर्वर है या हमारा ये जो डेटाबेस है दिस कैन
बिकम अ बॉटल नेक। राइट? तो अब हम देखते हैं कि कौन-कौन से ऐसे रीज़ंस हो सकते हैं जिसकी वजह से हमारा डेटाबेस बॉटल नेक बन
सकता है। सो फर्स्ट वी हैव टू मेनी कॉनकरेंट क्वेरीज़। तो अब इसको समझते हैं कि कैसे ये प्रॉब्लम क्रिएट कर सकता है।
तो हमारे एप्लीकेशन में इनिशियली थाउजेंड्स ऑफ यूज़र्स थे। राइट? सो वी हैव लेस ट्रैफिक। अब जैसे ही हमारा ऐप वायरल
हुआ तो सिंगल सेकंड में वी आर गेटिंग मिलियंस ऑफ रिक्वेस्ट। तो हमारे एप्लीकेशन सर्वर में मिलियंस ऑफ रिक्वेस्ट आ रही
हैं। राइट? और उन मिलियंस ऑफ रिक्वेस्ट में से थाउजेंड्स ऑफ रिक्वेस्ट पर सेकंड आर फायर्ड टू द डेटाबेस। थाउजेंड्स ऑफ
रिक्वेस्ट कंटीन्यूअसली डेटाबेस पे आ रही हैं। कुछ यूज़र्स फीड एक्सेस कर रहे हैं। कुछ यूज़र्स पोस्ट लाइक कर रहे हैं। कुछ
यूज़र्स फॉलो कर रहे हैं दूसरे यूज़र्स को एंड सम आर पोस्टिंग कमेंट्स। तो ऐसे डिफरेंट डिफरेंट-डिफरेंट रिक्वेस्ट आ रही
हैं हमारे पास डेटाबेस में। अब यह जो हमारा डेटाबेस सर्वर है, यह जो हमारा EC2 इंस्टेंस है, इसमें हमने देखा कि इसकी कुछ
मेमोरी होगी, इसमें डिस्क होगी, इसमें सीपीयूस होंगे। राइट? एंड ईच विल बी इन लिमिटेड अमाउंट। मतलब हमारे पास लिमिटेड
नंबर ऑफ़ CPU होंगे, मेमोरी होगी, डिस्क होगा। सो, एवरीथिंग हैज़ अ लिमिट। अब ये जो हमारी क्वेरीज़ हैं, जो क्वेरीज़ हमारे
डेटाबेस में जा रही हैं, ये हर क्वेरी को एक कनेक्शन चाहिए। राइट? एग्जीक्यूट होने के लिए एक कनेक्शन चाहिए और दे नीड सम
प्रोसेसिंग टाइम। अब लेट्स से कि हमारे डेटाबेस में 2000 रिक्वेस्ट जा रही थी। 2000 रिक्वेस्ट जा रही थी पर सेकंड। तो
उनमें से 1000 रिक्वेस्ट को 1000 रिक्वेस्ट को रिसोर्स एलोकेट हो गए। इन 1000 रिक्वेस्ट को सीपीयू, डिस्क, रैम यह
सारी चीजें मिल गई, असाइन हो गई। सो 1000 रिक्वेस्ट गॉट रिसोर्सेज। अब बाकी जो हमारी 1000 रिक्वेस्ट हैं इनको वेट करना
पड़ेगा। राइट? इनको वेट करना पड़ेगा। तो यहां पे हमारा एक क्यू बिल्ड हो जाता है। यहां पे हमारा रिक्वेस्ट क्यू या क्वेरी
क्यू जिसे हम बोलते हैं वो बिल्ड हो जाता है। यहां पे हमारा क्वेरी क्यू बिल्ड हो जाता है। जहां पे हमारी बाकी की रिमेनिंग
रिक्वेस्ट स्टोर हो जाती है। तो अब नंबर ऑफ रिक्वेस्ट या नंबर ऑफ क्वेरीज़ बढ़ने से क्या हुआ? हमारा यह क्वेरी क्यू बिल्ड हो
गया। राइट? तो यहां पर जब हमारी नंबर ऑफ रिक्वेस्ट बढ़ जाती हैं तो हमारी कुछ रिक्वेस्ट को कुछ क्वेरीज को रिसोर्सेज
असाइन नहीं हो पाते। राइट? तो उसकी वजह से हमारा क्वेरी क्यू बिल्ड हो जाता है और उनमें फिर वो रिक्वेस्ट स्टोर हो जाती है।
तो इन रिक्वेस्ट के लिए इन क्वेरीज के लिए जो क्वेरी क्यू में स्टोर हो गई हैं उनके लिए रिस्पांस टाइम भी इनक्रीस हो गया।
राइट? अब वो जो क्वेरीज हैं उनका रिस्पांस देर से मिलेगा। तो उनके लिए रिस्पांस टाइम इनक्रीस हो जाता है। और रिस्पांस टाइम
इनक्रीस होने की वजह से फिर यूज़र्स स्लोनेस को फील करते हैं। वो फील करते हैं कि ऐप ये जो है वो काफी स्लो है। सो दिस
इज़ द फर्स्ट रीज़न जो हमारे डेटाबेस को बॉटल नेक बना सकता है। तो ये देखा हमने पहला रीज़न जो था टू मेनी कॉकरेंट क्वेरीज़।
अब जो हमारा सेकंड रीज़न है वो है टू मेनी डेटा शेयर्ड नॉट शेयरर्ड। एक्चुअली इट वुड बी स्टर्ड। सो टू मेनी डेटा स्टर्ड इन द
टेबल। तो यहां पे अब लेट्स से हमारे पास दो टेबल्स हैं। हमारे पास एक यूजर टेबल है जिसमें 10 मिलियन रोज़ स्टर्ड हैं। मतलब
हमारे पास 10 मिलियन यूज़र्स हैं। और एक हमारे पास पोस्ट टेबल है। जहां पे हमने सारे यूज़र्स की पोस्ट को स्टोर किया। तो
इसमें हमारे पास 10 बिलियन रिकॉर्ड्स हैं। 10 बिलियन रोज़ हैं। ऐसे ही हमारे पास कमेंट टेबल है, लाइक टेबल है। एंड दे दे
आर आल्सो एक्सप्लोडेड एक्सप्पोनेंशियली। तो अब जो हमारी नॉर्मल क्वेरीज़ भी होंगी जिसमें इंडेक्स भी लगा होगा मतलब क्वेरीज़
इवन विद इंडेक्सेस। इनको भी डेटाबेस का एक लार्ज पोर्शन पोर्शन स्कैन करना होगा। तो जैसे ये एक हमारी क्वेरी है। तो ये सिंपल
सी क्वेरी में जहां पे हमने इंडेक्स को भी यूज़ किया। इंडेक्स भी लगाया है। तो, इस सिंपल सी क्वेरी को एग्ज़क्यूट करने के लिए
भी हमें लार्ज पोर्शन ऑफ़ डेटाबेस को स्कैन करना पड़ेगा। राइट? फिर हम सॉर्ट करेंगे, फ़िल्टर करेंगे, रिटर्न करेंगे रिजल्ट को।
सो इट विल टेक लॉट ऑफ़ टाइम। क्योंकि जितने हमारे पास ज्यादा नंबर ऑफ रोज़ होंगी, हमारे टेबल्स में यूजर टेबल हो, चाहे वो
पोस्ट टेबल हो, जितने ज्यादा नंबर ऑफ हमारे पास रोज़ रहेंगी, उतना ज्यादा हमें डिस्क को रीड करना पड़ेगा। तो हम कह सकते
हैं कि मोर रोज़ मोर रोज़ इक्वल टू मोर डिस्क रीड्स इक्वल टू स्लोअर क्वेरीज़। राइट? हमारे पास जितनी ज्यादा
नंबर ऑफ रोज़ रहेंगी, उतना ज्यादा हमें डिस्क को रीड करना पड़ेगा। एंड इट विल कम अप विद स्लोअर क्वेरीज़। तो ये देखा हमने
दूसरा पॉइंट जहां हमने देखा टू मेनी डेटा स्टर्ड इन द टेबल। अब जो हमारा तीसरा पॉइंट है वो है इंडेक्सेस एंड कैश
इनफिशिएंसी। तो अब इसे हम समझते हैं। तो इंडेक्सेस स्पीड अप क्वेरीज। क्योंकि इंडेक्सेस का यूज़ करने से हमारी डेटाबेस
क्वेरीज़ जो होती हैं वो फास्ट हो जाती हैं। क्योंकि ये इंडेक्सेस क्या करते हैं? ये हेल्प करते हैं डेटाबेस को कि वो
डायरेक्टली सही रो पे जंप कर जाएं। सो वी कैन से कि इंडेक्सेस मेक्स आवर डीबी क्वेरीज़ फास्ट। राइट? अब लेकिन जैसे ही
डेटाबेस टेबल्स ग्रो होती है, जैसे ही हमारी डेटाबेस टेबल्स ग्रो होती है, व्हेन टेबल्स ग्रो ह्यूज, इंडेक्सेस देमसेल्व्स
बिकम लार्ज एंड हैवी। तो अब इसका क्या मतलब है? इसे समझते हैं। तो ये जो हमारे इंडेक्सेस हैं, इन्हें भी हम कहीं स्टोर
कर रहे होंगे। राइट? इन्हें भी हम स्टोर करते हैं। तो हम इसे कहां स्टोर करते हैं? हम इसे स्टोर करते हैं डिस्क में। तो
हमारे डिस्क में एक इंडेक्स फाइल होती है जहां हम सारे इंडेक्सेस को स्टोर करते हैं। तो अब जैसे ही नंबर ऑफ रोज़ बढ़ती जाती
हैं हमारे डेटाबेस टेबल्स में नंबर ऑफ रोज़ बढ़ती जाती हैं। तो ये जो हमारी इंडेक्स फाइल है इसका साइज भी बढ़ता जाता है। राइट?
अब इनिशियली हम क्या कर सकते थे कि हम इस इंडेक्स फाइल को मेमोरी में रख सकते थे। राइट? कैश मेमोरी में जहां से हमें फास्ट
एक्सेस हो जाता। पर जैसे ही हमारे डेटाबेस टेबल का साइज बढ़ेगा, नंबर ऑफ रोज़ बढ़ जाएंगी, तो हमारे इंडेक्सेस का इंडेक्सेस
भी बढ़ जाएंगे। राइट? तो हमारी जो इंडेक्स फाइल है, उसका साइज भी बढ़ जाएगा। फिर इससे प्रॉब्लम क्या आ सकती है कि ये जो हमारी
इंडेक्स फाइल है, फिर ये शायद मेमोरी में कंप्लीटली फिट ना हो। राइट? नंबर ऑफ इंडेक्सेस ज्यादा हो जाएंगे तो शायद फिर
ये हमारी इंडेक्स फाइल कंप्लीटली मेमोरी में फिट ना हो। तो फिर हमें इसे डिस्क में स्टोर करना होगा। राइट? और इफ वी विल
स्टोर दिस ऑन डिस्क तो हमें स्लोअर रीड्स देखने को मिलेंगे। क्योंकि जो हमारी मेमोरी होती है वो हमें फास्ट रिजल्ट्स
प्रोवाइड करती है। राइट? लेकिन यदि हम इंडेक्स फाइल को डिस्क में स्टोर करेंगे तो हमें स्लाइटली स्लोअर रीड्स देखने को
मिलेंगे। सो दिस वाज़ अबाउट आवर फर्स्ट पॉइंट कि व्हेन टेबल्स ग्रो ह्यूज इंडेक्सेस देमसेल्व्स बिकम लार्ज एंड
हैवी। तो इंडेक्सेस की वजह से भी हमें स्लोअर रीड्स देखने को मिलते हैं। स्लोअर रीड्स एंड स्लोअर राइट्स। क्योंकि अब
हमारा डेटाबेस इट विल स्टार्ट रीडिंग एंड राइटिंग टू द डिस्क इंस्टेड ऑफ़ मेमोरी। सो दिस वाज़ द रीज़न कि हमारे इंडेक्स जो थे वो
डेटाबेस क्वेरीज़ को स्लो कर दे रहे थे। अब जो हमारी दूसरी प्रॉब्लम है वो आ सकती है कैश की वजह से। कैश इनफिशिएंसी की वजह से।
पहले हमने देखा इंडेक्स इनफिशिएंसी। अब हम समझते हैं कैश इनफिशिएंसी को। तो हमारे इस डेटाबेस में ये जो हमारा EC2 सर्वर है
इसमें हमारे पास डिस्क भी है और हमारे पास कुछ मेमोरी भी होगी। राइट? तो हम मेमोरी या इसे हम कैश बोल सकते हैं। तो इसमें भी
हम कुछ डेटा स्टोर कर रहे होंगे। राइट? फॉर फास्टर लुकअप्स। तो अब जो हमारी कैश मेमोरी है, यह होती है लिमिटेड। हमने
इसमें डेटा स्टोर किया। अब जैसे ही हमारा डेटा ग्रो होगा तो हम एक स्मॉल फ्रैक्शन ऑफ डेटा और इंडेक्सेस को ही मेमोरी में
स्टोर कर पाएंगे। राइट? जो हमारी न्यू क्वेरीज होंगी वो नए पेजेस को लोड करेंगी और जो हमारे ओल्ड पेजेस होंगे वो एिक्ट हो
जाएंगे या बाहर हो जाएंगे मेमोरी से या कैश से। तो उससे क्या होगा कि हमारा जो फ्रीक्वेंटली एक्सेस्ड डेटा रहेगा वो भी
कैश से बार-बार एिक्ट होगा या पुश् आउट होगा। तो इसकी वजह से क्या होगा कि बार-बार हमें डिस्क को रीड करना पड़ेगा।
तो ये जो हमारा डेटाबेस है अब इसे बार-बार डिस्क में रीड करना पड़ेगा। डिस्क में राइट करना पड़ेगा। एंड एक्सेसिंग डिस्क इज़
1000 टाइम्स स्लोअर देन एक्सेसिंग मेमोरी। तो ये था हमारा कैश इनफिशिएंसी। और हमने देखा कि कैसे इंडेक्स इनफिशिएंसी और कैश
इनफिशिएंसी डेटाबेस क्वेरीज को स्लो कर देती है। बार-बार हमें यह फोर्स करती है डिस्क रीड्स के लिए व्हिच विल मेक आवर
क्वेरीज़ स्लो। डेटाबेस क्वेरीज़ स्लो। तो ये देखा हमने थर्ड पॉइंट वि इज इंडेक्स एंड कैश इनफिशिएंसी जो क्या रिजल्ट देती
है हमें कि क्वेरीज़ दैट वंस हिट मेमोरी जो पहले मेमोरी हिट कर रही थी या मेमोरी से डेटा ले रही थी वो अब डिस्क से डेटा लेंगी
और डिस्क रीड्स जो होते हैं हमारे दे आर स्लो दे प्रोवाइड स्लाइटली स्लोअर रीड्स तो यह डेटाबेस को कर देगा स्लो एंड इट विल
कम अप विद डेटाबेस स्लोनेस तो यह देखा हमने है थर्ड पॉइंट। अब जो हमारा फोर्थ पॉइंट है वो है लॉकिंग। अब इसे हम समझते
हैं कि यह लॉकिंग क्या चीज है? तो लेट्स से कि हमारे पास दो यूज़र्स हैं। हमारे पास एक यूजर ए है और एक हमारे पास यूजर बी है।
और ये दोनों यूज़र्स एक अदर यूजर यूजर सी की पोस्ट को लाइक करते हैं। अब लेट्स से कि जो हमारा लाइक काउंट है वो है अभी 15।
लेट्स से हमारा लाइक काउंट है 15। अब ये यूजर दोनों यूज़र्स यूजर एंड यूजर बी एक साथ साइमलटेनियसली इस यूजर सी की पोस्ट पे
लाइक करते हैं। तो अब हमारी क्या रिस्पांसिबिलिटी है कि हमें इस काउंट को अपडेट करना है। राइट? लाइक काउंट को हमें
अपडेट करना है। तो अब जब मल्टीपल यूज़र्स या मल्टीपल क्वेरीज़ सेम टाइम पे सेम रो को मॉडिफाई करते हैं, तो हमें लॉक्स का यूज़
करना पड़ता है। राइट? टू यूज़र्स यहां पे हमारे पास दो डिफरेंट यूज़र्स सेम पोस्ट पे साइमलटेनियसली लाइक कर रहे हैं। तो हमें
लाइक काउंट को यहां अपडेट करना होगा। तो हम क्या करेंगे? हमारा जो एक ट्रांजैक्शन होगा वो उस रो को लॉक कर देगा। लेट्स से
यूजर ए का जो ट्रांजैक्शन था वो इस रो को लॉक कर देगा। तो ये यूजर ए का ट्रांजैक्शन इस रो को लॉक कर देगा। तो ये जो यूजर बी
का ट्रांजैक्शन है इसको थोड़ा वेट करना पड़ेगा। और जैसे ही वेट टाइम बढ़ जाएगा, वेट टाइम बढ़ जाएगा, तो रिस्पांस टाइम भी
बढ़ जाएगा। राइट? एंड इट विल कम अप विद स्लोअर परफॉर्मेंस। तो हमें स्लोअर परफॉर्मेंस देखने को मिलेगी। सो जैसे-जैसे
हमारा ट्रैफिक बढ़ेगा, वेट टाइम इंक्रीस होगा एंड इट विल कम अप विद स्लोअर रिस्पांस। तो ये देखा हमने एक और पॉइंट जो
हमारे डेटाबेस को स्लो बना देता है। अब जो हमारा नेक्स्ट पॉइंट है वो है रिसोर्स एंड सैचुरेशन। तो हमारे रिसोर्सेज कौन-कौन से
हैं? हमारे रिसोर्सेज में CPU, RAM, डिस्क, आईo तो हमारे ये रिसोर्सेज हैं और और हर क्वेरी को एग्जीक्यूट होने के लिए
रिसोर्सेज की नीड होती है। राइट? हर क्वेरी को एग्जीक्यूट होने के लिए रिसोर्सेज की नीड होती है। उसे सीपीयू की
नीड होती है फॉर प्रोसेसिंग, रेम की नीड होती है फॉर कैशिंग रिजल्ट्स एंड जॉइंट्स। और डिस्क आईओ की नीड होती है फॉर रीडिंग
एंड राइटिंग डेटा फ्रॉम द डिस्क। तो ये हमारे ऐसे डिफरेंट रिसोर्सेज हैं और ये डिफरेंट रिसोर्सेज के यूज़ हैं। अब जैसे ही
हमारा रिसोर्स यूटिलाइजेशन 100% होने लगता है या लेट्स से 90% क्रॉस कर जाता है तो फिर सिंपल क्वेरीज़ को भी टाइम लगता है।
सिंपल क्वेरीज़ को भी एग्जीक्यूट होने में टाइम लगता है। एंड इफ दे विल टेक टाइम यू विल फील डेटाबेस स्लोनेस। राइट? सो दीज़ आर
ऑल द पॉइंट्स जो कि हमारे डेटाबेस को स्लो बना देते हैं। और जैसे ही हमारा डेटाबेस ओवरलोड होता है तो उसकी वजह से फिर हमें
क्वेरीज स्लो देखने को मिलती हैं। जो हमारी क्वेरीज होती हैं, डेटाबेस क्वेरीज होती हैं, वो स्लो हो जाती हैं। जो हमारा
एप्लीकेशन टाइम आउट होता है, एप्लीकेशन टाइम आउट होता है, वह इनक्रीस हो जाता है। और हमारे ऐप सर्वर्स जो होते हैं वो ब्लॉक
होने लगते हैं। एप सर्वर्स गेट ब्लॉक्ड जो हमारा यूजर एक्सपीरियंस होता है यूजर एक्सपीरियंस वो भी ड्रॉप होता है। राइट?
वो भी ड्रॉप होगा। और उसके बाद हमारी जो हेल्दी सर्विसेज हैं लेट्स से हमारे एप्लीकेशन में कुछ सर्विज हैं। लेट्स से
हमने माइक्रो सर्विस आर्किटेक्चर को फॉलो किया। उसमें हमारे पास डिफरेंट-डिफरेंट सर्विज होंगी। राइट? तो कुछ एक-दो सर्विज
के फेल होने की वजह से जो हमारी हेल्दी सर्विज होती हैं या हेल्दी इंस्टेंसेस होते हैं वो भी फेल करने लगते हैं। सो इवन
हेल्दी सर्विसेस स्टार्ट फेलिंग। तो ये देखा हमने कि जैसे ही हमारा कोई भी एप्लीकेशन वायरल होता है एंड इफ वी हैव
लिमिटेड रिसोर्सेज या हमारे पास एक सिंगल डेटाबेस सर्वर है तो हमारा डेटाबेस सर्वर या हमारा डेटाबेस स्लो हो जाता है। तो ये
देख ली हमने सारी प्रॉब्लम्स कि एक सिंगल डेटाबेस सर्वर के होने से सिंगल डेटाबेस के होने से हमें क्या-क्या प्रॉब्लम्स आ
रही हैं। अब हम देखते हैं कि कैसे हम इस प्रॉब्लम को इन प्रॉब्लम्स को सॉल्व कर सकते हैं। कैसे हम इन इशूज़ को फिक्स कर
सकते हैं। तो उसके लिए हम स्केलिंग का यूज़ कर सकते हैं। हम स्केलिंग का यूज़ कर सकते हैं। तो स्केलिंग में हमारे पास होती है
वर्टिकल स्केलिंग एंड हॉरिजॉन्टल स्केलिंग। वर्टिकल स्केलिंग को हम क्या बोलते हैं? स्केल अप और हॉरिजॉन्टल
स्केलिंग को हम बोलते हैं स्केल आउट। तो वर्टिकल स्केलिंग में हम क्या करेंगे कि ये जो हमारा डेटाबेस सर्वर था ये जो हमारा
डेटाबेस सर्वर था हम इसकी कैपेसिटी बढ़ा देंगे। हम इसकी रैम बढ़ा देंगे। मेमोरी बढ़ा देंगे। हम इसमें इसकी डिस्क बढ़ा
देंगे। हम ज्यादा नंबर ऑफ डिस्क यूज़ कर लेंगे। हम सीपीयूस को बढ़ा देंगे। तो वर्टिकल स्केलिंग में हम इस ईसी2 सर्वर जो
हमारा पुराना डेटाबेस सर्वर था हम उसकी ही कैपेसिटी को बढ़ा देंगे। राइट? तो ये हो गया हमारा वर्टिकल स्केलिंग। पर वर्टिकल
स्केलिंग हैज़ अ लिमिट। हम एक लिमिट तक ही मेमोरी बढ़ा सकते हैं। हम एक लिमिट तक ही डिस्क बढ़ा सकते हैं। हम एक लिमिट तक ही
CPU बढ़ा सकते हैं। राइट? सो, वी कैन से कि वर्टिकल स्केलिंग हैज़ लिमिट। तो यदि अब हमने एक कंप्यूटर की फुल कैपेसिटी को यूज़
कर लिया और उसके आगे हम यूज़ नहीं कर सकते उसे। एंड आवर डेटाबेस इज़ स्टिल फेलिंग। तो फिर हम क्या करेंगे? फिर हम जाएंगे
हॉरिजॉन्टल स्केलिंग की तरफ। फिर हम जाएंगे हॉरिजॉन्टल स्केलिंग की तरफ। तो हॉरिजॉन्टल स्केलिंग का क्या मतलब होता
है? एडिंग मोर मशीनंस। जैसे वर्टिकल स्केलिंग में हमने क्या देखा था? एडिंग मोर सीपीयूस, एडिंग मोर रैम, एडिंग मोर
डिस्क। ऐसे ही हॉरिजॉन्टल स्केलिंग क्या होता है? एडिंग मोर मशीनंस। मतलब हम नंबर ऑफ़ कंप्यूटरटर्स नंबर ऑफ़ सर्वर्स को ही
बढ़ा देंगे। सो, दिस इज़ अबाउट हॉरिजॉन्टल स्केलिंग। अब हॉरिजॉन्टल स्केलिंग में हमारी एक टेक्निक होती है शार्डिंग। अब हम
शार्डिंग में क्या करते हैं? शार्डिंग में हम डेटा को स्प्लिट कर देते हैं इंटू मल्टीपल स्मॉलर सर्वर्स। तो हम क्या करते
हैं? हम कुछ डेटा एक सर्वर पे रखते हैं। कुछ डेटा दूसरे सर्वर पे रखते हैं। तो ऐसे करके हम डेटा को स्प्लिट कर देते हैं इंटू
मल्टीपल सर्वर्स। अब यहां पे हर सर्वर का अपना अलग सीपीू होगा, RAM होगी, डिस्क होगा। राइट? तो ऐसे करके हम डेटा को
स्प्लिट कर देते हैं इंटू मल्टीपल सर्वर्स। तो शार्डिंग का क्या मतलब है? कि हम अपने डेटाबेस को एंटायर डेटाबेस को
ब्रेक कर देते हैं इंटू स्मॉलर इंडिपेंडेंट डेटाबेस। जहां पे हर एक इंडिपेंडेंट डेटाबेस को हम बोलते हैं
शार्ड। हम क्या बोलते हैं? हर एक इंडिपेंडेंट डेटाबेस को फिर हम बोलते हैं शार्ड। तो हमने क्या किया कि ये जो हमारा
कंप्लीट डेटा था इसको हमने स्प्लिट कर दिया इनू मल्टीपल सर्वर्स। हमने हमारे डेटाबेस को स्मॉलर डेटाबेस में डिवाइड कर
दिया। जहां पे हर एक स्मॉल डेटाबेस को हम बोलेंगे एक शार्ड। तो हर शार्ड क्या कर रहा है? हर शार्ड एक सबसेट ऑफ डेटा को
होल्ड कर रहा है। राइट? ये जो हमारा शार्ड वन है ये यूजर वन और यूजर टू के डेटा को स्टोर कर रहा है। जो हमारा शार्ड टू है वो
यूजर थ्री एंड यूजर फोर के डेटा को स्टोर कर रहा है। तो ऐसे करके हमने डेटा को स्प्लिट कर दिया। और जो हर शार्ड है वो एक
सबसेट ऑफ डेटा को होल्ड कर रहा है। और वो सबसेट किसका है? वो सबसेट है इस बिग डेटाबेस का। ह्यूज डेटाबेस का जिसको हमने
स्प्लिट कर दिया या ब्रेक कर दिया। तो यहां पे जो हर एक शार्ड होगा जो हर एक शार्ड होगा वो अपने आप में एक इंडिपेंडेंट
मशीन होगी। राइट? इसका अपना खुद का CPU होगा, RAM होगा, डिस्क होगी। तो ये जो शार्ड है ये अपने आप में एक इंडिविजुअल
मशीन है। स्मॉलर मशीन। तो ये देखा हमने शार्डिंग को। अब इसे समझते हैं हम एक एग्ज़ांपल सेम एग्ज़ांपल से जो अभी हमने
देखा सोशल मीडिया एप्लीकेशन का कि जैसे ही हमारा एप्लीकेशन ग्रो होता है अ हमारे पास मिलियंस ऑफ यूज़र्स हो जाते हैं। राइट? अब
लेट्स से कि हमारे एप्लीकेशन में 100 मिलियन यूज़र्स आ गए। तो जो हमारा यूजर डेटाबेस है, जो हमारा यूजर डेटाबेस है,
उसमें कितने हमारे पास 100 मिलियन रोज़ होंगी। राइट? 100 मिलियन रोज़ होंगी। तो, हम क्या कर सकते हैं? हम
इस यूजर डेटाबेस को ब्रेक कर सकते हैं इनू स्मॉलर शार्ड। मतलब हम क्या करेंगे? हम ये 100 मिलियन रोज़ हैं। ये जो डेटा है, हम
इसको स्प्लिट कर देंगे इंटू मल्टीपल मशीनंस या मल्टीपल सर्वर्स। और हर सर्वर क्या होगा? एक शार्ड होगा। तो, हमने क्या
किया? हमने यूजर डेटाबेस को ब्रेक कर दिया इंटू स्मॉलर इंडिपेंडेंट डेटाबेस। और यहां पे हर एक इंडिपेंडेंट डेटाबेस को हम क्या
बोलते हैं? हम बोलते हैं उसे शार्ड। अब लेट्स से कि हमने शार्ड वन में यूज़र्स रखे। यूज़र्स रखे फ्रॉम वन टू 10 मिलियन। 1
टू 10 मिलियन। शार्ड टू में हमने यूज़र्स रखे। यूज़र्स रखे फ्रॉम 10 मिलियन टू 20 मिलियन। शार्ड थ्री में हमने यूज़र्स रखे
फ्रॉम 20 मिलियन टू 30 मिलियन। तो ऐसे करके हमने हमारे डेटाबेस को ब्रेक कर दिया इंटू स्मॉलर इंडिपेंडेंट डेटाबेस। जहां पे
हर एक डेटाबेस क्या है? हर एक डेटाबेस है एक शार्ड। और फिर हमने इन शार्ड्स को डिस्ट्रीब्यूट कर दिया अक्रॉस डिफरेंट
सर्वर्स। जहां पे हर सर्वर की अपने सीपीयू होगी, अपनी मेमोरी होगी और अपना स्टोरेज होगा। तो ये देखा हमने शार्डिंग को और हम
हर शार्ड को इंडिपेंडेंटली स्केल भी कर सकते हैं। अब यहां पे शार्डिंग में हमारे पास एक शार्डिंग की होती है। हमारे पास एक
शार्डिंग की होती है। शार्डिंग की। सो शार्डिंग की क्या होता है? शार्डिंग की इज़ एन एट्रिब्यूट जो डिसाइड करती है कि हमारा
रिकॉर्ड है वो किस शार्ड में जाएगा? किस पर्टिकुलर शार्ड में जाएगा। अब ये शार्डिंग की हमारी यूजर आईडी भी हो सकती
है। शार्डिंग की हमारी यूजर आईडी भी हो सकती है, सिटी भी हो सकती है, रीजन भी हो सकता है। सो इट कैन बी एनी पैरामीटर। अब
यहां पे इस केस में हमारे यूजर डेटाबेस में शार्डिंग की क्या हो सकती है? हमारे यूजर डेटाबेस में शार्डिंग की हो सकती है
यूजर आईडी। तो यदि किसी यूजर की यूजर आईडी वन से 1 मिलियन के बीच में है तो उसका रिकॉर्ड जाएगा शार्ड वन में। तो इसमें
शार्ड की हमारी शार्डिंग की हमारी हेल्प करती है। अब यहां पे हम रीजन को भी एक शार्डिंग की बना सकते हैं। लेट्स से कि
हमें इंडिया के यूज़र्स का डेटा अलग रखना है। सेपरेट रखना है। तो हम रीजन बेस्ड या लोकेशन बेस्ड शार्डिंग का यूज़ कर सकते
हैं। जिसमें हम रीजन को जिसमें हम रीजन को शार्डिंग की कंसीडर करेंगे। लेट्स से कि हमारे पास कोई ऐसा यूज़ केस आता है जहां पर
हमें एक हर रीजन के यूज़र्स का डाटा सेपरेट रखना है। तो फिर हम वहां पे लोकेशन बेस्ड शार्डिंग यूज़ कर सकते हैं। जहां पे हम
रीजन को रीजन को या कंट्री को शार्डिंग की बना सकते हैं। तो सही शार्डिंग की डिसाइड करना हमारे लिए बहुत इंपॉर्टेंट होता है।
एंड इट्स वेरी क्रिटिकल एज वेल। और यदि हम शार्डिंग की सही से डिसाइड नहीं करते तो फिर हमें अनइवन लोड्स देखने को मिलता है।
अनइवन लोड्स जिसे हम हॉट शार्ड्स बोलते हैं। सो डिसाइडिंग शार्डिंग की इज़ वेरीेंट एंड इट इज़ क्रिटिकल एज वेल। सो दिस इज़
अबाउट शार्डिंग। तो अभी तक हमने क्या देखा? हमने देखा कि हम शार्डिंग में डेटाबेस को ह्यूज डेटाबेस को ब्रेक कर
देते हैं इंटू स्मॉलर डेटाबेस। राइट? जैसे हमने यूजर डेटाबेस को यूजर डेटाबेस को डिवाइड कर दिया या ब्रेक कर दिया इंटू
स्मॉलर डेटाबेस स्मॉलर शार्ड्स। तो हमने कुछ यूज़र्स को रखा शार्ड वन में कुछ को रखा शार्ड टू में कुछ को शार्ड थ्री में
और ऐसे करके हमने स्मॉलर इंडिपेंडेंट डेटाबेस क्रिएट कर लिए। अब लेट्स से कि यदि हमारा ये शार्ड वन फेल हो गया। यदि
हमारा शार्ड वन फेल हो गया। तो अब इस केस में क्या होगा कि जो बाकी के यूज़र्स रहेंगे अ 10 मिलियन से 100 मिलियन तक की
रेंज के यूज़र्स इनको कोई प्रॉब्लम नहीं जाएगी। राइट? इनको डेटा एक्सेस करने में कोई प्रॉब्लम नहीं जाएगी। प्रॉब्लम किसको
जाएगी? जो यूज़र्स वन से 10 मिलियन तक की रेंज में है। मतलब जिन यूज़र्स की आईडी वन से 10 मिलियन के बीच में है। जिन यूज़र्स
की आईडी यूजर आईडी वन से वन से 10 मिलियन के बीच में है। इनको प्रॉब्लम जाएगी। तो अब इस केस को हम कैसे सॉल्व कर सकते हैं?
इस प्रॉब्लम को हम कैसे सॉल्व कर सकते हैं? तो इसके लिए फिर हम शार्ड में भी मास्टर स्लेव आर्किटेक्चर का यूज़ करते
हैं। तो यहां पे हम क्या करेंगे? हम हर शार्ड में एक मास्टर स्लेव आर्किटेक्चर को फॉलो करेंगे। तो अब यहां पे जैसे यह हमारा
शार्ड वन है, यह जो हमारा शार्ड वन है, हमारा शार्ड वन के लिए हम मास्टर स्लेव आर्किटेक्चर यूज़ करेंगे। तो हम इस शार्ड
वन के लिए एक ले लेंगे मास्टर डीबी जो कि राइट ऑपरेशंस के लिए रिस्पांसिबल होगा और दो ले लेंगे हम स्लेव डीबी स्लेव डीबी। तो
ऐसे करके हम इंडिविजुअल शार्ड को भी इंडिपेंडेंटली स्केल कर सकते हैं। उसे ग्रो कर सकते हैं और इसे फेलियर से बचा
सकते हैं। तो यह देखा हमने कि हम कैसे हर एक शार्ड को इंडिविजुअली ग्रो कर सकते हैं और उसमें मास्टर स्लेव आर्किटेक्चर को यूज
कर सकते हैं। तो हम यहां पे मास्टर स्लेव आर्किटेक्चर को फॉलो करके हर एक शार्ड को फेल होने से बचा सकते हैं। अब हमें
शार्डिंग का यूज़ करना कब है? हमें शार्डिंग का यूज तब करना है जब हमारा डाटा और ट्रैफिक एक सिंगल डेटाबेस की कैपेसिटी
के बिय्ड ग्रो कर जाए। राइट? तो फिर हमें शार्डिंग का यूज़ करना है। तो ये देखा हमने शार्डिंग के बारे में। अब हम देखते हैं
कुछ ट्रेड्स और कुछ चैलेंजेस जो हमें देखने को मिलते हैं शार्डिंग में। तो शार्डिंग में हमने क्या किया? शार्डिंग
में हमने एक डेटाबेस को स्मॉलर इंडिपेंडेंट डेटाबेस में डिवाइड कर दिया। राइट? हमने डेटा को स्प्लिट कर दिया इनू
मल्टीपल सर्वर्स। अब यदि हमें इन शार्ड्स के बीच में जॉइन को यूज करना है। हमें शार्ड्स के बीच में जॉइन यूज़ करने हैं तो
फिर हमें प्रॉब्लम होती है। लेट्स से कि हमारा कोई एक ऐसा यूज़ केस आता है जिसमें हमें दो डिफरेंट चार्ट्स के डेटा को
कंबाइन करना है। मतलब हमें वहां पे जॉइन यूज़ करना है डिफरेंट-डिफरेंट चार्ट्स के बीच में। तो फिर हमें वहां प्रॉब्लम आती
है। सो दिस इज वन ऑफ द चैलेंज ऑफ शार्डिंग। सो जॉइंस ऑन क्रॉस शार्ड्स। अब ऐसे ही जो दूसरी
प्रॉब्लम आती है हमारी वो आती है ट्रांजैक्शन ट्रांजैक्शन से रिलेटेड। तो यदि हमारा कोई
एक ऐसा यूज़ केस आता है, ऐसी क्वेरी आती है जिसका ट्रांजैक्शन मल्टीपल शार्ड्स पे डिपेंड करता है, जिसका ट्रांजैक्शन
मल्टीपल शार्ड्स पे डिपेंड करता है, तो उसमें भी हमें प्रॉब्लम आती है। सो, दिस इज़ वन ऑफ़ दी अदर चैलेंज ऑफ़ शार्डिंग। तो,
यह देखे हमने कुछ चैलेंजेस एंड ट्रेडऑफ्स शार्डिंग के। सो, यस, आई गेस दिस इज़ ऑल फॉर दिस वीडियो। वी विल सी यू इन द
नेक्स्ट वीडियो। सो, टिल देन ब-बाय। शो सम लाभ। थैंक्स। [संगीत]
The series covers monolithic and microservice architectures, focusing on strategies to convert monolithic systems into microservices. Transitioning to microservices is important because it eliminates single points of failure, enhances scalability, and enables independent deployment of system components, which are crucial for building resilient and maintainable systems.
The series explains different load balancer types and algorithms like round robin and IP hashing, and distinguishes between API gateways and load balancers. It also discusses their optimal placement and role in abstracting client-service communication, ensuring efficient traffic distribution and high availability in large-scale systems.
It highlights transport layer protocols like TCP and UDP, and application layer protocols such as HTTP, HTTPS, WebSockets, and WebRTC. The series compares REST APIs with gRPC, teaching how to build APIs using gRPC, and covers CDN usage, caching strategies, and request rate limiting to optimize performance and scalability.
The series covers distributed system fundamentals including the CAP theorem, consistent hashing, and distributed transaction management through two-phase and three-phase commits. It provides guidance on choosing between SQL and NoSQL databases based on data structure and scalability needs, alongside techniques like indexing, sharding, and event-driven architectures using messaging queues.
Containerization basics with Docker are introduced alongside discussions of serverless and EC2 architectures on AWS. The playlist teaches deployment methodologies using cloud-native tools to build scalable applications, emphasizing modern infrastructure approaches for flexibility and rapid scaling.
Security topics include authentication, authorization, and end-to-end encryption with private/public key cryptography. Operational subjects such as cron jobs, polling mechanisms, file uploads with pre-signed URLs, and media storage handling are also covered to ensure systems are secure, maintainable, and efficient in real-world scenarios.
The playlist provides a structured, week-wise approach combining foundational theories with practical coding exercises and real-world system designs like Amazon and Spotify. It includes interview preparation and emphasizes understanding system trade-offs, enabling learners to build scalable, resilient systems and confidently handle industry technical challenges.
Heads up!
This summary and transcript were automatically generated using AI with the Free YouTube Transcript Summary Tool by LunaNotes.
Generate a summary for freeRelated Summaries
Comprehensive Overview of Network Engineering Concepts
This video series, led by Brian Ferrill, covers essential topics in network engineering, including network devices, protocols, virtualization, and cloud computing. It provides a thorough understanding of both foundational and advanced concepts necessary for configuring, managing, and troubleshooting networks.
Master SQL: Comprehensive Guide to Advanced Data Analytics and Optimization
Explore an extensive SQL course covering fundamentals to advanced topics including data warehousing, analytics, complex querying, performance tuning, and AI-powered coding assistance. Learn practical techniques, real-world project workflows, and best practices to excel in data engineering and analysis using SQL.
Unlocking the Power of Go: A Comprehensive Programming Course for Beginners
Learn Go programming with our comprehensive course for beginners. Master the fundamentals and build real-world projects!
Scalable System Design Explained Using a Restaurant Analogy
Explore how building a scalable, resilient system parallels running a growing pizza parlor. This guide covers vertical and horizontal scaling, fault tolerance, microservices, load balancing, and decoupling with real-world examples to simplify complex technical concepts.
Comprehensive Python Course: From Basics to Advanced Mega Projects
This extensive Python course covers everything from fundamental programming concepts, data types, and control flow to advanced topics like OOP, file handling, virtual environments, and AI integration. Featuring practical projects including a Jarvis assistant and chatbot, it equips learners with hands-on skills for professional growth and job readiness.
Most Viewed Summaries
A Comprehensive Guide to Using Stable Diffusion Forge UI
Explore the Stable Diffusion Forge UI, customizable settings, models, and more to enhance your image generation experience.
Kolonyalismo at Imperyalismo: Ang Kasaysayan ng Pagsakop sa Pilipinas
Tuklasin ang kasaysayan ng kolonyalismo at imperyalismo sa Pilipinas sa pamamagitan ni Ferdinand Magellan.
Mastering Inpainting with Stable Diffusion: Fix Mistakes and Enhance Your Images
Learn to fix mistakes and enhance images with Stable Diffusion's inpainting features effectively.
Pamamaraan at Patakarang Kolonyal ng mga Espanyol sa Pilipinas
Tuklasin ang mga pamamaraan at patakaran ng mga Espanyol sa Pilipinas, at ang epekto nito sa mga Pilipino.
How to Install and Configure Forge: A New Stable Diffusion Web UI
Learn to install and configure the new Forge web UI for Stable Diffusion, with tips on models and settings.

