最佳管理微服务依赖关系



我需要一些关于如何最好地管理微服务及其依赖关系的建议。

假设我有一个微服务"页面",它通过创建/删除/编辑页面的操作来管理文章页面。

假设我在上面构建了一个微服务"books",它管理页面集合,具有添加/删除/编辑页面的操作,这些操作调用页面服务的下游端点。

如果我想构建另一个需要编辑书籍中某个页面的微服务,最好直接调用书籍或页面的编辑页面端点吗?

我的经验法则:

微服务只允许返回他管理的Domain对象。

因此,PageService只会返回Pages,而不会返回Books。这些书籍由BookService管理,BookService本身从不返回Pages。PageService可以通过链接到任意页面中BookService中的图书来引用图书。通过这种方式,你可以实现BookService只需要关心书籍,如果这些书籍被链接或嵌入到页面中,这不是它的问题,因为这就是PageService的作用。

管理还意味着只有BookService的一个实例可以编辑或修改图书。甚至不是一个简单的DB-SCRIPT。

当然,这只是一条经验法则,细节中有很多乐趣,但它应该给你一张照片。

最好直接调用页面的编辑微服务。

如果"books"可能需要协调除编辑页面之外的其他事情,我会选择调用"books"微服务-将此信息传递给其他微服务。否则,如果不需要编排,它可以直接调用"页面"微服务的公开API。

最新更新