架构微服务 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的主要内容,如果未能解决你的问题,请参考以下文章
微服务架构实践 - 你只懂docker与spring boot就够了吗?
2020年五一后总结的最新微服务架构面试:Dubbo+Spring Boot+Spring Cloud
Java高级教程 Java微服务架构(Spring Boot + Spring Cloud)