轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

这篇具有很好参考价值的文章主要介绍了轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

在前两章节中,我们详细讲解了如何手动配置启动MongoDB。然而,现在有许多不同的工具可以帮助我们更方便地启动和创建MongoDB数据库。因此,今天我将介绍一个名为mtools的开源项目,它可以帮助我们更轻松地启动MongoDB。

mtools介绍

官方文档地址:mtools

mtools是一个基于Python实现的MongoDB工具集,旨在提供一系列功能,包括MongoDB日志分析、报表生成以及简易的数据库安装等。该工具集由MongoDB原生的工程师单独发起并进行开源维护,目前已经吸引了大量的用户。

mtools包含了一些常用的组件,下面是其中一些组件的介绍:

  • mlaunch:这个组件能够快速搭建本地测试环境,无论是单机、副本集还是分片集群,都可以轻松实现。
  • mlogfilter:这个组件用于对MongoDB日志进行过滤,支持按时间检索慢查询和全表扫描操作,同时还支持通过多个属性进行信息过滤,并可以将结果输出为JSON格式。
  • mplotqueries:这个组件能够将日志分析结果转换为图表形式,它依赖于tkinter(Python图形模块)和matplotlib模块,可以方便地进行数据可视化。
  • mlogvis:这个组件可以将日志分析结果转换为一个独立的HTML页面,实现了与mplotqueries相同的功能。
Tools Description
mlogfilter 合并、分割日志文件,过滤慢查询,集合扫描,格式转换等
mloginfo 统计日志内的数据库信息(启停、连接、集群状态等)
mplotqueries 日志转化为图表形式
mlogvis 日志转化为HTML页面,与mplotqueries类似
mlaunch 快速搭建本地测试环境(单机、集群、分片)

安装mtools

环境准备

为了使用mtools,您需要确保在Path路径中包含MongoDB的二进制程序所在的目录{MONGODB_HOME}/bin。此外,还需要安装Python环境,并选择安装Python 3.7、3.8或3.9版本。如果您正在Centos7上进行安装,可以安装Python 3.9。

pip安装

安装依赖

pip3 install python-dateutil
pip3 install psutil pymongo 

轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

安装mtools

pip3 install mtools

通过源码安装

源码地址:https://github.com/rueckstiess/mtools/releases/tag/v1.6.4

wget https://github.com/rueckstiess/mtools/archive/refs/tags/v1.6.4.tar.gz
#解压后进入mtools
python setup.py install

使用mtools创建复制集

#准备复制集使用的工作目录
mkdir -p /data/mongo
cd /data/mongo
#初始化3节点复制集
mlaunch init --replicaset --nodes 3

端口默认从27017开始,依次为2017,27018,27019

轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

查看当前复制集状态

 mongo --port 27017
 replset:PRIMARY> rs.status()

使用mtools创建分片集群

#准备分片集群使用的工作目录
mkdir /data/mongo-cluster
cd /data/mongo-cluster/

#执行mlaunch init初始化集群

mlaunch init --sharded 2 --replicaset --node 3 --config 3 --csrs --mongos 3 --port 27050 

选项说明

  • sharded 2:启用分片集群模式,分片数为2。
  • replicaset --nodes 3:采用3节点的复制集架构,即每个分片为一致的复制集模式。
  • config 3 --csrs:配置服务器采用3节点的复制集架构模式,--csrs是指Config Server as a Replica Set
  • mongos 3:启动3个mongos实例进程。
  • port 27050:集群将以27050作为起始端口,集群中的各个实例的端口号基于该值递增。
  • noauth:不启用鉴权功能。
  • arbiter:向复制集中添加一个额外的仲裁器。
  • single:创建单个独立节点。
  • dir:指定数据目录,默认为./data。
  • binarypath:如果环境中已经存在MongoDB的二进制文件,则不需要指定该选项。

如果安装成功,稍等片刻后,你将会看到以下输出:

轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

检查分片实例

mlaunch list命令可以对当前集群的实例状态进行检查

轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

此时您可以通过查看各个实例的运行状态来获取更多信息,包括每个实例的进程号和监听的端口等。

#显示标签
mlaunch  list --tags 

#显示启动命令
mlaunch  list --startup

连接mongos,查看分片实例的情况

mongo --port 27050
mongos> db.adminCommand({listShards:1})

轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

停止、启动

如果希望停止集群,则可以使用mlaunch stop命令

轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

想要再次启动集群,可以使用mlaunch start命令

轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

使用mtools搭建测试集群是一个非常方便且高效的方式。相比手工搭建,它能够大大减少时间和精力的投入。通过mtools,您可以快速创建一个测试环境,而不需要手动安装和配置各种软件和组件。

总结

mtools是一个基于Python实现的MongoDB工具集,旨在提供一系列功能,包括MongoDB日志分析、报表生成以及简易的数据库安装等。它由MongoDB原生的工程师单独发起并进行开源维护。mtools包含了一些常用的组件,如mlaunch、mlogfilter、mplotqueries和mlogvis等,可以帮助我们更方便地启动和创建MongoDB数据库。而不需要手动安装和配置各种软件和组件。文章来源地址https://www.toymoban.com/news/detail-710849.html

到了这里,关于轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法通关村番外篇-跳表

    大家好我是苏麟 , 今天来聊聊调表 . 跳表很少很少实现所以我们只了解就可以了 .  链表在查找元素的时候,因为需要逐一查找,所以查询效率非常低,时间复杂度是O(N),于是就出现了跳表。 跳表是在链表基础上改进过来的,实现了一种「多层」的有序链表 ,这样的好处是

    2024年02月01日
    浏览(28)
  • Unity 事件番外篇:UnityEvent

    前置知识: C#委托 C#事件 简要概括:使用 UnityEvent 可以在编辑器的 Inspector 面板中为事件绑定事件触发函数。 下文将会着重介绍一些细节。 之前在介绍委托的时候有提到 UntiyAction,它是 Unity 对 C# Action 委托的一个封装。而本文将要介绍的 UnityEvent,则是对 C# 事件的一个封装

    2024年02月09日
    浏览(26)
  • 番外篇-区块链基础知识入门

    今天聊聊番外篇之Web3、区块链的基础知识~ Hash算法 将输入的数据映射为一个固定长度的字符串 字符串是64长度,16进制(2^4),4 * 64 = 256 【SHA256】hash演示:https://andersbrownworth.com/blockchain/hash 区块 记录数据的一个section 问题:“挖矿”是在做什么(计算随机数是多少) 演示:

    2024年02月02日
    浏览(35)
  • 【flink番外篇】12、ParameterTool使用示例

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年01月18日
    浏览(47)
  • 番外篇 萌新版开发交付一条龙(☆▽☆)

    学习了一段时间的django和vue,对于前后端开发有了一个初步的了解,这里记录一下编写的流程和思路,主要是为了后面如果遗忘从哪里开始操作做一个起步引导作用 参考下前面django的文档https://moziang.blog.csdn.net/article/details/130720709 1、安装django环境 目录结构 2、项目添加应用模

    2024年02月21日
    浏览(29)
  • C++番外篇之动态爱心代码

    前言:今天我们给大家介绍一个有趣的代码,那就是爱心代码,前提是这段代码要先下载一个东西,就是有关C++头文件的,这段代码各位看看就好,当个乐子,因为涉及的代码知识很多。如果大家有兴趣研究的,可以把整段代码看一看。 下面直接先展现代码了: 这里是运行

    2024年02月05日
    浏览(30)
  • Cartographer源码阅读---番外篇: Submap封装与维护

    Cartographer中Submap(子图)没有被直接的调用进行维护, 而是针对2D和3D场景分别派生出子类Submap2D和Submap3D, 进行调用. 以2D为例, 为了方便维护, 又把Submap2D封装成了ActiveSubmaps2D进行维护, 其维护方式类似与滑窗, 也是只维护最近的一些数据. 从私有变量可以看到, Submap维护了三个东西

    2024年02月05日
    浏览(28)
  • 【flink番外篇】13、Broadcast State 模式示例(完整版)

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年01月17日
    浏览(44)
  • 【flink番外篇】16、DataStream 和 Table 相互转换示例

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年01月17日
    浏览(50)
  • 【Unity】Avatar与AvatarMask系统介绍(TPS.番外篇)

    这次也是拖了蛮久,一个是在修动画,一个是别的游戏确实比较能吸引住人。 在主要系列进行前,要先为接下来要讲的动画做一些基础知识的补充,这期是Avatar,即替身系统,以及AvatarMask的讲解。 对于动画,我的了解比较基础,大家可以去看这位的系列《动画入门》。 在这

    2024年02月09日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包