MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB 4.x Sinkronisasi Waktu Nyata ke ElasticSearch 6.x +

jika Anda bekerja dengan buruh pelabuhan, Anda bisa mendapatkan tutorial ini

https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb

Monstache adalah daemon sinkronisasi yang ditulis dalam Go yang terus mengindeks koleksi MongoDB Anda ke dalam Elasticsearch. Monstache memberi Anda kemampuan untuk menggunakan Elasticsearch untuk melakukan pencarian kompleks dan agregasi data MongoDB Anda dan dengan mudah membangun visualisasi dan dasbor Kibana waktu nyata. dokumentasi untuk Monstache :
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

replicaset.sh

#!/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) jalankan perintah ini di terminal$ sysctl -w vm.max_map_count=262144

jika Anda bekerja di server saya tidak tahu apakah perlu

2)jalankan en terminaldocker-compose build

3) jalankan en terminal$ docker-compose up -d

jangan turunkan wadahmu.

$ buruh pelabuhan ps

salin alamat Ipad dari gambar mongo db

$ buruh pelabuhan memeriksa id_of_mongo_image

salin IPAddress dan atur di replicaset.sh dan jalankan replicaset.sh

$ ./replicaset.sh

di terminal Anda akan melihat => set replika dibuat

$ docker-compose down

4)jalankan en terminal$ docker-compose up

akhirnya .......

Replikasi di MongoDB

Kumpulan replika adalah grup mongod instance yang mempertahankan kumpulan data yang sama. Sebuah set replika berisi beberapa node bantalan data dan opsional satu node arbiter. Dari node bantalan data, satu dan hanya satu anggota yang dianggap sebagai node utama, sedangkan node lainnya dianggap sebagai node sekunder.
The simpul utama menerima semua operasi tulis. Kumpulan replika hanya dapat memiliki satu primer yang mampu mengonfirmasi penulisan dengan { w:"mayoritas" } menulis keprihatinan; meskipun dalam beberapa keadaan, instance mongod lain mungkin secara sementara percaya bahwa dirinya juga menjadi yang utama.
Lihat konfigurasi set replika.Gunakan rs.conf()

set replika memungkinkan Anda untuk mengindeks koleksi MongoDB Anda ke dalam Elasticsearch dalam sinkronisasi waktu nyata.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kunci Asing Validasi Mongoose (ref)

  2. Kembalikan hasil sebagai Array Nilai Saja

  3. MongoDB-Escape dot '.' di kunci peta]

  4. MongoDB menggabungkan data di dalam array objek

  5. Bagaimana cara menemukan objek yang propertinya foo atau bar sama dengan nilai kueri?