MongoDB集群负载均衡部署帮助文档

12 篇文章 0 订阅
4 篇文章 0 订阅

1:安装mongodb单个服务

1.1准备软件列表

   

软件

说明

mongodb-linux-x86_64-3.0.6.tgz

mongodb安装文件

sept1安装mongodb环境

安装mongodb环境:

#cd /usr/tools/                                                                       #进入目录

#tar –zxvf mongodb-linux-x86_64-3.0.6.tgz /usr/local/              #解压目录到local下

#mv mongodb-linux-x86_64-3.0.6 mongodb                            #重命名

 

sept2】配置mongodb.conf文件

在mongodb下新建data、logs、etc文件夹

#cd /usr/local/mongodb/                                                         #进入目录

#mkdir data

#mkdir logs

#mkdir etc

#cd data

#mkdir db

在etc文件夹下新建mongodb.conf文件

文件mongodb.conf:

dbpath=/usr/local/mongodb/data/db/27111/                        #db数据库路径

logpath=/usr/local/mongodb/logs/27111/mongodb.log     #日志路径

port=27111                                                                    #端口

bind_ip = 192.168.3.180                                   #服务地址

replSet = child/192.168.3.180:27112                  #设定同伴 child为集群名称

fork=true                                                 

journal=false

storageEngine=mmapv1

rest=true 

httpinterface=true

 

sept3启动mongo服务

 配置环境变量:

#vi /etc/profile                                             #编辑文件

在最后加上:

PATH=$PATH:/usr/local/mongodb/bin

export PATH

#source /etc/profile                                      #使文件生效

       

启动服务:

  #mongod –f /usr/local/mongodb/etc/mongodb.conf

  连接数据库:

   #mongo 192.168.3.180:27017

停止服务:

   #ps –ef|grep mongo                                #找到进程id

   #kill -2 进程id                                       #不要使用kill -9 结束进程,停止服务

        

2mongodb副本集的搭建

2.1mongodb准备副本集环境

sept1创建目录文件

  注意配置:

     路径:/usr/local/mongodb/etc/mongodb.conf: (端口27111)

          dbpath = /usr/local/mongodb/data/bin/27111/   #主数据库地址

          logpath=/usr/local/mongodb/logs/27111/mongodb.log

          port = 27111 #主数据库端口号

          bind_ip = 192.168.3.180 #主数据库所在服务器

         replSet = child/192.168.3.180:27112 #设定同伴 child为集群名称

   路径:/usr/local/mongodb/etc/mongodb.conf: (端口27112)

          dbpath = /usr/local/mongodb/data/bin/27112/   #主数据库地址

          logpath=/usr/local/mongodb/logs/27112/mongodb.log

          port = 27112 #主数据库端口号

          bind_ip = 192.168.3.180 #主数据库所在服务器

          replSet = child/192.168.3.180:27113 #设定同伴 child为集群名称

路径:/usr/local/mongodb/etc/mongodb.conf: (端口27113)

          dbpath = /usr/local/mongodb/data/bin/27113/   #主数据库地址

          logpath=/usr/local/mongodb/logs/27113/mongodb.log

          port = 27113 #主数据库端口号

          bind_ip = 192.168.3.180 #主数据库所在服务器

          replSet = child/192.168.3.180:27111 #设定同伴 child为集群名称

sept2】在180服务器安装配置启动服务

   #cd /usr/local/mongodb/bin                            #进入目录;

   #ls                                                                  #查看

   启动服务

   #mongod –f /usr/local/mongodb/etc/27111/mongodb.conf  #启动服务27111

   # mongod –f /usr/local/mongodb/etc/27112/mongodb.conf #启动服务27112

   # mongod –f /usr/local/mongodb/etc/27113/mongodb.conf #启动服务27113

   #ps –ef|grep redis                                          #查看mongo服务

   #netstat –tnlp|grep mongod               #查看mongo服务

sept3】在180服务器配置副本集

       #cd /usr/local/redis/bin                                   #进入目录

       #ls

       #ps –ef|grep mongo                          #查看mongo服务

       #netstat –tnlp|grep mongod               #查看mongo服务

       #mongo 192.168.3.180:27111            #连接

执行如下命令:

查看副本集:

 

3mongodb集群整合spring

3.1:spring-mongodb.xml配置

