MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडीबी 4.x रीयल टाइम सिंक टू इलास्टिकसर्च 6.x +

यदि आप डॉकर के साथ काम करते हैं तो आप यह ट्यूटोरियल प्राप्त कर सकते हैं

https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb

Monstache Go में लिखा गया एक सिंक डेमॉन है जो आपके MongoDB संग्रह को Elasticsearch में लगातार अनुक्रमित करता है। Monstache आपको अपने MongoDB डेटा की जटिल खोज और एकत्रीकरण करने के लिए Elasticsearch का उपयोग करने की क्षमता देता है और Monstache के लिए रीयल-टाइम Kibana विज़ुअलाइज़ेशन और डैशबोर्ड.डॉक्यूमेंटेशन आसानी से बनाता है:
https://rwynn.github.io/monstache-site/
github :
https://github.com/rwynn/monstache

docker-compose.yml

version: '2.3'
networks:
  test:
    driver: bridge

services:
  db:
    image: mongo:3.0.2
    expose:
      - "27017"
    container_name: mongodb
    volumes:
      - ./mongodb:/data/db
      - ./mongodb_config:/data/configdb
    ports:
      - "27018:27017"
    command: mongod --smallfiles --replSet rs0
    networks:
      - test

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.7
    container_name: elasticsearch
    volumes:
      - ./elastic:/usr/share/elasticsearch/data
      - ./elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - 9200:9200
    command: elasticsearch -Enetwork.host=_local_,_site_ -Enetwork.publish_host=_local_
    healthcheck:
      test: "wget -q -O - http://localhost:9200/_cat/health"
      interval: 1s
      timeout: 30s
      retries: 300
    ulimits:
      nproc: 65536
      nofile:
        soft: 65536
        hard: 65536
      memlock:
        soft: -1
        hard: -1
    networks:
      - test

  monstache:
    image: rwynn/monstache:rel4
    expose:
      - "8080"
    ports:
      - "8080:8080"
    container_name: monstache
    command: -mongo-url=mongodb://db:27017 -elasticsearch-url=http://elasticsearch:9200 -direct-read-namespace=Product_DB.Product -direct-read-split-max=2
    links:
      - elasticsearch
      - db
    depends_on:
      db:
        condition: service_started
      elasticsearch:
        condition: service_healthy
    networks:
      - test

प्रतिकृतिसेट.श

#!/bin/bash

# this configuration is so important 
echo "Starting replica set initialize"
until mongo --host 192.168.144.2 --eval "print(\"waited for connection\")"
do
    sleep 2
done
echo "Connection finished"
echo "Creating replica set"
mongo --host 192.168.144.2 <<EOF
rs.initiate(
  {
    _id : 'rs0',
    members: [
      { _id : 0, host : "db:27017", priority : 1 }
    ]
  }
)
EOF
echo "replica set created"

1) इस कमांड को टर्मिनल$ sysctl -w vm.max_map_count=262144

पर चलाएँ

यदि आप सर्वर पर काम करते हैं तो मुझे नहीं पता कि क्या आवश्यक है

2) एन टर्मिनलडॉकर-कंपोज़ बिल्ड चलाएं

3) टर्मिनल$ डॉकर-कंपोज़ अप -डी चलाएं

अपने कंटेनर को नीचे मत करो।

$ डोकर पीएस

मोंगो डीबी छवि के इपाड्रेस को कॉपी करें

$ docker id_of_mongo_image का निरीक्षण करता है

आईपीएड्रेस को कॉपी करें और उसे रेप्लिकासेट.श में सेट करें और रेप्लिकासेट.श चलाएं

$ ./replicaset.sh

टर्मिनल पर आपको देखना चाहिए => प्रतिकृति सेट बनाया गया

$ docker-compose down

4) एन टर्मिनल $ डॉकटर-कंपोज़ अप चलाएं

अंत में ......

MongoDB में प्रतिकृति

प्रतिकृति सेट mongod का एक समूह है। उदाहरण जो समान डेटा सेट बनाए रखते हैं। एक प्रतिकृति सेट में कई डेटा असर नोड्स और वैकल्पिक रूप से एक आर्बिटर नोड होता है। डेटा असर नोड्स में से, एक और केवल एक सदस्य को प्राथमिक नोड माना जाता है, जबकि अन्य नोड्स को द्वितीयक नोड माना जाता है।
प्राथमिक नोड सभी लेखन कार्यों को प्राप्त करता है। एक प्रतिकृति सेट में केवल एक प्राथमिक सक्षम हो सकता है जो { w:"बहुमत" } चिंता लिखें; हालांकि कुछ परिस्थितियों में, एक और mongod उदाहरण क्षणिक रूप से खुद को प्राथमिक भी मान सकता है।
प्रतिकृति सेट कॉन्फ़िगरेशन देखें। rs.conf()

प्रतिकृति सेट आपको अपने MongoDB संग्रहों को वास्तविक समय सिंक्रनाइज़ेशन में Elasticsearch में अनुक्रमित करने की अनुमति देता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला:आबादी वाले क्षेत्र को आबाद करें

  2. क्या मैं mongodb के NodeJS ड्राइवर में मैन्युअल रूप से BSON प्रकार निर्दिष्ट कर सकता हूं? अगर मैं $numberLong . का उपयोग करता हूं तो मुझे त्रुटि मिल रही है

  3. ऑब्जेक्ट आईडी में कास्ट मॉडल उपयोगकर्ता के लिए पथ _id पर मान 586cc8b3ea780c071bbe2469 के लिए विफल

  4. अपने MongoDB डेटा की सुरक्षा के लिए एन्क्रिप्शन का उपयोग कैसे करें

  5. C# .Net . में MongoDB संग्रहीत जावास्क्रिप्ट फ़ंक्शन को कॉल करें