1

我正在开发一个 ASP.NET MVC 4 商务网站,但由于我的背景是使用 HTML/CSS/Javascript 和使用 XNA 的 C# 的前端 Web 开发,所有这些服务器和数据库业务都在我头上。

目前该站点使用带有 NEST 的弹性搜索索引来执行产品搜索,因为产品数据库很大,我喜欢弹性搜索提供的智能查询。这一切都适用于我的本地测试环境。

我的问题是:将您的弹性搜索客户端和索引存储在与实际站点不同的主机上通常是一个好主意,还是可以将它放在同一台服务器上?
我知道这里存在空间问题,但我听说弹性搜索查询也会占用服务器资源,这些资源可以更好地用于处理其他任务,比如即将到来的大量付款?

4

1 回答 1

2

这实际上取决于您的负载、数据和当前服务器。您的网站上有多少用户?你的索引有多大?您当前的服务器有多强大?

将 elasticsearch 放在单独的机器上通常是最佳实践,甚至不止一台机器,以便充分利用其分布式特性。例如,对于两台机器,您可以在它们上分配分片并配置一个副本(默认值),以便每台机器都包含数据的完整副本。如果负载增加,您可以随时向集群添加新节点,只要您分配了足够的分片(通常的做法是稍微过度分配分片)。

另一方面,我还在 Java 应用程序中使用了它,您可以在我最近写的这篇文章中看到。

于 2012-10-16T16:37:52.973 回答