<mongo:mongo-client replica-set="${mongo.host}:${mongo.port}" credentials="${mongo.user}:${mongo.pwd}@{mongo.defaultDbName}" id="mongoClient">  

              <mongo:client-options

                  write-concern="${mongo.write-concern}"

                connections-per-host="${mongo.connectionsPerHost}"

                min-connections-per-host="${mongo.minConnectionsPerHost}"

                threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"

                connect-timeout="${mongo.connectTimeout}"

                max-wait-time="${mongo.maxWaitTime}"

                socket-keep-alive="${mongo.socketKeepAlive}"

                socket-timeout="${mongo.socketTimeout}"

                description="${mongo.description}"

                max-connection-idle-time="${mongo.maxConnectionIdleTime}"

                max-connection-life-time="${mongo.maxConnectionLifeTime}"

                heartbeat-socket-timeout="${mongo.heartbeatSocketTimeout}"

                heartbeat-connect-timeout="${mongo.heartbeatConnectTimeout}"

                min-heartbeat-frequency="${mongo.minHeartbeatFrequency}"

                heartbeat-frequency="${mongo.heartbeatFrequency}"

        />

    </mongo:mongo-client>    

 

    <mongo:db-factory id="mongoDbFactory"

                      dbname="${mongo.defaultDbName}"

                      mongo-ref="mongoClient"/>

 

    <bean id="mappingContext"

        class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />

 

    <bean id="defaultMongoTypeMapper"

        class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">

        <constructor-arg name="typeKey">

            <null />

        </constructor-arg>

    </bean>

 

    <!-- collection的映射 -->

    <bean id="mappingMongoConverter"

        class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">

        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />

        <constructor-arg name="mappingContext" ref="mappingContext" />

        <property name="typeMapper" ref="defaultMongoTypeMapper" />

    </bean>

 

    <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 -->

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">

        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />

        <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />

    </bean>

 

 

    <bean id="gridFsTemplate" class="org.springframework.data.mongodb.gridfs.GridFsTemplate">

        <constructor-arg ref="mongoDbFactory" />

        <constructor-arg ref="mappingMongoConverter" />

        <constructor-arg  name="bucket" value="casePicture" />

    </bean>

 

3.2集群测试方法

      //测试集群

    public static void testMongoDb() {

        try {

            System.out.println("================测试开始======================");

            // 连接到MongoDB服务 如果是远程连接可以替换localhost为服务器所在IP地址

            // ServerAddress()两个参数分别为 服务器地址 端口

//          ServerAddress serverAddress = new ServerAddress("192.168.3.176", 27017);

            ServerAddress serverAddress1 = new ServerAddress("192.168.3.180", 27111);

            ServerAddress serverAddress2 = new ServerAddress("192.168.3.180", 27112);

            ServerAddress serverAddress3 = new ServerAddress("192.168.3.180", 27113);

            ServerAddress serverAddress4 = new ServerAddress("192.168.3.176", 27017);

            List<ServerAddress> addrs = new ArrayList<ServerAddress>();

            addrs.add(serverAddress1);

            addrs.add(serverAddress2);

            addrs.add(serverAddress3);

            addrs.add(serverAddress4);

MongoCredential credential = MongoCredential.createScramSha1Credential("admin", "jwzh",

                    "123456".toCharArray());

            List<MongoCredential> credentials = new ArrayList<MongoCredential>();

            credentials.add(credential);

 

            // 通过连接认证获取MongoDB连接

            MongoClient mongoClient = new MongoClient(addrs, credentials);

 

            // 连接到数据库

            MongoDatabase mongoDatabase = mongoClient.getDatabase("jwzh");

            System.out.println("Connect to database successfully");

 

//          mongoDatabase.createCollection("casePicture");

//          System.out.println("集合创建成功");

 

MongoCollection<Document> collection = mongoDatabase.getCollection("casePicture");

            System.out.println("集合 test 选择成功");

            FindIterable<Document> findIterable = collection.find();

            MongoCursor<Document> mongoCursor = findIterable.iterator();

            while (mongoCursor.hasNext()) {

System.out.println("mongoCursor.next()" + mongoCursor.next() + "=============");

            }

 

            // 取得数据库对象

            DB db = mongoClient.getDB("jwzh");

 

            GridFS gridFS = new GridFS(db, "casePicture");

 

            File file = new File("d:/ncurses-5.6.tar_27111.gz");

            FileInputStream fileInputStream = new FileInputStream(file);

 

            // 创建gridFS文件数据流

            GridFSInputFile createFile = gridFS.createFile(fileInputStream);

 

            // 设置文件属性

            createFile.put("policeId", "8e123ee6922b4a91be400c7bfd3eb13a");

            createFile.put("filename", "d:/ncurses-5.6.tar_27111.gz");

            createFile.put("contentType", "zip");

            createFile.save();

 

            /*

             * 3、根据id查询上传文件

             */

GridFSDBFile findOne = gridFS.findOne(new BasicDBObject("_id", createFile.getId()));

            // System.out.println(findOne);

 

            /*

             * 4、查询所有文件列表 DBCursor 数据库游标

             */

            DBCursor fileList = gridFS.getFileList();

            while (fileList.hasNext()) {

                System.out.println("fileList.next()" + fileList.next());

            }

 

List<GridFSDBFile> list = gridFS.find(new BasicDBObject("_id", createFile.getId()));

 

            /*

             * 5 删除文件

             */

            // gridFS.remove(new BasicDBObject("_id",createFile.getId()));

            mongoClient.close();

            System.out.println("================测试结束===================");

        } catch (Exception e) {

            System.err.println(e.getClass().getName() + ": " + e.getMessage());

        }

}  

 

 

下载地址:https://download.csdn.net/download/wenjie4892543/10451077

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值