MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB 4.x Real Time Sync to ElasticSearch 6.x +

nếu bạn làm việc với docker, bạn có thể xem hướng dẫn này

https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb

Monstache là một trình nền đồng bộ được viết bằng Go liên tục lập chỉ mục các bộ sưu tập MongoDB của bạn vào Elasticsearch. Monstache cung cấp cho bạn khả năng sử dụng Elasticsearch để thực hiện các tìm kiếm phức tạp và tổng hợp dữ liệu MongoDB của bạn, đồng thời dễ dàng xây dựng các hình ảnh trực quan và bảng điều khiển Kibana theo thời gian thực cho Monstache:
https://rwynn.github.io/monstache-site/
github:
https://github.com/rwynn/monstache

docker-compos.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) chạy lệnh này trên terminal $ sysctl -w vm.max_map_count =262144

nếu bạn làm việc trên một máy chủ, tôi không biết có cần thiết không

2) chạy bản dựng en terminaldocker-soạn

3) chạy trên đường dẫn đầu cuối $ docker-compile up -d

không xuống thùng chứa của bạn.

$ docker ps

sao chép Ipadress của mongo db image

$ docker kiểm tra id_of_mongo_image

sao chép Địa chỉ IP và đặt nó trong replicaset.sh và chạy replicaset.sh

$ ./replicaset.sh

trên thiết bị đầu cuối bạn shoulf thấy => bộ bản sao đã được tạo

$ docker-compile down

4) chạy trên đường dẫn đầu cuối $ docker-compile up

cuối cùng .......

Sao chép trong MongoDB

Nhóm bản sao là một nhóm mongod các trường hợp duy trì cùng một tập dữ liệu. Một tập hợp bản sao chứa một số nút mang dữ liệu và tùy chọn một nút trọng tài. Trong số các nút mang dữ liệu, một và chỉ một thành viên được coi là nút chính, trong khi các nút khác được coi là nút phụ.
nút chính nhận tất cả các hoạt động ghi. Một tập hợp bản sao chỉ có thể có một chính có khả năng xác nhận việc ghi bằng {w:" đa số "} viết mối quan tâm; mặc dù trong một số trường hợp, một bản sao mongod khác có thể tạm thời tin rằng bản thân nó cũng là bản chính.
Xem cấu hình bộ bản sao. Sử dụng rs.conf ()

bộ bản sao cho phép bạn lập chỉ mục các bộ sưu tập MongoDB của mình vào Elasticsearch trong đồng bộ hóa thời gian thực.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. chiến lược chỉ mục mongodb cho truy vấn phạm vi với các trường khác nhau

  2. mongodb tổng hợp php

  3. MongoDB Atlas lỗi:giản đồ không hợp lệ, mongodb mong đợi

  4. Trello lưu trữ dữ liệu trong MongoDB như thế nào? (Bộ sưu tập mỗi bảng?)

  5. Cập nhật Mongo bên trong một mảng lồng nhau kép