MongoDB को किसी परिचय की आवश्यकता नहीं है। 2007 में अपनी शुरुआत के बाद से, दस्तावेज़ डेटाबेस लोकप्रियता में लगातार बढ़ रहा है और अब डीबी इंजन के अनुसार दुनिया में 5 वां रैंकिंग डेटाबेस है। यह अब केवल Oracle, MySQL, SQL Server और PostgreSQL को पीछे छोड़ता है। यह तब और अधिक प्रभावशाली होता है जब आप मानते हैं कि शीर्ष चार पारंपरिक संबंधपरक डेटाबेस हैं जो पिछली शताब्दी में सामने आए थे। MongoDB स्केलेबल, वितरित "NoSQL" डेटाबेस की नई पीढ़ी में नंबर एक है।
MongoDB के व्यापारिक विकास को डेवलपर अनुभव पर एक मजबूत फोकस के लिए जिम्मेदार ठहराया जा सकता है। उत्पाद स्वयं सरल, उपयोग में आसान है, और प्रोटोटाइप से उत्पादन तक एक सुखद मार्ग प्रदान करता है। मोंगोडीबी की कोशिश करते समय, डेवलपर्स काम कर रहे प्रोटोटाइप को पूर्ण विकसित उत्पादन तैनाती में ले जाने में सफल होते हैं। याद रखने की यही कहानी है।
जबकि MongoDB ने दुनिया भर में लाखों डेवलपर्स के लिए डेटाबेस विकास को सरल बनाया है, Redpanda रीयल-टाइम स्ट्रीमिंग एप्लिकेशन को सरल बनाने के समान मिशन पर है। रेडपांडा शुरू से ही सादगी, उपयोग में आसानी, और सबसे महत्वपूर्ण, डेवलपर उत्पादकता के समान समर्पण के साथ बनाया गया था।
भिन्न लेकिन समान
जबकि मोंगोडीबी और रेडपांडा टेक स्टैक के विभिन्न हिस्सों को संबोधित करते हैं, यह समानताओं को ध्यान में रखना दिलचस्प है कि वे व्यक्तिगत रूप से एक सुखद डेवलपर अनुभव कैसे प्रदान करते हैं, और संयुक्त होने पर वे एक-दूसरे के पूरक कैसे होते हैं। बुद्धि के लिए:
- MongoDB एकल बाइनरी के रूप में शिप करता है। रेडपांडा भी करता है। अन्य तुलनीय स्ट्रीमिंग प्लेटफॉर्म के विपरीत, रेडपांडा की अपाचे ज़ुकीपर जैसी बाहरी सेवाओं पर कोई निर्भरता नहीं है। यह Redpanda को पैकेज प्रबंधकों के माध्यम से स्थापित करना आसान बनाता है क्योंकि यह स्थानीय रूप से एक डेवलपर के लैपटॉप पर होता है। यह एक डॉकर छवि के रूप में भी शिप करता है ताकि आप इसे डॉकर कंपोज़ के माध्यम से स्पिन कर सकें, सीआई/सीडी पाइपलाइनों के साथ एकीकृत कर सकें, या एक साधारण नियंत्रक के साथ कुबेरनेट्स में तैनात कर सकें।
- रेडपांडा और मोंगोडीबी दोनों वितरित सिस्टम हैं। पैमाने और लचीलापन प्राप्त करने के लिए, आप बस एक ही बाइनरी को कई सर्वरों पर स्थापित करते हैं और उन्हें एक दूसरे पर इंगित करते हैं। यह डेवलपर्स और आर्किटेक्ट्स को विकास प्रक्रिया में स्केलेबिलिटी और प्रदर्शन पर निर्णय जल्दी टालने की अनुमति देता है। एप्लिकेशन के लिए मानसिक मॉडल और कोड समान है, चाहे वह लैपटॉप पर चल रहा हो, सिंगल-कोर वर्चुअल मशीन, या कई उच्च-शक्ति वाले उत्पादन सर्वर पर।
- रेडपांडा और मोंगोडीबी दोनों समझदार चूक के साथ जहाज। यह उन नॉब्स की संख्या को कम करता है जिन्हें डेवलपर्स या प्रशासकों को ट्विक करने की आवश्यकता होती है, चाहे वे एक प्रोटोटाइप वातावरण (डॉकर कंपोज़ के साथ) ला रहे हों या एक प्रोडक्शन क्लस्टर का प्रावधान कर रहे हों। रेडपांडा अंतर्निहित हार्डवेयर के खिलाफ ऑटोट्यून करने की क्षमता के साथ और भी आगे जाता है, जिससे यह न्यूनतम प्रयास के साथ उपलब्ध सीपीयू, मेमोरी और डिस्क संसाधनों को अधिकतम करने की अनुमति देता है।
- डेवलपर्स के लिए संज्ञानात्मक भार न केवल बाइट्स-प्रति-सेकंड स्केलेबिलिटी पर है, बल्कि यह तय करने पर भी है कि आपके डेटा को किस आकार में देना है, और किस प्रकार का चयन करना है। MongoDB डेवलपर्स को समय के साथ अनुकूल JSON जैसे डेटा मॉडल के साथ स्कीमा विकसित करने की सुविधा देता है। इसी तरह, रेडपांडा को भेजे गए ईवेंट और संदेशों को एक स्कीमा अप-फ्रंट की आवश्यकता नहीं होती है। हालांकि, जरूरत पड़ने पर स्कीमा का उपयोग करने और बदलती व्यावसायिक आवश्यकताओं के अनुरूप स्कीमा विकसित करने का विकल्प है।
MongoDB को Redpanda से कनेक्ट करना
मोंगोडीबी रेडपांडा के साथ दो तरह से एकीकृत होता है:एक सिंक के रूप में, जिससे रेडपांडा घटनाओं का उपभोग किया जाता है और इंसर्ट या अपडेट के लिए मोंगोडीबी को भेजा जाता है, या सीडीसी स्रोत के रूप में, जहां मोंगोडीबी दूसरों के लिए रेडपांडा विषय में अपने चेंजलॉग को बाहरी करता है (अन्य मोंगोडीबी उदाहरणों सहित) उपभोग करना। एकीकरण काफ्का कनेक्ट के माध्यम से किया जाता है। चूंकि रेडपांडा अपाचे काफ्का के साथ तार संगत है, मौजूदा काफ्का कनेक्टर मूल रूप से काम करते हैं। विशाल काफ्का पारिस्थितिकी तंत्र का लाभ उठाने की यह क्षमता एक और तरीका है जिससे रेडपांडा डेवलपर के जीवन को आसान बनाता है!
MongoDB में हमारे दोस्तों ने एक स्टॉक टिकर डेमो तैयार किया है जो काफ्का कनेक्ट के माध्यम से MongoDB और Redpanda को एकीकृत करता है। डेमो के लिए डॉकर कंपोज़ और docker-compose.yml
. की आवश्यकता होती है फ़ाइल कुछ इस तरह दिखती है:
version: '3.7'
services:
redpanda:
command:
- redpanda
- start
- --smp
- '1'
- --reserve-memory
- 0M
- --overprovisioned
- --node-id
- '0'
- --kafka-addr
- PLAINTEXT://0.0.0.0:9092,OUTSIDE://0.0.0.0:9093
- --advertise-kafka-addr
- PLAINTEXT://redpanda:9092,OUTSIDE://localhost:9093
image: docker.vectorized.io/vectorized/redpanda:v21.9.3
ports:
- 9093:9093
connect:
image: confluentinc/cp-kafka-connect-base:latest
build:
context: .
dockerfile: Dockerfile-MongoConnect
depends_on:
- redpanda
ports:
- "8083:8083"
environment:
CONNECT_BOOTSTRAP_SERVERS: 'redpanda:9092'
CONNECT_REST_ADVERTISED_HOST_NAME: connect
CONNECT_REST_PORT: 8083
CONNECT_GROUP_ID: connect-cluster-group
CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
CONNECT_OFFSET_FLUSH_INTERVAL_MS: 10000
CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/confluent-hub-components"
CONNECT_AUTO_CREATE_TOPICS_ENABLE: "true"
CONNECT_KEY_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
CONNECT_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
mongo1:
image: "mongo:5.0.3"
volumes:
- /data/db
ports:
- "27017:27017"
restart: always
nodesvr:
image: node:16
build:
context: .
dockerfile: Dockerfile-Nodesvr
depends_on:
- redpanda
- mongo1
ports:
- "4000:4000"
संपूर्ण ट्यूटोरियल और पूर्वाभ्यास के लिए, MongoDB पर पूरक ब्लॉग पोस्ट पर जाएँ। Redpanda को आज़माने और Redpanda समुदाय Slack में शामिल होने के लिए हम MongoDB समुदाय के सभी लोगों का स्वागत करते हैं, जहाँ आप उन इंजीनियरों के साथ जुड़ सकते हैं जो Redpanda का निर्माण कर रहे हैं और रीयल-टाइम स्ट्रीमिंग के भविष्य को आकार दे रहे हैं!
आगे पढ़ना
- रेडपांडा दस्तावेज़ीकरण
- रेडपांडा बनाम काफ्का का बेंचमार्क
- रेडपांडा के साथ शुरुआत करना