php-nacos
php-nacos copied to clipboard
获取服务下的健康的实例列表
NacosConfig::setHost("http://127.0.0.1:8848/"); // 配置中心地址
//$healthyOnly值需要传递字符串的true,否则会导致传参的时候被http_build_query转为1导致nacos服务不识别此参数
$instances = NamingClient::listInstances("test-service", "true");
nacos api地址: https://nacos.io/zh-cn/docs/open-api.html
如果获取不到健康实例请注意下
php中 http_build_query会将array中boolean中true值转化成1,false转化成0.
src/alibaba/nacos/request/naming/NamingRequest.php文件中获取属性时对boolean值进行调整
$properties = ReflectionUtil::getProperties($this);
foreach ($properties as $propertyName => $propertyValue) {
if (in_array($propertyName, $this->standaloneParameterList)) {
// 忽略这些参数
} else {
//为避免布尔值传递的过程中转为整型,对boolean值进行强转字符串处理
//php中 http_build_query会将array中boolean中true值转化成1,false转化成0.
if (is_bool($propertyValue)) {
if ($propertyValue === true) {
$propertyValue = "true";
} else {
$propertyValue = "false";
}
}
$parameterList[$propertyName] = $propertyValue;
}
}
if ($this instanceof RegisterInstanceNaming) {
if (NamingConfig::getEphemeral() === true) {
$ephemeral = "true";
} else {
$ephemeral = "false";
}
$parameterList["ephemeral"] = $ephemeral;
}