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 ()