类似问题描述
1.连接热点的电脑能注册到开热点电脑的注册中心,但是网关不能路由到服务实例。
2.微服务注册到到Eureka注册中心的ip不正确,导致网关路由不到具体为服务实例。
3.Eureka注册中心能看到服务实例,但是网关路由不到,获取不到。
具体问题:
A电脑开热点给B电脑,A电脑开启Eureka注册中心和Gateway网关
B电脑的User用户服务注册到A电脑的注册中心上
并且能在http://localhost:2088/eueka上能看到两个服务实例,即Gateway网关和User用户服务
但是通过PostMan调用由Gateway路由的User服务时,报找不了服务实例。
A/B进行 ipconfig
A电脑连接网线(连接网线):
以太网适配器ip: 10.80.1.78
无线局域网适配器ip: 192.168.191.1
B电脑连接网线(没连接网线):
以太网适配器ip: 192.168.242.1
无线局域网适配器ip: 192.168.191.2
且AB均放开所有微服务的端口号,并且能够相互ping通。
上述情况如果AB都使用通过一个路由器或交换机的网线连接,这种局域网环境下,则不存在本文的问题。
本文的问题存在于使用热点来构成局域网而导致的问题。
解决方式
B电脑的User服务修改(或增加)Eureka配置:
eureka:
instance:
prefer-ip-address: false # 默认false
ip-address: 192.168.191.1
ip-address的配置使用的是A的无线局域网适配器ip
,而不是B本机的192.168.191.2
!!!这是因为热点环境导致的,B电脑所发送的任何数据都经由A的无线局域网适配器,可以看做路由器在A电脑里面,B把当做A就能让网关可以路由到User服务。
小坑特此记录,以上。