2121import com .tencent .polaris .api .utils .IPAddressUtils ;
2222import com .tencent .polaris .api .utils .MapUtils ;
2323import com .tencent .polaris .api .utils .StringUtils ;
24+ import com .tencent .polaris .logging .LoggerFactory ;
2425import com .tencent .polaris .metadata .core .constant .MetadataConstants ;
26+ import com .tencent .polaris .metadata .core .constant .TsfMetadataConstants ;
27+ import org .slf4j .Logger ;
2528
2629import java .util .ArrayList ;
2730import java .util .List ;
3437 */
3538public class DiscoveryUtils {
3639
40+ private static final Logger LOG = LoggerFactory .getLogger (DiscoveryUtils .class );
41+
3742 public static ServiceInstances generateIpv6ServiceInstances (ServiceInstances serviceInstances ) {
3843 ServiceKey serviceKey = serviceInstances .getServiceKey ();
3944 Map <String , String > serviceMetadata = serviceInstances .getMetadata ();
@@ -49,11 +54,20 @@ public static ServiceInstances generateIpv6ServiceInstances(ServiceInstances ser
4954 }
5055
5156 static boolean checkIpv6Instance (Instance instance ) {
52- if (MapUtils .isNotEmpty (instance .getMetadata ())
53- && instance .getMetadata ().containsKey (MetadataConstants .ADDRESS_IPV6 )
54- && StringUtils .isNotBlank (instance .getMetadata ().get (MetadataConstants .ADDRESS_IPV6 ))) {
55- return true ;
57+ if (LOG .isDebugEnabled ()) {
58+ LOG .debug ("check instance if ipv6: {}:{} with metadata {}" , instance .getHost (), instance .getPort (), instance .getMetadata ());
59+ } else if (LOG .isTraceEnabled ()) {
60+ LOG .trace ("check instance if ipv6: {}" , instance .toString ());
61+ }
62+
63+ Map <String , String > metadata = instance .getMetadata ();
64+ if (MapUtils .isEmpty (metadata )) {
65+ return IPAddressUtils .checkIpv6Host (instance .getHost ());
5666 }
57- return IPAddressUtils .checkIpv6Host (instance .getHost ());
67+
68+ String ipv6Address = metadata .get (MetadataConstants .ADDRESS_IPV6 );
69+ String tsfIpv6Address = metadata .get (TsfMetadataConstants .TSF_ADDRESS_IPV6 );
70+ return StringUtils .isNotBlank (ipv6Address ) || StringUtils .isNotBlank (tsfIpv6Address )
71+ || IPAddressUtils .checkIpv6Host (instance .getHost ());
5872 }
5973}
0 commit comments