架构微服务 Spring Boot

Posted

技术标签:

【中文标题】架构微服务 Spring Boot【英文标题】:architecture microservice spring boot 【发布时间】:2020-03-11 18:05:39 【问题描述】:

我正在使用 Spring Cloud(微服务),并且已经使用 JWT 令牌实现了安全性。 在我的安全应用程序中,我有像 User、Role 和 UserRole 这样的实体。 所以每个请求首先到达 ZOOL 服务并调用身份验证服务,身份验证服务创建/返回 JWT 令牌。 此外,我还有另一个需要 JWT 令牌的微服务休息应用程序(问题应用程序)。 在 Questions-app 我有一个包含 authorId 字段的 Question 实体。

@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;

现在,我不清楚,设置 authorId long 类型是否正确,或者我应该在问题应用程序中创建 User、Role、UserRole 实体(只是从 AUTH 项目中简单复制)并像这样设置“作者”列

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

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

【问题讨论】:

我不清楚这与 JWT 或一般安全性有什么关系。也许您想添加与 jpa 相关的标签?​​ 【参考方案1】:

如果您有所有这些微服务的通用数据库,并且您需要基于问题 ID 的用户相关信息。

那么你可以直接对用户进行@OneToOne而不是对用户进行另一个数据库调用。

根据您的问题,最好选择 2 个选项。

【讨论】:

以上是关于架构微服务 Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot微服务架构和大数据

微服务架构实践 - 你只懂docker与spring boot就够了吗?

2020年五一后总结的最新微服务架构面试:Dubbo+Spring Boot+Spring Cloud

Java高级教程 Java微服务架构(Spring Boot + Spring Cloud)

Spring-Boot:Spring Cloud构建微服务架构

物联网架构成长之路(30)-Spring Boot Admin微服务WebUI监控