首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个Elasticsearch集群的Spring Boot启动非常慢

具有多个Elasticsearch集群的Spring Boot启动非常慢
EN

Stack Overflow用户
提问于 2019-09-10 13:03:27
回答 1查看 1.6K关注 0票数 1

我的Spring Boot App配置了三个Elasticsearch集群(ES v6.4.2)。application.properties文件如下所示(我为每个集群配置了三个主节点,但为了简单起见在这里显示一个):

代码语言:javascript
复制
# Cluster 1
spring.data.elasticsearch.cluster-one.cluster-name=<cluster-1-name>
spring.data.elasticsearch.cluster-one.cluster-nodes=<ip-cluster-1-master-node>:9300

# Cluster 2 
spring.data.elasticsearch.cluster-two.cluster-name=<cluster-2-name>
spring.data.elasticsearch.cluster-two.cluster-nodes=<ip-cluster-2-master-node>:9300

# Cluster 3 
spring.data.elasticsearch.cluster-three.cluster-name=<cluster-3-name>
spring.data.elasticsearch.cluster-three.cluster-nodes=<ip-cluster-3-master-node>:9300

spring.data.elasticsearch.repositories.enabled=true

spring.autoconfigure.exclude = org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration,org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration

对于每个集群,我都有一个单独的配置类,用于设置TransportClient和ElasticsearchTemplate。

现在,当我在本地启动应用程序时,所有三个集群都在我的本地计算机上运行,应用程序正常启动。但是,当我使用三个独立的远程集群将应用程序部署到我的测试环境中时,启动过程需要20分钟。它似乎在为第三个集群加载Elasticsearch插件时挂起。下面是日志输出的摘录:

代码语言:javascript
复制
2019-09-10 00:55:57.607  INFO 27505 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2897 ms
2019-09-10 00:55:57.971  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : no modules loaded
2019-09-10 00:55:57.972  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.index.reindex.ReindexPlugin]
2019-09-10 00:55:57.972  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.join.ParentJoinPlugin]
2019-09-10 00:55:57.972  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.percolator.PercolatorPlugin]
2019-09-10 00:55:57.972  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.script.mustache.MustachePlugin]
2019-09-10 00:55:57.973  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2019-09-10 00:55:59.785  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : no modules loaded
2019-09-10 00:55:59.785  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.index.reindex.ReindexPlugin]
2019-09-10 00:55:59.785  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.join.ParentJoinPlugin]
2019-09-10 00:55:59.785  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.percolator.PercolatorPlugin]
2019-09-10 00:55:59.785  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.script.mustache.MustachePlugin]
2019-09-10 00:55:59.786  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2019-09-10 01:18:30.484  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : no modules loaded
2019-09-10 01:18:30.485  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.index.reindex.ReindexPlugin]
2019-09-10 01:18:30.485  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.join.ParentJoinPlugin]
2019-09-10 01:18:30.485  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.percolator.PercolatorPlugin]
2019-09-10 01:18:30.485  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.script.mustache.MustachePlugin]
2019-09-10 01:18:30.485  INFO 27505 --- [           main] o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.transport.Netty4Plugin]

在这里,您可以看到加载插件的第二个块和第三个块之间的延迟超过20分钟。

当从测试环境中卷曲集群时,它们都是可到达的,并且没有延迟地响应。

延迟的原因可能是什么,或者我应该去哪里寻找?

是否可以或可能建议对所有三个集群只加载一次Elasticsearch插件,如果可以,我如何实现这一点?

编辑:

调试日志显示,主节点无法连接到数据节点:

代码语言:javascript
复制
org.elasticsearch.transport.ConnectTransportException: [data_node_6][<ip-of-data-node>:9300] connect_exception
[...]

2019-09-10 18:49:00.517 DEBUG 26219 --- [main] o.e.c.t.TransportClientNodesService      : failed to connect to discovered node [{data_node_6}{LKdxInfLSyqrGgSOXvTwFw}{YIhin3kpSNupEY1jBlHFVg}{<ip-of-data-node>}{<ip-of-data-node>:9300}{ml.machine_memory=33422729216, ml.max_open_jobs=20, xpack.installed=true, ml.enabled=true}]

但是我的集群是在线的,并且处于绿色状态,所有数据节点都存在。所有节点都配置为网状VPN,端口9200和9300开放用于节点之间的通信。

ES是否需要打开另一个端口进行通信?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-11 02:21:02

出现这个问题是因为我启用了集群嗅探(https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html),它会拾取集群中的所有数据节点,并通过主节点直接与它们通信。

由于我的集群配置为VPN,后台(在VPN之外)只能到达master节点,所以在从master节点获取内部VPN IP(非公网IP)时,后台无法与数据节点通信,导致连接失败。

所以我禁用了集群嗅探,现在一切都像预期的那样工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57864304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档