试图在t3大型服务器上部署一个项目,并进行自动伸缩。
我的弹性搜索服务与node和react项目部署在同一系统上(没有使用AWS弹性搜索)。
将来会不会面临问题,需要把弹性搜索服务隔离到其他服务器上?
有一个单独的专用服务器来运行Elasticsearch服务器总是很好的,但是由于你使用的是AWS,你可以做一些事情来减少问题。
Elasticsearch是一个有状态的应用程序 与你的应用程序相比 node
和 react
除非你把状态也存储在那里,这不是一个好主意,由于应用程序的无状态性质,自动缩放是非常有用的,因为你可以根据CPU、内存或其他指标按需扩大或缩小实例。
但在Elasticsearch或其他有状态应用的情况下,它变得很棘手,因为当你扩大或缩小实例时,如果在阈值内无法达到,碎片会被重新定位,这可能会导致Elasticsearech集群不平衡。
现在为了尽量减少这些问题。
确保当你根据你的自动缩放策略扩展或缩减实例时,你不会创建一个新的Elasticsearch进程,Elasticsearch进程应该是固定的,并且通过一些人工干预来升级。
如果你必须扩大Elasticsearch集群的规模,那么确保你禁用shard分配以避免前面提到的问题。
这些都是你可能面临的一些已知问题,根据你的配置,可能会有更多的问题,在写答案的时候,我觉得,只要有一个专门的Elasticsearch实例就可以避免这些奇怪的问题。
下面我再补充一下其他答案。
可能还有很多事情需要考虑,但这完全取决于你的应用、预算、SLA等。