springboot连接使用monggoDB复制集

2021-08-18  本文已影响0人  我是光芒万丈

配置部分:

url连接格式:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

      mongodb:// 前缀,代表这是一个Connection String

      me:password@如果启用了鉴权,需要指定用户密码

      hostX:portX 复制集成员的ip:port信息,多个成员以逗号分割

     /database 鉴权时,用户帐号所属的数据库

     ?options 指定额外的连接选项

示例:mongodb://admin:pass%40123@192.168.0.31:27017,192.168.0.32:27017,192.168.0.33:27017/?replicaSet=myrs&database=admin

注意如果有仲裁者角色,此处不应进行配置.

密码中的特殊字符@需要转义(否则会报错),如此处为encodeURIComponent("pass@123")

Yml配置格式示例:

代码使示例:

@Configuration

public class MongoConfig{

    @Value("${spring.data.mongodb.database}")

    private String database;

    @Value("${spring.data.mongodb.uri}")

    private String uri;

    @Bean

public MongoMappingContext mappingContext() {

        return new MongoMappingContext();

}

    @Bean

public MongoTemplate mongoTemplate(MongoDbFactory mongoDbFactory, MongoMappingContext mappingContext) {

        MappingMongoConverter converter= new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory),

                mappingContext);

        converter.setTypeMapper(new DefaultMongoTypeMapper(null));

        MongoTemplate mongoTemplate= new MongoTemplate(mongoDbFactory, converter);

        return mongoTemplate;

}

    @Bean

public MongoClient getMongoClient(){

        return MongoClients.create(uri);

}

    @Bean

public GridFSBucket getgridFsBucket(MongoClient mongoClient) {

        MongoDatabase mongoDatabase= mongoClient.getDatabase(database);

        GridFSBucket gridFsBucket= GridFSBuckets.create(mongoDatabase);

        return gridFsBucket;

}

}

错误用法:

一旦31节点发生奔溃或切换为从节点,写操作将会有问题。

monggoDB复制集搭建过程见mongoDB复制集搭建

上一篇下一篇

猜你喜欢

热点阅读