Mongo Replica Set集群搭建详解

Mongo Replica Set集群介绍:

 

 

Replica Set使用的是n个mongod节点,构建具备自动的容错功能(auto-failover),自动恢复的(auto-recovery)的高可用方案。 如上图,Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点。主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。
 默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可指定读策略(本文PHP连接Mongo实例),减少主节点读压力。

Mongo Replica Set集群搭建:

(1)建立数据库文件夹、日志文件夹

mkdir /data/mongo_cluster/{master,slave,arbiter} -p

mkdir /data/mongo_cluster/master/logs

mkdir /data/mongo_cluster/slave/logs

mkdir /data/mongo_cluster/arbiter/logs

(2)建立配置文件

#master配置 /data/mongo_cluster/master/master.conf

dbpath=/data/mongo_cluster/master

logpath=/data/mongo_cluster/master/logs/master.log

pidfilepath=/data/mongo_cluster/master/master.pid

logappend=true          

replSet=rep1

bind_ip=192.168.15.130

port=10000

fork=true

journal=true

 

#slave配置 data/mongo_cluster/slave/slave.conf

dbpath=/data/mongo_cluster/slave

logpath=/data/mongo_cluster/slave/logs/slave.log

pidfilepath=/data/mongo_cluster/slave/slave.pid

logappend=true

replSet=rep1

bind_ip=192.168.15.130

port=10001

fork=true

journal=true

 

#arbiter配置  /data/mongo_cluster/arbiter/arbiter.conf

dbpath=/data/mongo_cluster/arbiter

logpath=/data/mongo_cluster/arbiter/logs/arbiter.log

pidfilepath=/data/mongo_cluster/arbiter/arbiter.pid

logappend=true

replSet=rep1

bind_ip=192.168.15.130

port=10002

fork=true

journal=true

配置参数说明:

dbpath:数据存放目录
logpath:日志存放路径
logappend:以追加的方式记录日志
pidfilepath:进程文件,方便停止
mongodb replSet:replica set的名字
bind_ip: 绑定服务ip
port:mongodb进程所使用的端口号,默认为27017
fork:以后台方式运行进程
journal:写日志
smallfiles:使用较小的默认文件

(3)启动mongodb集群

/usr/local/mongodb3.0.5/bin/mongod -f /data/mongo_cluster/master/master.conf
/usr/local/mongodb3.0.5/bin/mongod -f /data/mongo_cluster/slave/slave.conf
/usr/local/mongodb3.0.5/bin/mongod -f /data/mongo_cluster/arbiter/arbiter.conf

(4)配置主、备、仲裁节点

/usr/local/mongodb3.0.5/bin/mongo 192.168.15.130:10000 #登陆master执行下面命令

use admin

cfg={ _id:"rep1", members:[ {_id:0,host:'192.168.15.130:10000',priority:2}, {_id:1,host:'192.168.15.130:10001',priority:1},{_id:2,host:'192.168.15.130:10002',arbiterOnly:true}] };

rs.initiate(cfg)

(5)查看集群配置及状态

rs.status()查看集群状态
rs.rs.conf()查看集群配置信息

PHP客户端连接测试:

$options = array(

    //指定读策略 
http://php.net/manual/zh/mongo.readpreferences.php

    'readPreference' => MongoClient::RP_SECONDARY_PREFERRED,

    'replicaSet' => 'rep1'

);

 

$mongo = new MongoClient("mongodb://192.168.15.130:10000, 192.168.15.130:10001", $options);

$rs = $mongo->selectDB("test")->getCollectionNames();

var_dump($rs);

 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志
, 文件
, 数据
, 集群
, 进程
配置
mongo集群搭建、mysql 集群搭建详解、kafka集群搭建 详解、mongo replica set、mongo replicaset,以便于您获取更多的相关知识。

时间: 2024-09-17 23:16:11

Mongo Replica Set集群搭建详解的相关文章

Hadoop 三台主机 集群搭建 详解(测试)

