架构微服务Spring Boot

de90aj5v  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(264)

我正在使用springcloud(microservices)并使用jwttoken实现安全性。在我的安全应用程序中,我有user、role和userrole这样的实体。所以每个请求首先到达zool服务,它调用身份验证服务,身份验证服务创建/返回jwt令牌。另外,我还有另一个需要jwt令牌的microservicerest应用程序(questions app)。在“问题”应用程序中,我有一个包含authord字段的问题实体。

@Entity
@Table(name="QUESTION")
public class Question {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID", updatable = false, nullable = false)
    private long id;

    @Column(name = "AUTHOR")
    private long authorId;

    @Column(name = "TITLE")
    private String title;
}

现在,我还不清楚,设置authord long type是正确的,还是应该在questions app中创建user、role、userrole实体(只是从auth项目中简单复制),并设置“author”列

@OneToOne
 @JoinColumn(name="AUTHOR")
 private User user;

我知道在第一个选项中,当我需要在网页上显示问题和用户名时,我应该调用2个服务(一个来自问题应用(fetch question),另一个来自auth服务(按作者id获取用户信息),我想知道什么是最佳做法?

0yg35tkg

0yg35tkg1#

如果您拥有所有这些微服务的公共数据库,并且需要基于问题id的用户相关信息。
然后,您可以直接执行 @OneToOne 对用户。
从你的问题来看,最好选择2个选项。

相关问题