技术分享 | mlaunch-MongoDB 测试环境快速构建工具

MongoDB安装配置教程(详细版) Windows如何配置MongoDB,设置环境变量以及命令窗口启动 阅读详情

作者:余振兴

爱可生 DBA 团队成员,热衷技术分享、编写技术文档。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


目录:

  • 一、mlaunch 及 MongoDB软件安装
  • 二、mlaunch 部署副本集及运维操作
  • 三、mlaunch 部署分片集群
  • 四、mlaunch 常用部署架构命令示例
  • 五、参考链接

我们在使用和学习 MongoDB 过程中难免遇到需要部署各类架构进行功能性验证,由于不同的架构和配置,使得我们在搭建环境过程中需要花费大量时间,这里推荐使用一款可快速部署 MongoDB 测试环境各类架构的工具 mlaunch ,它是 MongoDB 一组开源工具包 mtools 中的一个(对 mtools 的其他工具有兴趣也可查看文末链接地址了解详情),可用来在测试环境快速部署不同架构的 MongoDB 服务,支持单节点、副本集以及分片集群,安装及操作均十分简单,以下给到常用场景和架构的部署示例

一、mlaunch 及 MongoDB软件安装

## 安装python3,及MongoDB服务的依赖包
shell> yum install -y python3 python3-devel net-snmp-agent-libs
  
## 安装 mlaunch 依赖包
shell> pip3 install mtools psutil pymongo
 
## MongoDB软件包安装(解压即可),MongoDB软件包自行下载,当前示例服务器下载了2个版本软件包,可以任意指定其中版本
shell> ll -ld /opt/mongodb-linux-x86_64-*
drwxr-xr-x 4 root root       148 8月  16 18:30 /opt/mongodb-linux-x86_64-enterprise-rhel70-4.0.16
-rw-r--r-- 1 root root 120608697 8月  16 18:30 /opt/mongodb-linux-x86_64-enterprise-rhel70-4.0.16.tgz
drwxr-xr-x 3 root root       100 8月  16 18:31 /opt/mongodb-linux-x86_64-rhel70-4.4.14
-rw-r--r-- 1 root root  72399766 8月  16 18:25 /opt/mongodb-linux-x86_64-rhel70-4.4.14.tgz

二、mlaunch 部署副本集及运维操作

## 初始化一个3节点的副本集
## 副本集名称为 demo_replicatset
## 起始端口为 30000
## 指定30000端口的优先级最高(优先级默认为1,主节点调整为10,值越高,优先级越高)
## 版本为 4.4.14
## 数据目录为 /data/demo_rs
shell> mlaunch init --replicaset --nodes 3 --name "demo_replicatset" --priority --port 30000 --binarypath /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin --dir /data/demo_rs
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30000
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30001
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30002
replica set 'demo_replicatset' initialized.
  
## 查看部署运行的副本集状态
shell> mlaunch list --dir /data/demo_rs/
PROCESS    PORT     STATUS     PID
mongod     30000    running    9017
mongod     30001    running    9065
mongod     30002    running    9113
  
## 登录副本集(默认无密码,可也在初始化时指定)
shell> /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongo --host=localhost:30000
demo_replicatset:PRIMARY>
  
## 停止该副本集
shell> mlaunch stop --dir /data/demo_rs/
sent signal Signals.SIGTERM to 3 processes.
  
## 重启启动该副本集
shell> mlaunch start --dir /data/demo_rs/
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30000
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30001
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30002
  
## 删除该副本集(停止后直接删除目录即可)
shell> rm /data/demo_rs/ -rf

三、mlaunch 部署分片集群

## 创建3节点的分片,每个节点只有1个主(考虑服务器配置有限)
## 配置3节点configServer
## 配置1个mongos
shell> mlaunch init --sharded 3 --nodes 1 --replicaset --config 3 --csrs --mongos 1 --priority --name "demo_shard" --port 30000 --binarypath /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin --dir /data/demo_shard
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30001
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30002
launching: "/opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongod" on port 30003
launching: config server on port 30004
launching: config server on port 30005
launching: config server on port 30006
replica set 'configRepl' initialized.
replica set 'shard01' initialized.
replica set 'shard02' initialized.
replica set 'shard03' initialized.
launching: /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongos on port 30000
adding shards. can take up to 30 seconds...
  
