Dev Services for MongoDB

Quarkus 支持一项称为 Dev Services 的功能,该功能允许您无需任何配置创建各种数据源。对于 MongoDB,此支持扩展到默认 MongoDB 连接。这在实践中意味着,如果您尚未配置 quarkus.mongodb.connection-string,Quarkus 将在运行测试或处于开发模式时自动启动 MongoDB 容器,并自动配置连接。 MongoDB Dev Services 基于 Testcontainers MongoDB module,它将启动一个单节点副本集。 在运行应用程序的生产版本时,需要像往常一样配置 MongoDB 连接,因此如果您想在 application.properties 中包含生产数据库配置并继续使用 Dev Services,我们建议您使用 %prod. 配置文件来定义 MongoDB 设置。

Shared server

大多数时候,您需要在应用程序之间共享服务器。MongoDB 的 Dev Services 为以 dev 模式运行的多个 Quarkus 应用程序实现了一个 service discovery 机制,以共享单个服务器。

MongoDB Dev Services 会启动带有 quarkus-dev-service-mongodb 标签的容器,该标签用于识别容器。

如果您需要多个(共享的)服务器,可以配置 quarkus.mongodb.devservices.service-name 属性并指明服务器名称。它会查找带有相同值的容器,或者在找不到容器时启动一个新容器。默认服务名称为 mongodb

共享在开发模式中默认启用,但在测试模式中禁用。您可以使用 quarkus.mongodb.devservices.shared=false 禁用共享。