首页 > 解决方案 > 微服务:如何拆分我的应用程序

问题描述

我正在考虑将我的应用程序拆分为微服务,但我不确定哪一部分应该有自己的微服务,或者我是否应该将几个部分重新组合成同一个。

我的课程是:

文件:树中的文件。(不同的子类,如文件夹、卡片,但在这里并不重要)

Tag : 文件的分类标签

文件注释:对文件的评论

用户:应用程序的用户。

AccessRight : 不同用户对文件的访问权限,具有不同的权限,如读、写、管理员、超级管理员。

我很确定用户逻辑应该有它自己的微服务,但是我应该将其他的重新组合成一个独特的微服务还是拆分它们?

我的旧应用程序使用 JavaEE 和 JPA,实体在同一个包中。我现在将使用 Spring Boot 并且仍然使用 JPA,但是对于微服务,使用 JPA 提供的注释来定义实体之间的差异关系似乎更加棘手,尤其是在模型被拆分为多个微服务的情况下。

这是我的不同班级之间的关系。

AccessRight :文件和用户之间的多对多关系,具有正确的属性。使用 JPA,我需要一个带有 @IdClass 的特殊类来做到这一点。

文件和标签:多对多关系。

FileNote :文件和用户之间的多对多关系以及其他属性,例如注释(在 [0-5] 之间)和评论。

用户和文件:定义文件所有者的简单 oneToMany 关系。

我的应用程序在这里可用http://vps603552.ovh.net/ShareUrDoc/root.xhtml 它仍在建设中,但您可以连接登录:测试,密码:通过。

它是一个仅用于教程 url 的书签应用程序,允许用户研究其他人的文件夹。用户还可以将任何用户的文件夹链接到他们自己的树中,允许其他用户管理他们选择的文件夹等等。

连接

比您可以激活管理模式来管理文件。

管理文件

这是一个 github 存储库,其中包含我在此处描述的类,我只保留了必要的。

https://github.com/kaizokun/kaizokun-shareUrDocModelDemo/tree/master/shareurdoc-model

感谢您的建议。

标签: spring-bootjpamicroservices

解决方案


推荐阅读