在嵌入模式下运行Elasticsearch生产群集

时间:2015-03-17 19:04:16

标签: java spring-mvc elasticsearch

我一直致力于使用Spring MVC和ElasticSearch作为运营数据后端存储的消息传递webapp。我们正在使用传统方法,我们正在使用无状态应用服务器并对其进行群集,同时使用Hazelcast保持一些共享状态。 ElasticSearch集群是独立的,可通过传输客户端访问。

我遇到了一些使用Node客户端的例子,发现我们可以使用ElasticSearch对应用服务器进行集群。然后,每个节点都能够提供REST服务以及存储运营数据。我运行了一个包含4个节点的小集群,它似乎工作正常。

以这种方式使用ElasticSearch是否存在一些缺陷?有人在生产中运行这样的设置吗?似乎关于这个主题的所有文章和帖子都使用嵌入式服务器而不是生产部署来运行集成测试。

1 个答案:

答案 0 :(得分:1)

是的,存在陷阱:

  • 您是否确定每次重新启动应用时都希望ES实例关闭并重新加入群集? (如果经常部署,可能会失去控制)
  • 由于您的应用程序和ES将共享相同的JVM,因此很难进行微调和监视。

我确定还有其他人可以添加。

由于我在我的webapp中使用了ElasticSearch的嵌入式实例,我建议我不建议在生产中以这种方式使用它,除非你有非常具体的需求。