微服务:如何拆分我的应用程序

时间:2018-11-06 21:13:11

标签: spring-boot jpa microservices

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

我的课程是:

File:树中的文件。 (不同的子类,例如Folder,Card,但这在这里并不重要)

Tag:文件的分类标记

文件注释:对文件的评论

User:应用程序的用户。

AccessRight:具有不同权限(例如读取,写入,管理,superAdmin)的不同用户的文件访问权限。

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

我的旧应用程序使用JavaEE和JPA,这些实体位于同一包中。 我现在将使用Spring Boot,现在仍然使用JPA,但是对于微服务而言,使用JPA随附的注释来定义实体之间的差异关系似乎更为棘手,尤其是当模型分为多个微服务时。

这是我的差异类之间的关系。

AccessRight:File和User之间具有right属性的ManyToMany关系。使用JPA,我需要一个带有@IdClass的特殊类来做到这一点。

文件和标签:ManyToMany关系。

FileNote:File和User之间的ManyToMany关系以及其他属性,例如note(在[0-5]之间)和注释。

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

我的申请在这里http://vps603552.ovh.net/ShareUrDoc/root.xhtml可用 它仍在建设中,但您可以使用登录名:test,密码:pass进行连接。

这是一个仅用于教程URL的书签应用程序,允许用户对“其他人”文件夹进行调查。用户还可以将任何用户的文件夹链接到自己的树中,允许其他用户管理他们选择的文件夹,等等。

connexion

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

admin files

这是一个github存储库,其中包含我在此描述的类,我仅保留了必不可少的内容。

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

感谢您的建议。

0 个答案:

没有答案