Mongodb3.0.5 Replica set setup and configuration of spring and java connected replicas are introduced in detail
Mongodb3.0.5 Replica set setup and configuration of spring and java connected replicas are introduced in detail
1. Basic Environment:
mongdb3. 0.5 database spring-data-MongoDB-1.7.2.jar mongo-Java-driver-3.0.2.jar Linux-redhat6.3 tomcat7
2. Build mongodb copy set:
1. Install mongodb on 3 linux systems respectively (to avoid conflicts with the original mongodb port on the machine, set it as 57017) :
192.168.0.160 192.168.0.211 (Virtual machine on 192.168.0.33) 192.168.0.213 (Virtual machine on 192.168.0.4)
I won’t go into the details of each mongodb installation, but refer to my installation documentation, and be careful not to change user authentication for a while. In addition, if there are no 3 machines, you can use only 1 machine to open 3 ports and prepare 3 data storage directories.
2. Start 3 mongodb in the form of copy set:
Just add replica set parameters - replSet - on a single mongodb boot basis, such as boot 160:
/home/admin/mongodb3051/mongodb305/bin/mongod � f /home/admin/mongo3051/conf/mongodb.conf --replSet reptest
Where reptest is the specified replica set name, and the other two machines also have to do the same. Such as:
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
3. Configure replica set on any one machine. Here, configure replica set on 160:
(1) Enter mongo sehll(data operation interface) on 160:
/home/admin/mongodb3051/mongodb305/bin/mongo � port 57017
(2) Switch to admin database:
use admin
(3) Configure replica sets:
config={_id: " reptest " ,members:[{_id:0,host: " 192.168.0.160:57017 " },{_id:1,host: " 192.168.0.211:57017 " },{_id:,host: " 192.168.0.213:57017 " }]}
(4) Load the replica set configuration file:
rs.initiate(config)
(5) Check the status of replicas:
rs.status()
If it is, do the following. If not, switch to PRIMARY and do the following (switch to another mongo).
(6) Increase users:
db.createUser({ " user " : " admin " , " pwd " : " admin " , " roles " :[ " root " ]})
(7) Change the user authentication method:
varschema=db.system.version.findOne({ " _id " : " authSchema " })
schema.currentVersion=3
db.system.version.save(schema)
(8) Delete user:
db.dropUser( " admin " )
(9) Re-establish the user (the user authentication method established in the system and above is not the same) :
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
0
(10) Close 3 mongodb:
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
1
(11) Establish keyFile file in the data directory of database 160:
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
2
(12) Set 600 permissions for keyFile file (600 permissions must be set) :
chmod 600 keyFile
(13) Upload this keyFile file to the data directory of mongodb on the other two machines:
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
4
(14) Add keyFile to mongodb.ES126en, for example, 160:
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
5
(15) Restart mongodb and use replSet and auth parameters:
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
6
(16) Set the priority of replica set members in priority, and set the highest priority to 160. The default priority is 1:
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
7
This way, as long as mongodb 160 is on, the primary server will be 160
3. Configuration of connection replicas in Spring:
<?xml version="1.0"encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
<!-- Factory bean that creates the Mongoinstance -->
<mongo:mongo-client replica-set="192.168.0.160:57017" credentials="admin:admin@admin" id="mongo">
<mongo:client-options write-concern="SAFE" connections-per-host="100"
threads-allowed-to-block-for-connection-multiplier="50"
/>
</mongo:mongo-client>
<mongo:db-factory id="mongoDbFactory"dbname="admin" mongo-ref="mongo"/>
<bean id="mongoTemplate"class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
</beans>
You only need to configure 1 ip to switch automatically. User authentication format: username: ES154en@dbname.
4. Code for connecting replica sets in java:
/mongodb3051/mongodb305/bin/mongod � f /mongodb3051/conf/mongodb.conf --replSet repTest
9
The user authentication format is: username, dbname, password
Thank you for reading, I hope to help you, thank you for your support to this site!