## 查看部署的集群架构及基本信息
[root@10-186-61-159 ~]# mlaunch list --dir /data/demo_shard/
PROCESS          PORT     STATUS     PID
mongos           30000    running    15820
config server    30004    running    15514
config server    30005    running    15567
config server    30006    running    15620
shard01
    mongod       30001    running    15377
shard02
    mongod       30002    running    15422
shard03
    mongod       30003    running    15469
  
## 登录集群
shell> /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin/mongo --host=localhost:30000
mongos>

四、mlaunch 常用部署架构命令示例

## 单节点副本集
mlaunch init \
--replicaset \
--priority \
--nodes 1 \
--name "demo_single_rs" \
--port 30000 \
--binarypath /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin \
--dir /data/demo_single_rs
  
## 副本集 PSS 架构
mlaunch init \
--replicaset \
--priority \
--nodes 3 \
--name "demo_replicatset" \
--port 30000 \
--binarypath /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin \
--dir /data/demo_rs
 
  
## 副本集 PSA 架构
mlaunch init \
--replicaset \
--priority \
--arbiter \
--nodes 3 \
--name "demo_replicatset" \
--port 30000 \
--binarypath /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin \
--dir /data/demo_rs
  
## 分片集群高可用架构
## 3节点ConfigServer 副本集
## 3节点shard分片节点 副本集
## 3节点mongos 高可用
mlaunch init \
--sharded 3 \
--nodes 3 \
--replicaset \
--config 3 \
--mongos 3 \
--csrs \
--priority \
--name "demo_shard" \
--port 30000 \
--binarypath /opt/mongodb-linux-x86_64-rhel70-4.4.14/bin \
--dir /data/demo_shard

五、参考链接

http://blog.rueckstiess.com/mtools/mlaunch.html

https://github.com/rueckstiess/mtools

MongoDB 核心技术详解 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库。这类数据库主要有这些特点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模 web 应用,这场全新的数据库革命运动早期就有人提出,发展至 2009 年趋势越发高涨。NoSQL 的拥护者们提倡运用非关系型的数据存储,通常的应用如模式自由、支持简易复制、简单的 API、最终的一致性(非ACID)、大容量数据等。 阅读详情

相关推荐

mongoDB内部分享和交流

NULL 博文链接:https://rtxbc.iteye.com/blog/864969

MongoDB内容分享(六):MongoDB 模式构建

当涉及MongoDB时,一个经常被问到的问题是“我如何在MongoDB中为我的应用程序构造模式(schema)?”老实说,这要看情况而定。你的应用程序读操作比写操作多吗?从数据库中读取时需要将哪些数据放在一起?有哪些性能因素需要考虑?文档有多大?它们今后会变成多大?你预计数据会如何增长和扩展?所有这些以及更多的问题,都涉及到如何在MongoDB中设计数据库模式(schema)。有人说MongoDB是无模式的,而实际上模式设计在MongoDB中非常重要。

之乎者也·的博客 1284

别再折腾环境了!Windows 11 + VSCode + CMake 3.31.4 + MinGW-w64 一键式配置指南(附常见报错解决)

本文提供Windows 11下VSCode、CMake 3.31.4和MinGW-w64的一键式配置指南,帮助开发者快速搭建高效C++开发环境。涵盖工具链选型、环境变量配置、项目初始化及常见报错解决方案,大幅提升开发效率。

weixin_28841265的博客 186

架构师之mongo技术点总结

总结了一下mongodb的关键技术点,以及与spring boot的集成应用,形成一个总结报告,一个是为了指导新手从哪些方面入手,另外是技术人员熟悉关键技术点,用来巩固加深印象。希望能给大家带来帮助。

分享技术应用、实践场景等,评论区开放技术难题讨论,共同成长进步。 1345

接口自动化测试如何做?测试老鸟总结,接口测试数据构造大全......

接口参数的数据获取:接口文档:接口文档通常会包含接口需要的请求参数和返回结果的格式、类型等信息;测试用例设计:根据测试用例设计的需求,可以确定需要哪些请求参数以及期望的响应结果;业务数据:从实际业务场景中获取数据,以确保测试数据的真实性和代表性;数据库:从数据库中获取数据,作为接口测试的输入参数;随机数据生成器:通过随机数据生成器生成测试数据,以增加测试用例的多样性和覆盖率。在选择数据来源时,需要根据具体情况进行选择。如果有可靠的接口文档,可以直接从文档中获取请求参数和预期结果;

