public ElasticClient getElasticSearchClient()
{
ConnectionSettings connectionSettings = new Nest.ConnectionSettings(new Uri("http://localhost:9200"))
.DefaultIndex("myindex")
.DisableDirectStreaming();
ElasticClient client = new ElasticClient(connectionSettings);
//var health = client.Cluster.Health("myindex", a => (a.WaitForStatus(WaitForStatus.Yellow)).Timeout(50));
return client;
}
public void checkElasticsearchIndex()
{
var client = getElasticSearchClient();
var health = this.client.Cluster.Health("myindex", a => (a.WaitForStatus(WaitForStatus.Yellow)));
CountResponse count = client.Count<myobject>();
if (!client.Indices.Exists("myindex").IsValid || count.Count == 0)
{
BulkWriteAllToIndexES(client);
}
}
>
计数操作失败,出现以下错误消息:
OriginalException:ElasticSearch.Net.ElasticSearchClientException:远程服务器返回错误:(503)服务器不可用。调用:状态代码503来自:GET/myindex/_count。ServerError:Type:search_phase_execution_exception原因:“All shards Failed”---->System.Net.WebException:远程服务器返回错误:(503)服务器不可用。
健康状况也会下降:
我的问题:有没有办法等到客户机/集群/节点准备就绪而不得到任何例外?
听起来像是在启动程序的同时启动了Elasticsearch过程,但是Elasticsearch需要比程序更长的时间才能准备好。
如果是这种情况,您可能对使用.NET客户端用于针对ElasticSearch进行集成测试的相同抽象感兴趣。这些抽象从Elasticsearch进程读取输出,以了解它何时准备就绪,并阻塞直到发生为止。它们可以在AppVeyor配置项包提要上使用(计划将来将它们发布到Nuget)。
有一些例子说明了如何使用抽象来升级集群。对于单个节点,类似于
using System;
using Elastic.Managed.Configuration;
using Elastic.Managed.ConsoleWriters;
using Elastic.Managed.FileSystem;
namespace Elastic.Managed.Example
{
class Program
{
static void Main(string[] args)
{
var version = "7.5.1";
var esHome = Environment.ExpandEnvironmentVariables($@"%LOCALAPPDATA%\ElasticManaged\{version}\elasticsearch-{version}");
using (var node = new ElasticsearchNode(version, esHome))
{
node.SubscribeLines(new LineHighlightWriter());
if (!node.WaitForStarted(TimeSpan.FromMinutes(2))) throw new Exception();
// do your work here
}
}
}
}
var plugins = new ElasticsearchPlugins(ElasticsearchPlugin.RepositoryAzure, ElasticsearchPlugin.IngestAttachment);
var config = new EphemeralClusterConfiguration("7.5.1", ClusterFeatures.XPack, plugins, numberOfNodes: 1);
using (var cluster = new EphemeralCluster(config))
{
cluster.Start();
var nodes = cluster.NodesUris();
var connectionPool = new StaticConnectionPool(nodes);
var settings = new ConnectionSettings(connectionPool).EnableDebugMode();
var client = new ElasticClient(settings);
Console.Write(client.CatPlugins().DebugInformation);
}
问题内容: 我是Jetty的新手,我尝试在此处运行示例程序“ http://www.codeproject.com/Articles/128145/Run- Jetty-Web-Server-Within-Your- Application ”,但我收到了错误消息我的页面“ http:// localhost:8585 / runJetty / ” 我从Eclipse获取的错误日志: 我的xml文
首先,我在google和statckoverflow中尝试了很多,但还是失败了。我希望能帮助我。谢谢你。 当从我的WebClient调用WCF服务时,我收到以下错误。 注意2:服务器和Web客户端托管在IIS中。
当我在我的服务器上用wget、curl或python爬行谷歌搜索引擎时,我遇到了一个非常奇怪的问题。Google将我重定向到以[ipv4 | ipv6]开头的地址。谷歌。fr/抱歉/索引重定向。。。最后发送503错误,服务不可用。。。 有时抓取工作正常,有时不是在白天,我尝试了几乎所有可能的方法:强制ipv4/ipv6而不是主机名、引用者、用户代理、vpn、. com/. fr/、代理和tor,.
问题内容: 我一直在使用亚马逊的产品广告API来生成包含给定书籍价格的网址。我生成的一个网址如下: http://www.amazon.com/gp/offer- listing/0415376327%3FSubscriptionId%3DAKIAJZY2VTI5JQ66K7QQ%26tag%3Damaztest04-20%26linkCode%3Dxm2%26camp%3D2025%26crea
我正在尝试使用docker-compose和jwilder/nginx-proxy以及letsencrypt companion构建一个web应用程序,但是当我尝试时,nginx向我抛出一个503错误。 我的web应用程序是用react构建的,我制作了这个Dockerfile来构建容器映像: 这是此映像使用的nginx.config: web应用程序映像工作良好,我可以打开它,如果我只运行这个。问