gpt4 book ai didi

Azure webapp 到 elasticsearch,有时在 azure 上为 "A connection attempt failed"

转载 作者:行者123 更新时间:2023-12-03 00:21:54 25 4
gpt4 key购买 nike

我在虚拟网络中有一个 Web 应用程序和一个 Elasticsearch 集群。Web 应用程序位于一个 azure 目录上,elasticsearch 集群位于另一个目录/订阅上。由于 bizspark 订阅规则(5 个帐户每个 150 美元),我无法将它们放在同一目录中。

因此,据我所知,我无法通过“指向站点”将 Web 应用程序连接到虚拟网络。因此,我在虚拟网络防火墙中打开了端口 9200 的流量。并且在连接到 Elasticsearch 集群的 Web 应用程序中进行索引和搜索效果非常好。但只是有时?!有时我会收到此错误:

A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond x.x.x.x:9200

有时我也会从同一 webb 应用程序中的网络作业中收到此错误。

是否有什么东西阻止了我与 elasticsearch 的连接?如果我更改网络应用程序的计划(例如从标准 S1 更改为 S1,反之亦然),它会再次开始工作。但过了一段时间,我的增益就被阻止了。

最佳答案

正如马丁·拉曼所写。 SetTcpKeepAlive 就是问题所在。NEST 在其 ConnnectionConfiguration 中使用方法 EnableTcpKeepAlive() 实现了这一点。我不知道什么参数调用EnableTcpKeepAlive。我现在设置的值似乎工作正常。

public static ElasticClient ElasticClient
{
get
{
var uri = new Uri(ConfigurationManager.AppSettings["ElasticSearchUrl"]);
var setting = new ConnectionSettings(uri);
setting.SetDefaultIndex("myIndex");
var connectionConfiguration = new ConnectionConfiguration(uri);
connectionConfiguration.EnableTcpKeepAlive(200000, 200000);
var client = new ElasticClient(setting, new HttpConnection(connectionConfiguration));
return client;
}
}

NEST 的 7.13.0 版本中,EnableTcpKeepAlive位于设置对象上:

var settings = new ConnectionSettings(url);
settings.EnableTcpKeepAlive(TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(1));
client = new ElasticClient(settings);

关于Azure webapp 到 elasticsearch,有时在 azure 上为 "A connection attempt failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30161421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com