php - 在您的集群中找不到活动节点 | 连接被拒绝(Docker,PHP)
问题描述
更新信息
和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();
当 Idd($clientBuilder)
时,主机设置为 localhost:30003
#serializer: SmartSerializer {#385 …}
#transportSchema: "http"
#host: "localhost:30003"
#path: "/"
同样,服务器已启动并正在运行,我可以通过 Web 浏览器访问它,但仍然收到错误消息:
在您的集群中找不到活动节点
弹性搜索版本: 6.7.0
Elasticsearch PHP 版本: 6.7.0(最新)
在我的docker-compose文件中,我将端口 30003 映射到 9200
ports:
- "30003:9200"
解决方案
Elasticsearch没有导致错误。
cURL 出现错误 7,这意味着它无法建立连接。
我想出的解决方案如下:
$clientBuilder = ClientBuilder::create()
->setHosts([
[
'host' => 'docker.for.mac.localhost',
'port' => '30003'
]
])
->build();
我从 localhost 切换到 docker.for.mac.localhost
这很有帮助,因为我使用的是 docker 容器,并且每个容器都有不同的 IP 地址
推荐阅读
- reactjs - 获取数据,然后设置编辑数据的状态
- maven - Azure devops 构建后,SonarCloud 中未显示代码覆盖率
- maven - 如何确定在 pom.xml 中添加插件所需的属性是什么
- symfony5 - Symfony 5 书 RABBITMQ_DSN
- swift - 通用集合上的 Swift 编译器段错误
- reactjs - 反应存储组件的状态,道具不更新
- r - 处理大量行
- python - 如何编写while循环以使其在2个变量获得某些值时停止?(Python)
- sql - 转换之间的左连接导致行数减少
- javascript - Electron-builder 托盘图标未显示(Linux Mint 20、electronjs 11、electron-builder 22)