我正在借助Spring Boot从Java编写的整体中提取微服务。我们计划将整个整体分成几个较小的微服务。
我必须启用整体与新微服务之间的通信,因为它需要新微服务(具有自己的数据库)中的实体来执行某些操作。我想到了公开REST端点,但随后我将不得不复制实体。
可以接受吗? 如果是这样,那么基于整体的REST控制器(应该从微服务中检索实体)应该与存储库放置在同一层? 此解决方案将增加耦合,应避免,是否还有其他方法?
对于您的任何回复以及您认为对本文有帮助的文章,我将不胜感激。预先谢谢你。
答案 0 :(得分:0)
这完全取决于您的用例。没有通用的解决方案,并且完全可以维护放置共享资源的存储库。
如果您对微服务非常严格,它将单独维护实体。传输数据时,您将使用不关心数据结构的中间格式,例如JSON或XML。微服务生活在自己的世界中,只能解决他的用例。如果另一个服务进行了更改,而实体进行了更改,则另一个服务不应受到此更改的影响。每个服务应该只拥有它需要的数据,而其他一切都与他无关。
因此,我不会使用中央存储库,但是如前所述,这里有使用案例,这是要走的路。也许某些特定的端点可以通过解决此问题来帮助您。