mongodb 的安装以及在多台服务器之间建立副本集 在虚拟机上安装多个linux实现 配合Java代码实现读写分离


2. 在 /usr/local 中解压 : tar -xzvf mongodb-*****.tgz
3.  重命名解压包 : mv mongodb-**** mongodb
4.  创建目录 : mkdir -p /data/db
5. 创建文件 : touch /data/logs/mongod.log
6. 创建配置文件 : vi /etc/mongod.conf :

   端口号 : port=27017
   数据路径 : dbpath=/data/db

   日志路径 : logpath=/data/logs/mongod.log
   后台运行 : fork=true

   日志输出方式 : logappend=true
   #开启认证 : auth=true
   journal=true
   bind_ip=192.168.249.128 // 通过ifconfig查到的IP值

7. 环境变量 : vi /etc/profile : export PATH=/usr/local/mongodb/bin:$PATH

8. 在每个服务器上都执行,创建副本集成员 : mongod --replSet spock -f /etc/mongod.conf --fork //"spock"为指定的副本       集标识
9. 启动 : mongo --nodb
10.  config = {"_id" : "spock" , "members" : [{"_id" : 0 , "host" : "192.168.249.128:27017"},{"_id" : 1 , "host" : "192.168.249.129:27017"},{"_id" : 2 , "host" : "192.168.249.130:27017"}]}
11. db = (new Mongo("192.168.249.128")).getDB("test") // 哪个设为主节点就选哪个的ip
12. rs.initiate(config)

13. 可以测是一下在主节点中写数据然后到备份节点中去读取 :
     db.coll.insert({"name" : "my name is hbw"})

      con = new Mongo("192.168.249.129:27017")
      ddb = con.getDB("test")

      con.setSlaveOk()
      ddb.coll.find()

14. 

  1. public static void main(String[] args)  {  
  2.         try {   
  3.             List<ServerAddress> addresses = new ArrayList<ServerAddress>();    
  4.             ServerAddress address1 = new ServerAddress("127.0.0.1" , 1111);   
  5.             ServerAddress address2 = new ServerAddress("127.0.0.1" , 2222);   
  6.             ServerAddress address3 = new ServerAddress("127.0.0.1" , 3333);   
  7.             addresses.add(address1);    
  8.             addresses.add(address2);   
  9.             addresses.add(address3);   
  10.             MongoClient client = new MongoClient(addresses);   
  11.             DB db = client.getDB( "test");   
  12.             DBCollection coll = db.getCollection( "test");   
  13.               
  14.             BasicDBObject object = new BasicDBObject();    
  15.             object.append( "key1""value1" );   
  16.             ReadPreference preference = ReadPreference.secondary();    // 设置从备份节点读取 实现读写分离
  17.             DBObject dbObject = coll.findOne(object, null , preference);    
  18.             System. out .println(dbObject);    
  19.         } catch (Exception e) {   
  20.             e.printStackTrace();    
  21.         }   
  22.     }   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这是谁的博客?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值