798

Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评

文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检

LDZKKJ的博客 1406

十次方09、文档型数据库MongoDB

安装与启动 mongo 192.168.217.137 常用命令 以吐槽表为例讲解MongoDB常用命令 吐槽表 spit 字段名称 字段含义 字段类型 备注 _id ID 文本 content 吐槽内容 文本 publishtime 发布日期 日期 userid 发布人ID 文本 nickname 发布人昵称 文本 visits 浏览量 整...

披萨俺的辣的博客 858

uniapp(全端兼容) - 实现点击输入框时完美顶起键盘,获取键盘高度动态计算顶起距离,解决软键盘弹出时输入框被覆盖问题,uniapp微信小程序/移动端h5网页/安卓苹果app(示例代码,一键复制

uniapp,支付宝微信小程序,移动端H5网页网站,软键盘弹出位置不对,软键盘挡住了输入框怎么办,获取键盘高度计算弹出距离,uniapp如何解决输入框input激活后键盘弹出遮挡问题,uniapp输入框偶尔被键盘遮挡,解决uniapp在App环境下输入框被软键盘遮挡的问题,uniapp 完美解决苹果和安卓input框遮挡兼容问题,uniapp输入框拉起软键盘时,输入框显示不全,被软键盘挡住一半,input被键盘遮挡的解决方案,软键盘遮挡输入框,uniapp软键盘顶不起来输入框,输入框没有被软键盘弹出来怎么办

✅ 精选推荐文章 1万+

MongoDB内容分享(五):MongoDB DB核心

MongoDB在主节点上应用数据库操作,然后将这些操作记录到optlog中。然后从节点通过异步进程复制和应用(数据同步)这些操作。在local.oplog.rs集合中,所有复制集成员都包含oplog的一个副本用来维护数据库的当前状态。oplog已达到配置的最大大小oplog条目早于配置的小时数。

之乎者也·的博客 1255

A133在Android13上适配百兆以太网

NOTE] 【技术支持问题】问题背景/平台。

mangofu的博客 412

2026华为OD面试题029:勇攀数字高峰

在给定的数字地形图里寻找登山路径,数字代表当前位置的海拔高度。要求从最低海拔出发,不断攀登,最终到达最高山峰。地图保证最低海拔和最高山峰都只有一个。 登山规则: - 路径上的海拔必须严格递增 - 只能向上下左右 4 个方向移动 - 路径必须从最低海拔开始,到最高海拔结束 - 每个地点只能走一次 - 每一步的攀登高度差必须大于 0,且不超过指定值 `K` 输出满足条件的登山路径的数量。

琅嬛福地 115

mtools工具集:MongoDB日志分析与测试环境管理利器

mtools是一套专为MongoDB设计的实用工具集合,主要用于解析、过滤和可视化MongoDB日志文件(包括mongod和mongos)。这套工具由多个独立的脚本组成,每个脚本都针对特定的MongoDB运维场景进行了优化,能够显著提高数据库管理员和开发人员的工作效率。 ## mtools核心组件详解 ### 1. mlogfilter - 日志过滤专家 mlogfilter是mtools中...

gitblog_00337的博客 878

笔试题-2023-思特威-数字电路设计(CIS)【纯净题目版】

10 笔试题-2023-思特威-数字电路设计(CIS)【纯净题目版】

w0shishabi的博客 1471

mtools高级应用:7个技巧优化你的MongoDB运维工作流

MongoDB运维工作中,日志分析和测试环境搭建是两项关键但耗时的任务。mtools工具集作为专业的MongoDB运维助手,提供了强大的脚本集合来优化这些工作流程。本文将分享7个实用技巧,帮助你充分利用mtools工具集,大幅提升MongoDB运维效率。😊 ## 技巧1:快速搭建复杂测试环境 使用mlaunch工具,你可以在几分钟内创建完整的MongoDB测试环境。无论是单节点、副本集还是分

gitblog_00427的博客 418

如何在 Mac 上下载安装 Xcode——并为 iOS 开发更新它原文

下载 Xcode安装命令行工具打开新版本删除文件注意,我在下面的步骤中列出了一些终端命令。这些命令可以被输入到你现在的工作目录中。这意味着你不需要导航到任何特定的文件夹。如果你真的想这样做,你可以在输入下面的步骤中的命令之前先输入== cd==。这将使你返回到主文件夹。

