【问题标题】:Best practice to communicate with Elastic in an application在应用程序中与 Elastic 通信的最佳实践
【发布时间】:2017-03-27 06:56:13
【问题描述】:

这将是我第一次在生产环境中使用 Elastic。

对于数据库,我使用存储库模式,例如IOrderRepositoryIFacetRepository 的具体类使用 SQL 和 Mongo 驱动程序与 db 通信。

应用程序将从 Elastic 获取所有产品,我使用 Elastic REST Api 获取数据。

在代码库中表示弹性提供者(?)的最佳实践是什么?

我可以继续使用存储库模式,并创建使用ElasticClientProductRepository 并进行http 调用,但我觉得这不是一个完美的解决方案。

我也无法创建ProductService,因为我不希望代码中有任何业务。 单一职责就是从 elastic 获取产品,仅此而已。

可能mediator pattern是正确的实现方式。

你有什么建议?

【问题讨论】:

    标签: oop elasticsearch design-patterns mediator


    【解决方案1】:

    我会选择在内部使用ElasticClientProductRepository

    • Repository 是数据库的接口,它的客户不需要知道它的实现是否与关系数据库、MongoDB 或 Elasticsearch 通信。这正是您通过创建 ProductRepository 类所要实现的。
    • 如果将来您从 Elasticsearch 迁移到另一个数据库,例如 DynamoDB,您只需更改 ProductRepository,它的客户不会在意。

    小心中介者模式,因为随着时间的推移,你可能会得到上帝对象。

    【讨论】:

      猜你喜欢
      • 2021-08-11
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 2010-11-03
      • 2017-03-18
      • 2012-04-18
      相关资源
      最近更新 更多