Hadoop 三台主机 集群搭建 详解 学习更多,请访问系列文章: 1. VMware Redhat网络配置 2. Hadoop 三台主机 集群搭建 详解 3. Windows 下配置 Eclipse 连接 Hadoop 开发环境 部署环境: OS:Redhat 5.5 Enterprise JDK:jdk1.6.0_32 Hadoop:Hadoop-0.20.2 VMWare:7.0 节点安排及网络拓扑: 节点类型 节点IP 节点hostname master节点 192.168.40.5 m

基于Kubernetes构建Docker集群管理详解

在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能.以下为Kubernetes的架构设计图: 1. Pods 在Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建.销毁.调度.管理的最小的部署单元.比如一个或一组容器. 2. Replication Controllers Replication Controller是Kubernetes系统中最有用的功能,实现复制多个Pod副本,往往一个应用需要多个Pod来支撑,并

MySQL数据库服务器集群配置详解介绍

一.介绍 这篇文档旨在介绍如何安装配置基于2台服务器的MySQL数据库集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集群,但也必须有额外的第三台服务器作为管理节点,但这台服务器可以在集群启动完成后关闭.同时需要注意的是 并不推荐在集群启动完成后关闭作为管理节点的服务器.尽管理论上可以建立基于只有2台服务器的MySQL集群,但是这样的架构,一旦一台服务器宕机之后集 群就无法继续正常工作了,这样也就失去了集群的意义了.出于这个原因

MongoDB主从集群配置详解

创建必要的目录和认证文件: [root@mongo mongo]# mkdir keyfile [root@mongo mongo]# echo "mongo cluster one" > keyfile/m1 [root@mongo mongo]# echo "mongo cluster one" > keyfile/m2 [root@mongo mongo]# echo "mongo cluster one" > keyfi

Mysql集群配置详解

环境: Vmware workstation6.5 操作系统:Centos 5.2 (2台) 第一台: 主机名:mysql1 IP: 192.168.1.30 第二台 主机名:mysql2 IP: 192.168.1.32 软件下载安装 下载软件地址:http://dev.mysql.com/downloads/select.php?id=14 选择操作系统是RedHat Enterprise 版本 如下: MySQL-Cluster-gpl-client-7.0.8a-0.rhel5.i386

详解MySQL集群搭建_Mysql

概述 MySQL Cluster 是MySQL 适合于分布式计算环境的高实用.可拓展.高性能.高冗余版本,其研发设计的初衷就是要满足许多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达到99.999%.MySQL Cluster允许在无共享的系统中部署"内存中"数据库集群,通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求.此外,由于每个组件有自己的内存和磁盘,不存在单点故障. 实际上,MySQL集群是把一个叫做NDB的内存集群存储引擎集成与标准的MyS

Mongodb集群搭建的三种方式

 Mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式.关于Mongodb的特点,这里就不多介绍了,大家可以去看看官方说明:http://docs.mongodb.org/manual/          今天主要来说说Mongodb的三种集群方式的搭建:Replica Set / Sharding / Master-Slaver.这里只说明最简单的集群搭建方式(生产环境),如果有多个节点可以此类推或者查看官方文档.OS是Ubuntu_x64系统,客

mongodb 3.4 集群搭建升级版 五台集群

最新版mongodb推荐使用yaml语法来做配置,另外一些旧的配置在最新版本中已经不在生效,所以我们在生产实际搭建mongodb集群的时候做了一些改进.如果大家不熟悉什么是分片.副本集.仲裁者的话请先移步查看上一篇文章:mongodb 3.4 集群搭建:分片+副本集 和前一个版本相比,改动点有: 配置文件采用yaml方式来配置 生产中取消了仲裁者的角色,因为仲裁者也不会存储数据,只是起到选举的作用,线上为了保证数据安全,每份数据都会配置两个副本集,也就是每份数据存储了三份. 优化配置,采用五台集

MongoDB 3.4 副本集分片集群搭建

MongoDB 3.4 副本集分片集群搭建 Author:Jeffrey Jhon Timed:2017-10-16 16:56:24 Company:hangzhoutianque 案例主要参考,然后细化了下安装部署过程,并且贴出详细的配置信息,以便后续翻阅查询. 官方文档:Sharding - MongoDB Manual 3.4 一.测试环境 操作体统:VMware + CentOS7 + 静态IP mongodb版本:mongodb-3.4.4 二.布局预览 app1 app2 app3