【问题标题】:Mechanisms for response aggregation in event sourcing based microservices基于事件溯源的微服务中的响应聚合机制
【发布时间】:2019-07-13 08:51:31
【问题描述】:

在实施基于事件溯源的微服务时,我们遇到的主要问题之一是聚合响应数据。例如,我们可能有两个实体,例如学校和学生。一个微服务可能负责处理与学校相关的业务逻辑,而另一个可能负责处理学生。

现在,如果有人通过 REST 端点进行查询并询问特定学生,他们可能会期望学校和学生的详细信息,那么对我来说唯一已知的方法如下。

  1. 使用服务链之类的东西。一个示例是 Api-Gateway 在向多个微服务发出多个请求后聚合响应。

  2. 在所有服务中复制所有内容。本质上,数据会被复制。

  3. 让服务相互调用以获得那些额外的信息。该解决方案有效,但难以扩展,并且违背了使用事件溯源的基本理念。

我的问题是,还有什么其他方法可以做到这一点?

【问题讨论】:

  • “本质上,数据会被复制”曾几何时,这被称为缓存。这并不被认为是一件坏事。
  • 您可能需要根据您的事件创建物化视图来查询数据。

标签: microservices event-sourcing


【解决方案1】:

更好的方法是创建一个单独的报告/搜索服务,该服务聚合来自这两个服务的数据。例如使用 ElasticSearch 或 SOLR 实现。这现在允许用户跨多个服务和聚合进行搜索和查询。

当然,它最终会保持一致,但我怀疑这是个问题。这样可以更好地分离关注点,同时为用户提供良好的搜索体验。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 2022-01-12
    • 2018-10-03
    • 2023-03-14
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多