MongoDB是一个开源的NoSQL数据库,它提供了高性能、高可用性和高扩展性的数据存储解决方案,在本文中,我们将详细介绍如何使用MongoDB 3.0.5版本搭建副本集,并使用Spring和Java进行连接配置。
MongoDB副本集搭建
1、安装MongoDB
我们需要在服务器上安装MongoDB,可以从官网下载相应的安装包,然后按照官方文档进行安装。
2、创建副本集配置文件
在MongoDB的安装目录下,创建一个名为mongod.conf
的配置文件,内容如下:
systemLog: destination: file path: /var/log/mongodb/mongod.log logAppend: true storage: dbPath: /var/lib/mongodb journal: enabled: true net: bindIp: 127.0.0.1,192.168.1.2,192.168.1.3 port: 27017 replication: replSetName: "rs0"
bindIp
表示MongoDB监听的IP地址,可以根据实际情况进行修改。port
表示MongoDB服务的端口号,默认为27017。replSetName
表示副本集的名称,可以根据需要进行修改。
3、启动MongoDB服务
在服务器上运行以下命令,启动MongoDB服务:
mongod --config /path/to/mongod.conf
/path/to/mongod.conf
表示刚刚创建的配置文件的路径。
4、添加副本集节点
在另一个服务器上,重复步骤1-3,创建一个新的MongoDB实例,在第一个服务器上运行以下命令,将新实例添加到副本集中:
mongo --host 192.168.1.2 --port 27017 <<EOF rs.add("192.168.1.2:27017") EOF
192.168.1.2:27017
表示新实例的地址和端口号,运行完这个命令后,新实例将被添加到副本集中。
5、查看副本集状态
在任何一个MongoDB实例上,运行以下命令,查看副本集的状态:
rs.status()
如果一切正常,输出结果应该类似于以下内容:
{ "set" : "rs0", "date" : ISODate("2022-01-01T00:00:00Z"), "myState" : 1, "term" : NumberLong(1), "syncingTo" : "", "syncSourceHost" : "", "syncSourceId" : -1, "heartbeatIntervalMillis" : NumberLong(2000), "optimes" : { }, "lastStableCheckpointTimestamp" : Timestamp(0, 0), "uptime" : NumberLong(3600000), "alive" : true, "primary" : "192.168.1.3:27017", "secondary" : [ ], "arbiterOnly" : false, "hidden" : false, "initialSyncStarted" : NumberLong(1640995200000), "lastHeartbeatMessage" : { }, "lastHeartbeatTimestamp" : ISODate("2022-01-01T00:30:00Z"), "pingMs" : NumberLong(0), "lastWriteConfirmationTimestamp" : { }, "electionTimeMs" : NumberLong(0), "electionDate" : ISODate("2022-01-01T00:30:00Z"), "configVersion" : { }, "selfIndexes" : [ ] } }
Spring和Java连接副本集配置
1、添加依赖
在项目的pom.xml文件中,添加以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
2、配置MongoDB连接信息
在application.properties文件中,添加以下配置:
spring.data.mongodb.uri=mongodb://username:password@localhost:27017/database?authSource=admin&replicaSet=rs0&readPreference=primaryPreferred&ssl=false&serverSelectionTimeoutMS=3000&connectTimeoutMS=3000&socketTimeoutMS=360000&maxPoolSize=50&minPoolSize=5&maxIdleTimeMS=360000&maxConnectionIdleTimeMS=360000&waitQueueMultiple=5&waitQueueTimeoutMS=5000&threadsAllowedToBlockForConnectionMultiplier=5&requiredReplicaSetName=rs0&writeConcern=NORMAL&readConcern=NORMAL&appName=myAppName&enableLocalhostAuthBypass=true&failFast=true&heartbeatFrequencyMS=1000&logicalSessionTimeoutMinutes=360&serverSelectionTimeoutMS=3686454454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454e8b9a8c9f8g9h8i9j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9zAaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuU
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/353368.html