MongoDB 的开发服务
Quarkus 支持一项名为“开发服务”的功能,允许您创建各种数据源,而无需任何配置。对于 MongoDB,此支持扩展到默认的 MongoDB 连接。实际上,这意味着如果您尚未配置 quarkus.mongodb.connection-string
或 quarkus.mongodb.hosts
,Quarkus 将在运行测试或在开发模式下自动启动 MongoDB 容器,并自动配置连接。
MongoDB 开发服务基于 Testcontainers MongoDB 模块,该模块将启动一个单节点副本集。
运行应用程序的生产版本时,需要像往常一样配置 MongoDB 连接。因此,如果您想在 application.properties
中包含生产数据库配置并继续使用开发服务,我们建议您使用 %prod.
配置文件来定义您的 MongoDB 设置。
共享服务器
大多数情况下,您需要在应用程序之间共享服务器。MongoDB 的开发服务为在开发模式下运行的多个 Quarkus 应用程序实现了一个服务发现机制,以共享单个服务器。
MongoDB 的开发服务使用 quarkus-dev-service-mongodb 标签启动容器,该标签用于标识容器。 |
如果您需要多个(共享)服务器,您可以配置 quarkus.mongodb.devservices.service-name
属性并指定服务器名称。它查找具有相同值的容器,如果找不到,则启动一个新容器。默认服务名称为 mongodb
。
默认情况下,在开发模式下启用共享,但在测试模式下禁用。您可以使用 quarkus.mongodb.devservices.shared=false
禁用共享。
Compose
MongoDB 开发服务支持 Compose 开发服务。它依赖于 compose-devservices.yml
,例如
name: <application name>
services:
mongo:
image: docker.io/mongo:7.0
ports:
- "27017"