将弹性搜索与docker组合中的多个mongodb进行集成



我已经实现了一个具有多个服务器和数据库的微服务架构。我已经用docker安装了弹性搜索,当我做docker合成时,一切似乎都很好。

然而,我想将弹性搜索与系统中的几个数据库(下面的示例中有2个mongodb(集成在一起。如何使用弹性搜索同步两个不同容器中的两个mongodb,以便进行搜索?

client:
container_name: client
stdin_open: true
build:
context: ./client
dockerfile: Dockerfile
restart: always
volumes:
- './client:/app'
ports:
- '1000:3000'
environment:
- NODE_ENV=development
- CHOKIDAR_USEPOLLING=true
weatherdb:
container_name: weather-db
image: mongo
restart: always
ports:
- '2002:27017'
volumes:
- ./weather_service/weather_db:/data/db
networks:
- backend
weather-service:
container_name: weather-service
build: ./weather_service
restart: always
ports:
- "1002:3000"
depends_on:
- weatherdb
links:
- elasticsearch
networks:
- backend

newsdb:
container_name: news-db
image: mongo
restart: always
ports:
- '2003:27017'
volumes:
- ./news_service/news_db:/data/db
networks:
- backend
news-service:
container_name: news-service
build: ./news_service
restart: always
ports:
- "1003:3000"
depends_on:
- newsdb
links:
- elasticsearch
networks:
- backend
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.4.0
container_name: elasticsearch
restart: always
ports:
- 9200:9200
- 9300:9300
environment:
ES_JAVA_OPTS: '-Xms512m -Xmx512m'
network.bind_host: 0.0.0.0
network.host: 0.0.0.0
discovery.type: single-node
volumes:
-  ./elasticsearch/esdata:/usr/share/elasticsearch/data
networks:
- backend

只需在任何docker compose文件中添加一个elasticsearch docker section并启动它非常简单,所有这些都是独立的docker容器,只要它们在主机上公开的端口不会相互干扰,并且您有正确的配置,它就可以工作。

有关更多信息,请参阅使用docker文件的弹性搜索多docker安装。

注意:您没有提到您面临的确切问题,您已经提到了一切,即所有docker容器都在运行文件,所以请详细解释您试图解决的问题

最新更新