【问题标题】:No alive nodes found in your cluster | connection refused (Docker, PHP)在您的集群中找不到活动节点 |连接被拒绝(Docker,PHP)
【发布时间】:2019-05-14 09:57:49
【问题描述】:

更新信息

dd($clientBuilder->transport->getLastConnection()->getLastRequestInfo());

我可以注销以下内容

    "curl" => array:2 [
      "error" => "Failed to connect to localhost port 30003: Connection refused"

但问题是 Elasticsearch 可用在 localhost:30003 下通过网络浏览器

到达该站点时的示例输出:

{

    "name": "xyz",
    "cluster_name": "docker-cluster",
...
}

我确实配置了主机

        $clientBuilder = ClientBuilder::create()
            ->setHosts(['http://localhost:30003/'])
            ->build();

当我dd($clientBuilder)时,主机设置为localhost:30003

          #serializer: SmartSerializer {#385 …}
          #transportSchema: "http"
          #host: "localhost:30003"
          #path: "/"

再次,服务器已启动并正在运行,我可以通过网络浏览器访问它,但我仍然收到错误消息:

在您的集群中找不到活动节点

  • Elasticsearch 版本: 6.7.0

  • Elasticsearch PHP 版本: 6.7.0(最新)

在我的 docker-compose 文件中,我将端口 30003 映射到 9200

      ports:
        - "30003:9200"

【问题讨论】:

标签: php laravel docker elasticsearch


【解决方案1】:

Elasticsearch 没有导致错误。

cURL 有一个错误 7,这意味着它无法建立连接。

我想出的解决方案如下:

        $clientBuilder = ClientBuilder::create()
            ->setHosts([
                [
                    'host' => 'docker.for.mac.localhost',
                    'port' => '30003'
                ]
            ])
            ->build();

我从 localhost 切换到 docker.for.mac.localhost

这很有帮助,因为我使用的是 docker 容器,并且每个容器都有不同的 ip 地址

【讨论】:

    猜你喜欢
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多