唯一可以成功的方法是:
eureka:
instance:
#注册时使用ip而不是主机名
prefer-ip-address: true
# 指定此客户端的ip
ip-address: [IPv6地址]
上面方法缺点是,多节点时,每个节点都要去配不同的IP地址,很麻烦!
于是我曾试图在bootstrap.yml中配置如下偏好来获取IPv6地址(eureka使用spring cloud的InetUtils.java的findFirstNonLoopbackAddress()方法来获取IP地址):
spring:
cloud:
inetutils:
preferred-networks:
- 2001.* # 某网段的IPV6地址的正则
然后发现怎么整都注册不上IPv6地址!最后扒拉了一下InetUtils.java的findFirstNonLoopbackAddress()方法的源码,才发现源码中直接匹配IPv4地址,忽略了IPv6地址,呵呵!