mongodb集群方案:Replica Set集群的安装配置

来源:互联网 发布:软件安装包备份 编辑:程序博客网 时间:2024/06/06 07:52

概述

MongoDB的环境主要包括StandAlone,Replication和Sharding。

    1. StandAlone:单机环境,一般开发测试的时候用。
    1. Replication:主从结构,一个Primary,多个Secondary,可能会有Arbitry。
      • Primary挂掉之后,会选举出一个Secondary作为Primary,与zookeeper类似。
      • Arbitry上面不存数据,只是为了凑数。选举算法要求节点数必须是奇数个,如果Primary+Secondary不是奇数个,就要用Arbitry凑数。
      • 写数据只能在Primary,读数据默认也在Primary,可以配置成从Secondary读,可以选最近的节点。
      • 数据在Primary上写成功之后,会将操作记录在oplog中,Secondary将oplog拷贝过去,然后照着操作一遍,就有数据了。
      • Primary和Secondary上面的数据保证最终一致性,可以为写操作配置write concern,有几个级别:在Primary上写完就认为写成功;写到oplog后认为写成功;写到一个/多个/某个/某几个Secondary之后认为写成功,等等。
    1. Sharding:share nothing的结构,每台机器只存一部分数据。mongod服务器存数据,mongos服务器负责路由读写请求,元数据存在config数据库中。
      因为数据量和机器量的原因,项目最终用了一个Primary,一个Secondary,一个Arbitry。我自己的开发环境是Ubuntu,测试环境是CentOS。安装的是64位的MongoDB。

下载、解压

  • 下载mongodb-linux-x86_64-rhel62-3.4.10.tgz.gz
  • 解压:
#解压命令tar -xzvf mongodb-linux-x86_64-rhel62-3.4.10.tgz.gz

创建并编辑配置文件

  • 进行mongodb的根据目录
  • 创建mongod.conf的配置文件,内容如下:
#mongod.conf路径为:mongodb解压目录/mongod.confnet:  #bindIp: 127.0.0.1  port: 27017systemLog:  destination: file  path: /app/mongodata/log/mongo.log  logAppend: truestorage:  dbPath: /app/mongodata/dataprocessManagement:  fork: true#security:#  authorization: enabledreplication:   oplogSizeMB: 1024   replSetName: rs-test

另外三台也按些配置,然后分别启动

#启动命令mongod -f mongod.conf

初始化集群

# 1、选择一台mongodb的服务,通过bin/mongo 命令进行控制台bin/mongo# 2、切换到 admin库use admin# 3、定义初始化配置config={"_id" : "rs-test", "members" : [ { "_id" : 0, "host" : "mongodb-node1:27017" }, { "_id" : 1, "host" : "mongodb-node2:27017" }, { "_id" : 2, "host" : "mongodb-node3:27017" } ]}# 4、进行初始化rs.initiate(config);
原创粉丝点击