
“हे फक्त Redis मध्ये कॅश करा” — हे तुम्ही कोड रिव्ह्यूमध्ये, सिस्टम डिझाइन इंटरव्ह्यूमध्ये किंवा Stack Overflow च्या कमेंटमध्ये नक्कीच ऐकलं असेल. आता हे जवळपास एक प्रतिक्षिप्त क्रिया बनली आहे. पण Redis च का? चांगल्या इंडेक्ससह एखाद्या सामान्य डेटाबेसने का नाही, किंवा इतर कोणत्याही इन-मेमरी स्टोअरने? मी त्याचा इतिहास, आर्किटेक्चर आणि पर्यायांचं सध्याचं चित्र खोलवर तपासलं — आणि ही गोष्ट खरोखरच मेमपेक्षा कितीतरी जास्त रंजक आहे.
Redis खरोखर काय आहे आधी एक गोष्ट स्पष्ट करूया. Redis फक्त एक कॅश नाही. ही तीच गैरसमज आहे जी लोकांना अडकवते. Redis म्हणजे REmote DIctionary Server [1], आणि हे एक इन-मेमरी डेटा स्ट्रक्चर स्टोअर आहे — म्हणजे ते डिस्कऐवजी RAM मध्ये डेटा ठेवतं. हाच एक निर्णय त्याच्या वेगाचं बहुतांश कारण स्पष्ट करतो.
तुम्ही /api/orders/1042 सारखा API endpoint उघड करता. तो integer कोणालाही ऐकणाऱ्याला — एखाद्या प्रतिस्पर्ध्याला, आक्रमणकर्त्याला, उत्सुक वापरकर्त्याला — तुमच्याकडे किती orders आहेत ते सांगतो. संख्या 1041 केली, तर तुम्हाला मागील order मिळतो. ती 1 केली, तर तुम्हाला पहिली order मिळते. कोणत्याही auth bypass ची गरज नाही. ID स्वतःच माहितीची गळती आहे.
हा एका परिच्छेदात sequential ID चा प्रश्न आहे. UUID त्याचे निराकरण करण्यासाठी अस्तित्वात आहे — आणि मोठ्या प्रमाणावर महत्त्वाच्या इतर काही गोष्टींसाठी.
Kafka बाहेरून अगदी सरळ-साधा वाटतो — तुम्ही एखाद्या टॉपिकवर प्रकाशित करता, कुणीतरी वाचतो. आतून हे एक बऱ्यापैकी गुंतागुंतीचे वितरित प्रणाली आहे जिथे एकही बाइट वितरित होण्यापूर्वी अनेक भागांनी कोणाचे काय आहे यावर सहमती व्हायला हवी. मी यात बराच वेळ घालवला आणि बहुतेक लेख “विभाजनांमुळे समांतरता मिळते” इथेच थांबतात, वास्तविक हँडशेक समजावून सांगत नाहीत. मला अधिक खोलात जाऊ द्या.
Kafka क्लस्टर म्हणजे नक्की काय Kafka क्लस्टर म्हणजे ब्रोकर्सचा एक समूह — साधे JVM प्रक्रिया, प्रत्येक स्वतःच्या मशीनवर (किंवा कंटेनरमध्ये) चालत असतात. प्रत्येक ब्रोकर डेटाचा एक भाग साठवतो आणि क्लस्टरच्या उर्वरित भागाबद्दल जाणतो [1].