具体情况:
1.项目服务显示已经注册成功,但是请求收不到
2.zookeeper也显示项目注册成功,但是没有其他日志了
3.测试请求显示返回500错误
4.注册名字都核对过了,网关路由也核对过了,没得问题,而且其他同事能正常服务注册与发现,就我这边注册显示成功了,访问却好像发现不了服务一样
分析:
1.注册成功了,但是网关分发服务的失败了,可能被网关拦截了?网关找不到服务器?网关报错了?网关问题。
2.注册成功了,但是注册信息错误了。(bingo,我找了两天,才发现是注册信息错误了。。。)
3.查看了zookeeper注册上去的服务的信息,发现注册的地址用了localhost,项目的zookeeper服务在公司服务器上,服务器按这个localhost去找肯定找不到我本地机器启动的服务的,这就是问题所在。
解决:
1.为zoopeeker指定注册ip地址,一般是不需要显示设置的,会自己去运行环境找,不知道为什么我这里就是找错了,所以我们需要显示配置spring.cloud.zookeeper.discovery.instance-host: ${spring.cloud.client.ip-address}
cloud:
zookeeper:
connect-string: 10.10.201.42:2181
# connect-string: localhost:6181
session-timeout: 15000 # 设置会话超时时间为 15000 毫秒
connection-timeout: 10000 # 设置连接超时时间为 10000 毫秒
register: true
enabled: true
retry:
max-attempts: 3
initial-interval: 1000
max-interval: 3000
discovery:
instance-id: iot-lab-app-provider-dev-exam
instance-host: ${spring.cloud.client.ip-address}