【问题记录】Docker配置mongodb副本集实现数据流实时获取

news/2024/8/26 16:43:10 标签: mongodb, 数据库

配置mongodb副本集实现数据流实时获取

  • 前言
  • 操作步骤
    • 1. docker拉取mongodb镜像
    • 2. 连接mongo1镜像的mongosh
    • 3. 在mongosh中初始化副本集
  • 注意点

前言

由于想用nodejs实现实时获取Mongodb数据流,但是报错显示需要有副本集的mongodb才能实现实时获取信息流,因此特此进行副本集的配置。另外由于笔者使用的是Windows开发,虚拟机上面的Ubuntu20.04的apt源又被整坏了,因此只能寻求通过docker来实现副本集的部署。

操作步骤

首先默认已经安装过docker desktop,没有安装过的可以参考这篇博客

mongodb_5">1. docker拉取mongodb镜像

!注:一定要给镜像分配数据卷,要不然就会在启动的时候启动到一半停下来中止。
首先创建一个文件名为docker-compose.yml的文件,内容如下:

version: '3.8'
services:
  mongo1:
    image: mongo:latest
    container_name: mongo1
    ports:
      - 27017:27017
    volumes:
      - mongo1_data:/data/db
    command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]

  mongo2:
    image: mongo:latest
    container_name: mongo2
    ports:
      - 27018:27017
    volumes:
      - mongo2_data:/data/db
    command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]

  mongo3:
    image: mongo:latest
    container_name: mongo3
    ports:
      - 27019:27017
    volumes:
      - mongo3_data:/data/db
    command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]

volumes:
  mongo1_data:
  mongo2_data:
  mongo3_data:

然后执行下面的命令生成镜像并启动容器:

docker-compose up -d

2. 连接mongo1镜像的mongosh

docker exec -it mongo1 mongo

在这里插入图片描述

3. 在mongosh中初始化副本集

在mongosh中输入如下命令:

rs.initiate(
  {
    _id: "rs0",
    members: [
      { _id: 0, host: "mongo1:27017" },
      { _id: 1, host: "mongo2:27017" },
      { _id: 2, host: "mongo3:27017" }
    ]
  }
)

输出:
在这里插入图片描述
连接成功以后打开Docker Desktop就能看到连接成功以后的mongodb副本集了。
在这里插入图片描述
用Mongo Campass连接上mongodb以后就可以看到副本集配置成功了!嘿嘿嘿
在这里插入图片描述

注意点

详细步骤可以借鉴这篇文章
在这里插入图片描述
注!:操作副本集如果想以PRIMARY模式需要在进入副本集以后再按一下回车。

另外注意在添加用户的时候要在admin用户下进行,详细步骤如下:
在这里插入图片描述
看到验证消息输出1证明验证成功!


http://www.niftyadmin.cn/n/5558395.html

相关文章

构建LangChain应用程序的示例代码:66、如何使用LangChain实现程序辅助语言模型(PAL)

程序辅助语言模型(PAL)链 实现程序辅助语言模型,如https://arxiv.org/pdf/2211.10435.pdf所述。 from langchain_experimental.pal_chain import PALChain from langchain_openai import OpenAI# 创建OpenAI语言模型实例,设置温度为0,最大令牌数为512 llm OpenAI(temperatur…

Linux基础 -- 运行安全之ASLR的作用与实现方式

Linux ARM ASLR 的作用与实现方式 简介 ASLR(Address Space Layout Randomization,地址空间布局随机化)是一种安全技术,用于防止攻击者通过利用已知的内存地址来进行攻击。它通过随机化进程的内存地址空间布局,使得内…

Windows系统中MySQL的安装和卸载(详细包含msi和zip下载方式,以及完全卸载方法,易出现问题及解决方案等)

MySQL的安装: 第一种:msi安装(交简单,但是不能自定义安装路径) 下载地址:https://dev.mysql.com/downloads/installer/ 选择历史版本 选择安装版本,这里我选择的是8.0.37的版本,然后点击Download下载离线安装包 如下图即为下载好的版本,双击打开安装 出现如下情况,…

ajax实时监测与springboot的实例分析

实现动态监测输入框变化并即时反馈的AJAX与Spring Boot示例 本文将介绍如何使用 AJAX 技术结合 Spring Boot 构建一个实时反馈用户输入的应用。我们将创建一个简单的输入框,当用户在输入框中键入文本时,应用将异步地向后端发送请求,后端处理…

Guava LocalCache源码分析:LocalCache的get、put、expand、refresh、remove、clear、cleanUp

Guava LocalCache源码分析:LocalCache的get、put、expand 前言一、get二、put三、expand 前言 上篇文章,详细描写了Guava LocalCache怎样如ConcurrentHashMap对缓存数据进行了分段存储。本章主要针对LocalCache重要的几个接口进行说明。 一、get CanIg…

Java学习|JSON 处理库:Gson、FastJson、Jackson的比较与使用指南

文章目录 一、Gson简介与使用注意事项1.1 简介1.2 使用注意事项1.3 代码示例序列化反序列化 二、FastJson简介与使用注意事项2.1 简介2.2 使用注意事项2.3 代码示例序列化反序列化 三、Jackson简介与使用注意事项3.1 简介3.2 使用注意事项3.3 代码示例序列化反序列化 四、关联和…

求立方体面积体积以及判断(c++)

代码&#xff1a; #include<iostream> using namespace std;class Cube { public:void setL(int l){m_L l;}int getL(){return m_L;}void setW(int w){m_W w;}int getW(){return m_W;}void setH(int h){m_H h;}int getH(){return m_H;}int calculateS(){return 2 * (…

SPIQA:一个大规模的计算机科学论文多模态问题回答数据集

在科学论文中挖掘相关信息是一个至关重要的研究领域&#xff0c;因为它能够赋予学生和研究人员高效解决他们在读到科学论文时自然引发的问题的能力。然而&#xff0c;现有基于学术论文的问题回答数据集在规模上受到限制&#xff0c;并且主要分析的是科学文章论文的摘要、结论和…