【问题标题】:Elasticsearch in microservices architecture微服务架构中的 Elasticsearch
【发布时间】:2018-07-20 09:41:37
【问题描述】:

我正在设计一个系统,其中我们有两个不同的微服务来管理两种不同的数据类型。常见的方法是每个微服务都有一个数据库,但是如果 Elasticsearch 取代了一个数据库,你有什么想法?我应该为每个微服务拥有 Elasticsearch 实例(集群)来声称我的架构漂亮而闪亮,还是一个具有许多索引的实例(集群)可以? 我希望得到诸如“视情况而定”之类的答案,但我仍然很想知道您对此的看法。

【问题讨论】:

    标签: elasticsearch design-patterns microservices


    【解决方案1】:

    即使您使用的是关系数据库,也有其他方法可以实现持久数据封装,而不是为每个服务配置单独的数据库实例。为每个架构设置一个单独的架构是一种替代方案,它仍然可以让您的架构保持“漂亮和闪亮”。私人拥有的桌子也是如此。只要您遵循将事物分开而没有任何跨域依赖或约束的意图,同时设置一些障碍以防止其他微服务团队作弊,您仍然是光明的一面。

    这也适用于 Elasticsearch。我会利用它的多租户功能,只使用索引来分割所有权。考虑到您只有两个用户(微服务),这应该是干净和容易的。您可以考虑为基于角色的索引所有权添加 Elasticsearch Shield 插件,以防止其他团队为获得真正闪亮的解决方案而作弊。使用 Elasticsearch,这变得非常灵活,因为您可以根据每个微服务的负载和数据量来定制索引。

    由于您可以获得所需的封装程度以及特定于服务的配置(通过索引),因此我认为您的第二个选项是可以的,因为它仍然符合架构的意图。

    【讨论】:

      猜你喜欢
      • 2015-12-26
      • 2021-11-02
      • 2017-03-19
      • 2018-05-12
      • 1970-01-01
      • 2014-01-08
      • 2016-11-23
      • 2018-03-29
      相关资源
      最近更新 更多