专注于AI领域前沿知识,业余爱好开发软件 4666

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

技术分享| MongoDB时间序列集合

名词解释 Glossary bucket:带有相同的元数据且在一段有限制的间 隔区间内的测量值组。 bucket collection:用于存储时序型集合的底层的分组桶的系统集合。复制、分片和索引都是在桶级别上完成的。 measurement:带有特定时间序列的K-V集合。 meta-data:时序序列里很少随时间变化的K-V对,同时可以用于识别整个时序序列。 time-series:一段间隔内的一系列测量值。 time-series collection:一种表示可写的非物化的视图的集合..

MongoDB中文社区 2952

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

MongoDB技术全系列

MongoDB(1)-CentOS安装MongoDB详细操作 MongoDB(2)-MongoDB的常用操作命令 MongoDB(3)-MongoDB常用的高级查询 MongoDB(4)-MongoDB的聚合命令 MongoDB(5)-索引

redrose2100的博客 1032

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Mongo性能分析工具

mongo性能分析和优化的方式方法

weixin_42211693的博客 1877

MongoDB压力测试工具 - mongo-mload指南

MongoDB压力测试工具 - mongo-mload指南 项目介绍 mongo-mload 是一个专为MongoDB设计的强大数据加载及压力测试工具,采用Go语言编写。此工具旨在简化大数据量测试和数据库初始化的过程,特别是在开发与测试环境中,提供了一套快速、灵活的数据导入解决方案。通过其高效的并发处理机制和多种数据格式的支持,mongo-mload使得大数据导入任务变得既快捷又简便。 项目快速启...

gitblog_00364的博客 920

使用 mlaunch 快速创建 MongoDB 副本集或分片集群环境

mlaunch 是一个用于在本地计算机上快速初始化并启动复杂 MongoDB 测试环境(具有任意节点数的副本集或分片集群)的实用程序,通过...

JiaWen的博客 405

mongodb数据库使用分享

非关系型数据库的一系列统称,常见的比如redis,mongodb,neo4j;mongodb 以文档的形式存储数据,数据表现形式和JSON类似,MongoDB里面叫BSON,BSON会支持一些JSON不支持的数据格式,如Date,BinData。springboot集成了mongodb驱动,客户端,只需要在pom文件中导入jar包,配置连接信息,利用spring的自动装配原理,管理连接。如果项目的数据模式是固定的,而且不需要频繁变更,推荐使用 MySQL,因此项目维护容易,而且确保了数据的完整性和可靠性。

我是香菜 812

基于mongoDB创建副本集与分片集群

10分钟教你完成基于mongodb的副本集与分片集群的搭建

qq_51473213的博客 724

MongoDB-从0到1-性能测试

这里推荐一款测试工具:YCSB(Yahoo! Cloud Serving Benchmark)是一个开源的基准测试工具,广泛用于评估各种 NoSQL 数据库的性能,包括 MongoDB

MZZHAO23的博客 1422

MongoDB 5.x的压力测试一共有哪些?使用场景是什么?底层原理是什么?

压力测试是评估数据库在高负载下的性能和稳定性的关键步骤。MongoDB 5.x 提供了多种工具和方法来进行压力测试,帮助开发者和运维人员确保数据库在生产环境中的可靠性和性能。通过这些压力测试工具和方法,MongoDB 5.x 可以在多种场景下高效地评估和优化数据库性能,确保在生产环境中的可靠性和稳定性。

长风破浪会有时的博客 1180

mongodb压力测试

mongodb压力测试

change_can的博客 1750

mongodb实战分享

mongodb实战分享前言首先介绍下什么是mongodb2018年由StackOverflow开发者调查发布MongoDB的文档结构模型MongoDB的应用场景不适用的场景MongoDB的安装配置linux下操作MongoDB的命令管理MongoDB使用java操作MongoDBMysql转入MongoDBMongoDB存储引擎mongodb数据会丢失?你需要了解WT写入的原理mongodb配置文...

beyond的博客 8984
上一篇: 技术分享 | my2sql 与 binlog2sql 解析效率 battle
下一篇: 分布式 | 从 dble 日志分析到 MySQL 源码学习
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值