使用mongo的自动分片和复制集的功能搭建mongodb三节点集群,每个节点都运行三个分片服务器进程,一个路由服务器和配置服务器,该架构集群可以实现容错性,正常情况下客户端连接路由服务器,路由服务器没有主次之分,连接哪一台服务器的路由服务器都可以,路由服务器根据配置服务器找到相应分片服务器组成的复制集的主节点,如果是查询操作主节点就把任务发放给从库,如果是写操作就会把数据写在主节点的主库,并及时更新从库的内容从而达到数据的一致性。如果出现主节点宕机或者主节点不可达,mongodb复制集的自动故障转移在这时就发挥了作用,仲裁者选举从节点为主节点,这一过程对客户端来说是透明的,客户端依旧可以获得想要的数据。使用jsp技术搭建web系统连接数据库实现查询的功能。
(a)配置环境
centos5.7.i586
mongodb-linux-i686-3.0.12.tgz
(b)配置脚本
#分别在每台机器建立mongos 、config 、 shard1 、shard2、shard3 五个目录。
因为mongos不存储数据,只需要建立日志文件目录即可。
划5个组件对应的端口号,由于一个机器需要同时部署 mongos、config server 、shard1、shard2、shard3,所以需要用端口进行区分。
这个端口可以自由定义,在本文 mongos为 20000, config server 为 21000, shard1为 22001 , shard2为22002, shard3为22003.
#创建目录
mkdir shard1data
mkdir configdata
mkdir shard1data
mkdir shard2data
mkdir shard3data
#在每一台服务器分别启动配置服务器
mongod --configsvr --dbpath