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

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

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

前言

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

操作步骤

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

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证明验证成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/800988.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构(Java):队列Queue集合力扣面试OJ题

1、队列 1.1 队列的概念 队列是一个特殊的线性表,只允许在一端(队尾)进行插入数据操作,在另一端(对头)进行删除数据。队列具有先进先出FIFO(First In First Out)的特性。 入队:数据只能从队尾…

【密码学】密码学数学基础:群的定义

一、群的定义 在密码学中,群(Group)的概念是从抽象代数借用来的,它是一种数学结构,通常用于描述具有特定性质的运算集合。 群的定义 群定义中的几个关键要素: 集合:首先,群是由一系…

ES快速开发,ElasticsearchRestTemplate基本使用以及ELK快速部署

最近博主有一些elasticsearch的工作,所以更新的慢了些,现在就教大家快速入门,并对一些基本的查询、更新需求做一下示例,废话不多说开始: 1. ES快速上手 es下载:[https://elasticsearch.cn/download/]()这…

以数据编织,重构数据管理新范式

大数据产业创新服务媒体 ——聚焦数据 改变商业 人工智能几乎统一了全球最顶尖科技公司的认知:这个时代,除了AI,没有第二条路可走。 人工智能的技术逻辑颇有一种“暴力美学”,它依托于海量大数据和超高算力的训练和推理&#xff…

PE73_E6_BLE

PE73_E6_BLE 产品参数 产品型号 PE73_E6_BLE 尺寸(mm) 180*130*13mm 显示技术 电子墨水屏 显示区域(mm) 163.2(H) * 97.92(V) 分辨率(像素) 800*480 像素尺寸(mm) 0.204*0.204 显示颜色 黑/白/红/黄/橙/蓝/绿 视觉角度 180 工作温度 0-50℃ …

使用自制Qt工具配合mitmproxy进行网络调试

在软件开发和网络调试过程中,抓包工具是不可或缺的。传统的抓包工具如Fiddler或Charles Proxy通常需要设置系统代理,这会抓到其他应用程序的网络连接,需要设置繁琐的过滤,导致不必要的干扰。为了解决这个问题,我们可以…

调用第三方API超时如何区分是连接超时还是响应超时

在Java中调用第三方接口时,遇到超时问题通常涉及两种类型的超时:连接超时(Connect Timeout)和响应超时(Read TimeOut) 要查看是对方响应超时还是自己方连接超时,可以通过设置Java的HttpClient的超时时间和捕获异常来判断。以下是一个示例&…

灌区流量监测设备:农田灌溉的“智慧眼”

随着现代农业的不断发展,对灌溉技术的要求也越来越高。传统的灌溉方式不仅效率低下,而且容易造成水资源的浪费。如今,灌区流量监测设备以其独特的优势,成为农田灌溉的新宠,被誉为农田的“智慧眼”。 精准把控&#xff…

Java 实验五:继承与接口

一、实验目的 1、通过实验内容,锻炼自身进行需求分析,系统设计以及编程开发的能力,了解软件开发的流程。 二、实验环境 Jdk 1.8; Eclipse 三、实验内容 试分析停车场系统的常用业务功能,梳理出基本需求&#xff0…

优阅达线上分享:快速上手 Tableau 计算功能

无论是想获取更深入的业务洞察,还是希望实现更复杂的数据图表,Tableau 计算都能助你实现需求。然而,对于没有数学或统计经验的用户来说,快速理解并掌握 Tableau 计算功能的逻辑和用法并非易事。 如果你刚接触 Tableau 计算不知从…

把ros消息转换成中文输出

把ros消息转换成中文输出 c实现 发布 //发布性能评估数据 /trilateration_time_log void publishTrilaterationLog(const int reflectorPanelPoints_size,const double duration_count,const std::string& resultType,const std::string& resultChineseMessage,cons…

python基础知识点(蓝桥杯python科目个人复习计划69)

做些基础题 第一题:微生物增值 题目描述: 假设有两种微生物x和y。 x出生后每隔3分钟分裂一次(数目加倍),y出生后每隔2分钟分裂一次(数目加倍)。 一个新出生的x,半分钟之后吃掉一…

Git常用命令以及使用IDEA集成Gitee

目录 一、设置用户签名 二、初始化本地库 三、查看本地库状态 四、添加文件到暂存区 五、提交本地库 六、修改文件 七、版本穿梭 八、Git分支 九、分支的操作 9.1、查看分支 9.2、创建分支 9.3、切换分支 9.4、合并分支 十、团队协作 十一、Idea集成Git 11.1、配…

初识C++|类与对象(上)

🍬 mooridy-CSDN博客 🧁C专栏(更新中!) 1. 类的定义 1.1 类定义格式 • class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。 类体中内容…

【Web服务与Web应用开发】【C#】VS2019 创建ASP.NET Web应用程序,以使用WCF服务

目录 0.简介 1.环境 2.知识点 3.详细过程 1)创建空项目 2)添加Web表单 3)使用Web表单的GUI设计 4)添加服务引用 5)在Web的button函数中调用服务,获取PI值 6)测试 0.简介 本文属于一个…

如何直接套用模板,快速搭建一个3D展示页面?

随着Web3D技术的飞速进步,网页设计实现了从平面二维到立体三维的华丽蜕变,这一变革为品牌营销领域注入了前所未有的互动活力。多样化的3D营销手段,不仅极大地吸引了消费者的目光,还显著提升了品牌形象与销售量,助力企业…

各类专业技术的pdf电子书

从业多年,收集了海量的pdf电子书籍,感兴趣的私聊。

探索智慧校园德育系统的学生考核之道

在当代教育领域,智慧校园德育管理系统的学生考核功能正逐渐成为推动学生全面发展的重要引擎。它不仅革新了传统德育评价的方式,还深度融入了学生日常的学习生活,成为连接学生、教师与学校管理层之间沟通与理解的桥梁。德育考核功能的核心在于…

Excel办公技巧:制作二级联动下拉菜单

分享制作二级联动下拉菜单的方法,即使数据有增删,菜单也能自动更新! 可以通过先定义名称,再结合数据验证,来做二级联动下拉菜单。 1. 准备数据 首先,我们需要准备好要进行二级联动下拉菜单的数据&#xff…

【大模型入门】LLM-AI大模型介绍

大语言模型 (LLM) 背景 🍹大语言模型 (Large Language Model) 是一种人工智能模型, 它们通常包含数千亿甚至更多的参数,并在大规模数据集上进行训练。大语言模型可以处理多种自然语言任务,如文本分类、问答、翻译、对话等等。 自然语言模型…