【问题标题】:best managing microservice dependencies最好地管理微服务依赖项
【发布时间】:2018-07-30 11:50:01
【问题描述】:

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

假设我有一个管理文章页面的微服务“页面”,其中包含创建/删除/编辑页面的操作。

假设我在顶部构建了一个管理页面集合的微服务“书籍”,并具有添加/删除/编辑页面的操作,这些页面调用页面服务的下游端点。

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

【问题讨论】:

    标签: microservices


    【解决方案1】:

    我的经验法则:

    一个微服务只允许返回他管理的域对象。

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

    同样管理意味着只有 BookService 的一个实例被允许编辑或修改一本书。甚至不是一个简单的 DB-SCRIPT。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我会选择调用“books”微服务,以防“books”可能需要编排除编辑页面之外的其他事情 - 将此信息传递给其他一些微服务。 否则,如果不需要编排,可以直接调用“pages”微服务暴露的API。

        【讨论】:

          猜你喜欢
          • 2019-05-05
          • 1970-01-01
          • 2016-10-29
          • 2016-11-24
          • 1970-01-01
          • 2015-09-03
          • 2020-05-21
          • 2022-01-08
          • 2021-05-12
          相关资源
          最近更新 更多