广告
返回顶部
首页 > 资讯 > 数据库 >mongodb集群搭建
  • 605
分享到

mongodb集群搭建

mongodb集群搭建 2014-09-28 05:09:38 605人浏览 无得
摘要

mongoDB集群搭建 小码农叔叔 2019-06-17 22:51:33 4086 收藏 7 分类专栏: monGodb 版权 集群方式有三种:Replica Set、Sharding、Master-Slaver三种方式 常用的主要是副

mongodb集群搭建

mongoDB集群搭建
小码农叔叔 2019-06-17 22:51:33 4086 收藏 7
分类专栏: monGodb
版权
集群方式有三种:Replica Set、Sharding、Master-Slaver三种方式

常用的主要是副本集和主从模式,主从模式比较好理解,即一个master和一个slave节点,master节点负责读写,slave在master宕机的时候可以提供读服务,当然也可以通过配置参数实现在访问量高的时候让slave节点也提供读服务;

而副本集模式比较特殊,但这种模式也是比较稳定,可靠,同时在一定的情况下能够实现自动容错的机制,它主要包括如下几部分,
在这里插入图片描述

Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点。主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。

默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务,这样就可以减少主节点的压力,当客户端进行数据查询时,请求自动转到备节点上。这个设置叫做Read Preference Modes,同时Java客户端提供了简单的配置方式,可以不必直接对数据库进行操作。

仲裁节点是一种特殊的节点,它本身并不存储数据,主要的作用是决定哪一个备节点在主节点挂掉之后提升为主节点,所以客户端不需要连接此节点。这里虽然只有一个备节点,但是仍然需要一个仲裁节点来提升备节点级别。

相信大家看到这里是不是可以联想到Redis的一种集群模式,即哨兵模式跟这个原理很像,确实如此,仲裁节点就像是一个哨兵,当监听到其它的某个节点挂了,会重新选择某个节点提升为主节点继续对外提供读写服务,从而保障集群的高可用性,减少人工干预;

下面我们在三台虚拟机上模式搭建一下mongodb的这种副本集模式的集群;

环境准备,我这里提前准备好了三台虚拟机,

192.168.111.134
192.168.9.147
192.168.111.133

上传mongodb的安装包
我这里放在 /usr/local 目录下, tar -zxvf mongodb-linux-x86_64-4.0.9.tgz
在这里插入图片描述

为使用方便,将解压后的文件命名为mongodb
mv mongodb-linux-x86_64-4.0.9 mongodb

创建相关目录

    mkdir data
    mkdir logs
    mkdir conf
    cd logs
    touch master.log
    cd conf
    touch mongodb.conf

创建配置文件
进入conf目录,创建mongodb.conf,并编辑,
在这里插入图片描述

以上是在主节点做的操作,在另外的两个节点上做同样的配置即可,只需要修改端口号和相应的目录文件地址,下面帖上配置文件,

#master配置
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/master.log
logappend=true
bind_ip=192.168.111.133
port=27017
fork=true
noprealloc=true
replSet=test

#slave配置
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/slave.log
logappend=true
bind_ip=192.168.9.147
port=27017
fork=true
noprealloc=true
replSet=test

#仲裁节点配置
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/arbite.log
logappend=true
bind_ip=192.168.111.134
port=27018
fork=true
noprealloc=true
replSet=test

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    其实里面的配置还有很多,大家可以参考相关资料完善其中的配置,这里是基本的配置保证集群能够正常启动

做完了上述的配置基本上就可以了,下面我们就来启动集群,
进入三个节点的bin目录下,执行,看到如下信息就表示启动成功了,三个节点做同样的启动操作,

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf

在这里插入图片描述
8.配置主、备、仲裁节点
#连接到节点
./mongo 192.168.111.133:27017
在这里插入图片描述
忽略启动的警告信息,没有报错就是连接上了客户端,

初始化并建立三个节点之间的信息,使用如下命令,大家修改为自己机器的IP
cfg={ _id:“test”, members:[ {_id:0,host:‘192.168.111.133:27017’,priority:2}, {_id:1,host:‘192.168.9.147:27017’,priority:1}, {_id:2,host:‘192.168.111.134:27018’,arbiterOnly:true}] };
在这里插入图片描述

