如何处理typeorm关系"/>
微服务架构中如何处理typeorm关系
如果我有两个或多个 nodejs 服务器连接到与微服务相同的数据库(MySQL),每个服务器都有自己的文件和实体文件夹的 repo,我应该如何使用来自不同项目(微服务)的实体来创建他们之间的关系?
例如,一种微服务用于用户,一种微服务用于帖子。
用户微服务实体:
@Entity()
class User {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({unique: true})
email: string;
@OneToMany(() => Post, post => post.user)
posts: Post[];
}
posts 微服务实体
class Post {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
subject: string;
@Column({type: 'text'})
body: string
@ManyToOne(() => User, user => user.posts)
user: User;
}
每个实体都应该能够导入另一个实体以建立外键关系,但是,该实体在不同的项目中,因此无法导入。
有什么想法吗?
回答如下:每个微服务必须是自治的。每个微服务都应该解决整个分布式系统中的一个且仅一个步骤。然后,您应该研究事件驱动的微服务和消息队列,例如 Kafka 或 RabbitMQ 方法。
更多推荐
微服务架构中如何处理typeorm关系
发布评论