MongoDB tidak perlu diperkenalkan. Sejak debutnya pada tahun 2007, database dokumen terus meningkat popularitasnya dan sekarang menjadi database peringkat ke-5 di dunia menurut DB Engines. Sekarang hanya tertinggal Oracle, MySQL, SQL Server, dan PostgreSQL. Ini semakin mengesankan ketika Anda mempertimbangkan bahwa empat teratas adalah database relasional tradisional yang keluar pada abad sebelumnya. MongoDB adalah nomor satu di antara generasi baru database “NoSQL” yang skalabel dan terdistribusi.
Pertumbuhan lincah MongoDB dapat dikaitkan dengan fokus yang kuat pada pengalaman pengembang. Produk itu sendiri sederhana, mudah digunakan, dan menyediakan jalan bahagia dari prototipe ke produksi. Saat mencoba MongoDB, pengembang cenderung berhasil memindahkan prototipe yang berfungsi ke penerapan produksi yang lengkap. Itulah kisah yang harus diingat.
Sementara MongoDB menyederhanakan pengembangan basis data untuk jutaan pengembang di seluruh dunia, Redpanda memiliki misi serupa untuk menyederhanakan aplikasi streaming waktu nyata. Sejak awal, Redpanda dibangun dengan dedikasi yang sama untuk kesederhanaan, kemudahan penggunaan, dan yang terpenting, produktivitas pengembang.
Berbeda tapi sama
Sementara MongoDB dan Redpanda membahas bagian yang berbeda dari tumpukan teknologi, menarik untuk dicatat kesamaan dalam cara mereka memberikan pengalaman pengembang yang menyenangkan secara individual, dan bagaimana mereka saling melengkapi saat digabungkan. Yaitu:
- MongoDB dikirimkan sebagai biner tunggal. Begitu juga dengan Redpanda. Tidak seperti platform streaming lain yang sebanding, Redpanda tidak memiliki ketergantungan pada layanan eksternal seperti Apache Zookeeper. Ini membuat Redpanda mudah dipasang melalui manajer paket seperti halnya secara lokal di laptop pengembang. Ini juga dikirimkan sebagai image Docker sehingga Anda dapat memutarnya melalui Docker Compose, mengintegrasikan dengan pipeline CI/CD, atau menerapkan di Kubernetes dengan pengontrol sederhana.
- Baik Redpanda dan MongoDB adalah sistem terdistribusi. Untuk mencapai skala dan ketahanan, Anda cukup menginstal biner yang sama persis di beberapa server dan mengarahkannya satu sama lain. Hal ini memungkinkan pengembang dan arsitek untuk menunda keputusan tentang skalabilitas dan kinerja di awal proses pengembangan. Model mental dan kode untuk aplikasi tersebut sama baik dijalankan pada laptop, mesin virtual inti tunggal, atau pada beberapa server produksi berdaya tinggi.
- Baik Redpanda maupun MongoDB dikirimkan dengan default yang masuk akal. Ini meminimalkan jumlah tombol yang perlu diubah oleh pengembang atau administrator, apakah mereka membawa lingkungan prototyping (seperti dengan Docker Compose) atau menyediakan cluster produksi. Redpanda bahkan melangkah lebih jauh dengan kemampuan untuk melakukan autotune terhadap perangkat keras yang mendasarinya, memungkinkannya untuk memaksimalkan sumber daya CPU, memori, dan disk yang tersedia dengan sedikit usaha.
- Beban kognitif untuk pengembang tidak hanya pada skalabilitas byte per detik, tetapi juga harus memutuskan bentuk apa yang akan diberikan pada data Anda, dan jenis apa yang harus dipilih. MongoDB memberi pengembang fleksibilitas untuk mengembangkan skema dari waktu ke waktu dengan model data seperti JSON yang ramah. Demikian pula, acara dan pesan yang dikirim ke Redpanda tidak memerlukan skema di muka. Namun, ada opsi untuk menggunakan skema saat dibutuhkan, dan mengembangkan skema agar sesuai dengan kebutuhan bisnis yang berubah.
Menghubungkan MongoDB ke Redpanda
MongoDB terintegrasi dengan Redpanda dalam dua cara:sebagai sink, di mana peristiwa Redpanda dikonsumsi dan dikirim ke MongoDB untuk disisipkan atau diperbarui, atau sebagai sumber CDC, di mana MongoDB mengeksternalkan changelognya ke topik Redpanda untuk orang lain (termasuk instans MongoDB lainnya) ke mengkonsumsi. Integrasi dilakukan melalui Kafka Connect. Karena Redpanda kompatibel dengan Apache Kafka, konektor Kafka yang ada bekerja dengan mulus. Kemampuan untuk memanfaatkan ekosistem Kafka yang luas ini adalah cara lain Redpanda membuat hidup pengembang lebih mudah!
Teman-teman kami di MongoDB telah mengumpulkan demo ticker saham yang mengintegrasikan MongoDB dan Redpanda melalui Kafka Connect. Demo membutuhkan Docker Compose, dan docker-compose.yml
file terlihat seperti ini:
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"
Untuk tutorial dan panduan lengkap, kunjungi posting blog pelengkap di MongoDB. Kami menyambut semua orang dari komunitas MongoDB untuk mencoba Redpanda dan bergabung dengan komunitas Redpanda Slack, tempat Anda dapat terlibat dengan para insinyur yang membangun Redpanda dan membentuk masa depan streaming waktu nyata!
Bacaan Lebih Lanjut
- Dokumentasi Redpanda
- Tolok ukur Redpanda versus Kafka
- Memulai Redpanda