可以看到,各个节点的基本信息已经展示出来了,接着执行,
rs.initiate(cfg);
在这里插入图片描述

最后,执行rs.status();查看集群的状态,

{
    "set" : "test",
    "date" : ISODate("2019-06-17T01:34:05.135Z"),
    "myState" : 2,
    "term" : NumberLong(0),
    "syncingTo" : "",
    "syncSourceHost" : "",
    "syncSourceId" : -1,
    "heartbeatIntervalMillis" : NumberLong(2000),
    "optimes" : {
        "lastCommittedOpTime" : {
            "ts" : Timestamp(0, 0),
            "t" : NumberLong(-1)
        },
        "appliedOpTime" : {
            "ts" : Timestamp(1560735223, 1),
            "t" : NumberLong(-1)
        },
        "durableOpTime" : {
            "ts" : Timestamp(1560735223, 1),
            "t" : NumberLong(-1)
        }
    },
    "lastStableCheckpointTimestamp" : Timestamp(0, 0),
    "members" : [
        {
            "_id" : 0,
            "name" : "192.168.111.133:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 169,
            "optime" : {
                "ts" : Timestamp(1560735223, 1),
                "t" : NumberLong(-1)
            },
            "optimeDate" : ISODate("2019-06-17T01:33:43Z"),
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "could not find member to sync from",
            "configVersion" : 1,
            "self" : true,
            "lastHeartbeatMessage" : ""
        },
        {
            "_id" : 1,
            "name" : "192.168.9.147:27017",
            "health" : 1,
            "state" : 0,
            "stateStr" : "STARTUP",
            "uptime" : 21,
            "optime" : {
                "ts" : Timestamp(0, 0),
                "t" : NumberLong(-1)
            },
            "optimeDurable" : {
                "ts" : Timestamp(0, 0),
                "t" : NumberLong(-1)
            },
            "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
            "optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),
            "lastHeartbeat" : ISODate("2019-06-17T01:34:04.957Z"),
            "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
            "pingMs" : NumberLong(5),
            "lastHeartbeatMessage" : "",
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "",
            "configVersion" : -2
        },
        {
            "_id" : 2,
            "name" : "192.168.111.134:27018",
            "health" : 1,
            "state" : 0,
            "stateStr" : "STARTUP",
            "uptime" : 21,
            "lastHeartbeat" : ISODate("2019-06-17T01:34:04.794Z"),
            "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
            "pingMs" : NumberLong(4),
            "lastHeartbeatMessage" : "",
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "",
            "configVersion" : -2
        }
    ],
    "ok" : 1,
    "operationTime" : Timestamp(1560735223, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1560735223, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101

各个节点的状态比如节点的健康状况,是否主节点等都可以清楚的看出来

到这里,mongodb的分片集群模式就搭建完毕,最后谢谢观看!

    点赞 1
    评论 5
    分享
————————————————
版权声明:本文为CSDN博主「小码农叔叔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhanGCongyi420/java/article/details/92738646

您可能感兴趣的文档:

--结束END--

本文标题: mongodb集群搭建

本文链接: https://www.lsjlt.com/news/7443.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mongodb集群搭建
    mongodb集群搭建 小码农叔叔 2019-06-17 22:51:33 4086 收藏 7 分类专栏: mongodb 版权 集群方式有三种:Replica Set、Sharding、Master-Slaver三种方式 常用的主要是副...
    99+
    2014-09-28
    mongodb集群搭建
  • mongodb 分片集群搭建
    环境介绍:...
    99+
    2022-10-18
  • MongoDB高可用集群搭建
    MongoDB高可用集群搭建   MongoDB副本集搭建 准备三台服务器:   10.175.120.131(主节点)   10.175.121.134(副本节点)   10.175...
    99+
    2015-11-17
    MongoDB高可用集群搭建
  • MongoDB搭建集群的方法
    小编给大家分享一下MongoDB搭建集群的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么使用集群架构?主从:故障转移:...
    99+
    2022-10-18
  • mongodb中怎么搭建shard_replica集群
    本篇文章为大家展示了mongodb中怎么搭建shard_replica集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。参考官方文档,大致步骤第一步:创建Confi...
    99+
    2022-10-18
  • mongodb分片集群怎么搭建
    要搭建一个MongoDB分片集群,您需要遵循以下步骤: 安装MongoDB:在每个节点上安装MongoDB。您可以从MongoD...
    99+
    2023-10-26
    mongodb
  • mongodb linux下集群搭建过程
    mongodb的集群结构如上图 网上有个mongo3.0的集群例子: https://www.jb51.net/article/191388.htm router提供入口,mong...
    99+
    2022-11-13
  • 搭建高可用MongoDB集群(分片)
    MongoDB基础请参考:https://blog.51cto.com/kaliarch/2044423MongoDB(replica set)请参考:https://blog.51cto.com/kali...
    99+
    2022-10-18
  • MongoDB中怎么搭建分片集群
    本篇文章为大家展示了MongoDB中怎么搭建分片集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MongoDB分片集群基本组件介绍mongos:数据库集群请求的入...
    99+
    2022-10-18
  • mongodb集群搭建的步骤是什么
    搭建MongoDB集群的步骤如下: 安装MongoDB:在每个节点上安装MongoDB并确保其正常运行。 配置MongoDB...
    99+
    2023-10-26
    mongodb
  • MongoDB搭建高可用集群的案例
    小编给大家分享一下MongoDB搭建高可用集群的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、规划好端口ip ...
    99+
    2022-10-18
  • mongodb集群搭建的方法是什么
    搭建MongoDB集群有多种方法,以下是其中一种常用的方法:1. 安装MongoDB:首先需要在每个集群节点上安装MongoDB数据...
    99+
    2023-09-06
    mongodb
  • 集群搭建
      1.  集群搭建之主从复制 MySQL主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。 1.1   主服务器的配置 1.1.1   第一步:修改my.con...
    99+
    2017-09-01
    集群搭建
  • redis集群搭建
    Redis 5.0之后版本的高可用集群搭建 Redis系统介绍: Redis的基础介绍与安装使用步骤:https://www.jianshu.com/p/2a23257af57b Redis的基础数据结构与使用:https...
    99+
    2019-03-23
    redis集群搭建
  • MHA集群搭建
    开篇 本文主要介绍如何搭建MHA集群,希望给你带来帮助 基本环境介绍 Linux:CentOS 7.4 MySQL:5.7.21+传统复制(开启GTID不搭建binlog server) VIP:192.1...
    99+
    2022-10-18
  • kafka集群搭建
     一个典型的Kafka 集群中包含若干Producer(可以是web 前端产生的Page View,或者是服务器日志,系统 CPU、Memory 等),若干broker(Kafka 支持水平扩展,一般broker 数量越多,集群吞...
    99+
    2023-01-31
    集群 kafka
  • 搭建Nacos集群
    nacos的默认端口是8848,但是他还占用了另外两个接口:9848、9849。因此,在单机配置集群时,不可使用三个连续的端口,否则会导致 gRPC端口冲突。 端口与主端口(8848)偏移量作用98481000客户端gRPC请求服务端口,用...
    99+
    2023-08-18
    java mysql 开发语言 nacos
  • nacos集群搭建
    在官方文档上面就有结束搭建nacos是介绍 官方文档提供了一个Nacos集群的架构图,当我们访问Nacos时,首先会经过SLB,也就是负载均衡,通常是一个nginx,通过nginx来进行分发到具体的Nacos服务器上面。我们需要给不同的服...
    99+
    2023-08-19
    centos linux 服务器
  • 搭建Domino群集
    搭建Domino群集浙江省电力办公自动化系统(以下简称:OA系统)是全省推广,统一软件、统一平台、统一规划与实施的一套大型应用系统。它的硬件平台采用IBM的小型机AS/400,软件采用Lotus Domino/Notes,并实施了在一台小型...
    99+
    2023-06-03
  • Hadoop集群搭建
    文章目录 一、运行环境配置(所有节点)1、基础配置2、配置Host 二、依赖软件安装(101节点)1、安装JDK2、安装Hadoop(root)3、Hadoop目录结构 三、本地运行模式(官方WordCount)1、简介...
    99+
    2023-08-30
    hadoop linux java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作