【发布时间】:2020-07-18 17:09:45
【问题描述】:
我的应用程序被拆分为 多个微服务,它们在 heroku dynos 上运行(它们无法访问彼此的文件)。有时,有多个微服务使用一个集合。因此,这两个微服务都需要相应的 mongoose 架构。
但是,并非两个微服务都需要 full 架构。例如,微服务 A 需要完整的架构,而微服务 B 只需要该架构的几个字段。
微服务 A 中的示例架构:
var AccountSchema = mongoose.Schema({
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
phone: { type: String, required: true, unique: true },
forename: { type: String, required: true },
surname: { type: String, required: true },
middleInitals: { type: String, required: false },
failedLoginAttempts: { type: Number, required: true, default: 0 },
lockUntil: { type: Number },
createdAt: { type: Date, default: Date.now }
})
微服务 B 中的示例架构:
var AccountSchema = mongoose.Schema({
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
failedLoginAttempts: { type: Number, required: true, default: 0 },
lockUntil: { type: Number },
createdAt: { type: Date, default: Date.now }
})
我的方法
我会继续在每个微服务中创建一个新模式,只包含所需的字段。但是不知道当多个微服务注册一个新的schema到MongoDB数据库时会不会有什么问题?例如,两个微服务都会尝试为 unique 字段创建索引。会有性能问题吗?
有没有人可以使用不同的方法?这甚至是一种有效的方法吗?
提前致谢:)
【问题讨论】:
标签: node.js mongodb mongoose microservices mongoose-schema