MongoDB集群与LBS应用系列(一)

1. 概念

MongoDB做为著名的NoSQL,早已很是流行。它的地理应用也很是成熟,被foursquare用于生产环境也已经多时。本文主要记录今年6月份的一个地理产品中,使用MongoDB的过程和遇到的一些问题以及解决方案。咱们在原型系统搭建时候,使用了三台机器,搭建MongoDB ReplicationSet 集群,做为地理数据库以使用。mongodb

2. 集群部署

2.1 硬件资源

三台操做系统为CentOS 64bit version6.4的服务器,IP地址和域名shell

192.168.2.22 mongodb0.ventlam.com
192.168.2.23 mongodb1.ventlam.com
192.168.2.24 mongodb2.ventlam.com 

 

2.2 软件安装

2.2.1 建立MONGODB专有的软件源

下载并安装mongo 2.4.5版本,(3台机器分别执行)数据库

vim /etc/yum.repos.d/10gen.repo 
  • 添加如下源列表
[10gen] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0 enabled=1 


* 安装MongoDB
vim

 yum install mongo-10gen mongo-10gen-server 

 

2.2.2 REPLICATION SET 集群搭建

部署生产环境下的MongoDB ReplicationSet ,须要数据库部署在尽量隔离的机器上(每一个数据库部署在不一样的物理机器,使用不一样的网络和不一样的电源)。服务器

2.2.2.1 须要配置mongodb 经过域名可以访问

修改/etc/host或者配置DNS实现(3台机器分别执行)网络

vim /etc/host

添加以下命令tcp

192.168.2.22 mongodb0.ventlam.com 
192.168.2.23 mongodb1.ventlam.com 
192.168.2.24 mongodb2.ventlam.com 

修改数据库配置文件(3台机器分别执行)url

vim /etc/mongod.conf 

在配置文件加入如下参数:spa

port = 27017 dbpath = /mnt/mongo replSet = rs0 

启动数据库 (3台机器分别执行) 建立数据目录 mkdir /mnt/mongodb/,并修改配置文件启动mongodb操作系统

vim /etc/rc.d/init.d/mongod 

启动

mongod service mongod start 

添加开机启动

chkconfig mongod on 

2.2.2.2 检查三台机器数据库是否能够互联

首先开放27017端口 (3台机器分别执行)

 /sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT 
/etc/rc.d/init.d/iptables save

 

而后分别检查链接状况,在全部机器输入如下命令:

mongo --host mongodb1.ventlam.com --port 27017 mongo --host mongodb2.ventlam.com --port 27017 

若是均可以进入mongo shell界面,便可。不然,请检查防火墙规则。

2.2.2.3 配置repilcation set

进入mongo shell mongo 输入如下配置命令(只须要在任意一台机器执行)

rsconf = { \_id: "rs0", 
  members: [ { _id:
0, host: "mongodb0.ventlam.com" },
         { _id: 1, host: "mongodb1.ventlam.com" },
         { _id: 2, host: "mongodb2.ventlam.com" } ] }

2.2.2.4 初始化

rsconf rs.initiate(rsconf) 

查看rsconf配置状况

rs.conf() 

 

若是返回下列值,证实mongodb集群搭建成功

{ "_id" : "rs0", "version" : 1, 
"members" : [ { "\_id" : 0, "host" : "mongodb0.ventlam.com:27017" },
{ "\_id" : 1, "host" : "mongodb1.ventlam.com:27017" },
        { "\_id" : 2, "host" : "mongodb2.ventlam.com:27017" } ] }

2.2.2.5 添加删除数据实例

rs.add("<hostname>:27017")

rs.remove("<hostname>:27017")

 

知识共享许可协议
本做品由VentLam创做,采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

相关文章
相关标签/搜索