使用 Spring Boot 在 Mongo 中自动扩展

Posted

技术标签:

【中文标题】使用 Spring Boot 在 Mongo 中自动扩展【英文标题】:Autoscaling up in Mongo with Spring Boot 【发布时间】:2019-06-10 03:01:28 【问题描述】:

我正在设置一个应用程序连接到具有高可用性的 mongoDB。

我已经研究了文档并通过成功设置了副本集 spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test

由于应用程序属性文件是固定的,如果我更改spring.data.mongodb.uri,需要重新启动应用程序。

如果我在 mongo 中有一个新的副本成员,我是否需要使用应用程序属性中的更新重新启动我的应用程序?

或者,使用旧配置是否足够公平? Mongo 驱动程序会自动使用旧配置为我连接到新的副本成员。

【问题讨论】:

【参考方案1】:

如果您从文件中加载属性,您需要在属性更新后重新启动应用程序。

否则,您需要使用一些全局属性管理应用程序,例如 consul,当属性更改时,它将重新加载应用程序中的属性值(@RefreshScope)。

在您的情况下,更改属性后,您需要通过代码断开连接并重新连接到 mongodb。

【讨论】:

是否意味着我必须更新spring.data.mongodb.uri才能扩大mongoDB的节点数?

以上是关于使用 Spring Boot 在 Mongo 中自动扩展的主要内容,如果未能解决你的问题,请参考以下文章

使用 IntelliJ 在 Spring Boot 中自定义应用程序属性

在 Spring Boot 中自定义 JSON 响应以更改键名

使用 Spring Boot 在 Mongo 中自动扩展

使用 Mongo 模板在 Spring Boot 中过滤内部 Arraylist 项的 Mongo 查询

在 Spring Boot 中自定义异常返回空消息 [重复]

spring boot中自定义验证的参数化junit测试