gpt4 book ai didi

node.js - 如何与多个微服务共享 Mongoose 模型

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:10 25 4
gpt4 key购买 nike

我有一个用户模型,如下所示:

import mongoose from 'mongoose';

const UserSchema = new mongoose.Schema({
name: String,
email: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
},
});

export default mongoose.model('User', UserSchema);

我正在尝试与多个微服务共享此模型,但如何共享?我应该通过 http 公开数据库服务,还是应该在每个服务器中手动创建模型并以这种方式使用它,或者还有其他方法可以做到这一点吗?

最佳答案

跨微服务共享模式是危险的,因为它们可能会变得非常耦合,或者至少不是这样。微服务相互使用数据是正常的,但模型不应该完全导入到另一个微服务中。相反,依赖的微服务应该使用一个子集,即远程模型的本地表示。为此,您应该使用 Anti-corruption layer 。该 ACL 将接收远程模型作为输入,并生成该模型的本地、不可变/只读表示形式作为输出。 ACL 位于微服务的外部边界,即进行远程调用的地方。

另外,分享*schema.js跨微服务的文件会迫使您在所有其他微服务中使用 JavaScript/NodeJS,这是不好的。每个微服务都应该使用最适合它的编程语言。

Should i make a database service exposed over http

数据库是所属微服务私有(private)的。不应该暴露。

关于node.js - 如何与多个微服务共享 Mongoose 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50734807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com