元数据存储

NoSQL MongoDB

师成师成· 更新于 2026-09-29· 阅读 7 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

NoSQL MongoDB

📝 注意

MongoDB 后端目前处于 beta 阶段。

此实现使用 MongoDB 作为持久化后端,并借助 Quarkus MongoDB 扩展进行连接管理。配置可以在启动时通过环境变量或 JVM 的 -D 参数完成。

基本配置

使用环境变量:

POLARIS_PERSISTENCE_TYPE=nosql
POLARIS_PERSISTENCE_NOSQL_BACKEND=MongoDb
QUARKUS_MONGODB_DATABASE=polaris
QUARKUS_MONGODB_CONNECTION_STRING=mongodb://<username>:<password>@<host>:<port>

使用属性文件:

polaris.persistence.type=nosql
polaris.persistence.nosql.backend=MongoDb
quarkus.mongodb.database=polaris
quarkus.mongodb.connection-string=mongodb://<username>:<password>@<host>:<port>

MongoDB Atlas 配置

对于 MongoDB Atlas 部署,请使用 mongodb+srv:// 格式的连接字符串:

polaris.persistence.type=nosql
polaris.persistence.nosql.backend=MongoDb
quarkus.mongodb.database=polaris
quarkus.mongodb.connection-string=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/?retryWrites=true&w=majority

MongoDB 副本集配置

对于副本集部署:

polaris.persistence.type=nosql
polaris.persistence.nosql.backend=MongoDb
quarkus.mongodb.database=polaris
quarkus.mongodb.connection-string=mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,<host3>:<port3>/?replicaSet=<rs-name>&authSource=admin

高级 MongoDB 配置

可以通过 Quarkus 的 MongoDB 配置属性来设置其他 MongoDB 选项:

quarkus.mongodb.connect-timeout=10S
quarkus.mongodb.read-timeout=30S
quarkus.mongodb.server-selection-timeout=30S
quarkus.mongodb.write-concern.safe=true
quarkus.mongodb.read-preference=primaryPreferred

对于 TLS/SSL 连接,请在连接字符串中添加 tls=true:

quarkus.mongodb.connection-string=mongodb://<username>:<password>@<host>:<port>/?tls=true

关于可用的 MongoDB 配置选项的更多信息,请参阅 Quarkus MongoDB 配置参考。

引导启动 Polaris

在将 Polaris 与 MongoDB 后端配合使用之前,必须先引导初始化元数据存储(metastore),以创建所需的集合和初始 realm。此操作通过 管理工具 完成。

使用 Docker:

docker run --rm -it \
  --env="polaris.persistence.type=nosql" \
  --env="polaris.persistence.nosql.backend=MongoDb" \
  --env="quarkus.mongodb.database=polaris" \
  --env="quarkus.mongodb.connection-string=mongodb://<username>:<password>@<host>:<port>" \
  apache/polaris-admin-tool:latest bootstrap -r <realm-name> -c <realm-name>,<client-id>,<client-secret>

使用独立 JAR:

java \
  -Dpolaris.persistence.type=nosql \
  -Dpolaris.persistence.nosql.backend=MongoDb \
  -Dquarkus.mongodb.database=polaris \
  -Dquarkus.mongodb.connection-string=mongodb://<username>:<password>@<host>:<port> \
  -jar polaris-admin-tool.jar bootstrap -r <realm-name> -c <realm-name>,<client-id>,<client-secret>

有关 bootstrap 命令及其他管理操作的详细信息,请参阅管理工具文档。

定期维护

Polaris NoSQL 后端需要定期维护,以从后端数据库中清除过期数据。维护的频率取决于数据库的大小以及数据更新的频率。建议的维护频率为每天一次。建议将维护安排在非高峰时段,或设置合理的扫描速率,以尽量减少对运行可用性的影响。可以使用管理工具触发维护。

评论

登录后参与评论

正在加载评论…