consul出现no such host问题

consul 同时被 2 个专栏收录
1 篇文章 0 订阅
1 篇文章 0 订阅

consul出现no such host问题

上一篇我们介绍了如何安装consul集群,和consul的基本用法,详见这里

我们使用consul过程中,可能会出现注册的服务能被consul发现,但是它的状态为异常,经过检查,出现的问题为:

Get "http://DESKTOP-9H73JPK:3300/actuator/health": dial tcp: lookup DESKTOP-9H73JPK on 202.201.48.1:53: no such host

如下图所示:

在这里插入图片描述

报错详细如下图:

在这里插入图片描述

出现的问题是什么原因导致的呢?

那我们先看一下我们注册的控制台

2020-11-20 15:57:42.083  INFO 11288 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
2020-11-20 15:57:42.177  INFO 11288 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 3002 (http) with context path ''
2020-11-20 15:57:42.195  INFO 11288 --- [           main] o.s.c.c.s.ConsulServiceRegistry          : Registering service with consul: NewService{id='consul-provider-3002', name='cons
ul-provider', tags=[secure=false], address='DESKTOP-9H73JPK', meta=null, port=3002, enableTagOverride=null, check=Check{script='null', interval='10s', ttl='null', http='http://DESKTO
P-9H73JPK:3002/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null'}, checks=null}
2020-11-20 15:57:42.934  INFO 11288 --- [           main] c.m.c.ConsulProviderApplication          : Started ConsulProviderApplication in 7.105 seconds (JVM running for 7.599)

我们居然发现我们注册的主机的addresshttp出现的DESKTOP-9H73JPK是什么呢,我们将这里的http放到浏览器中,很显然我们访问不同,那么DESKTOP-9H73JPK到底是什么东西呢,actuator进行心跳监控的时候,需要实时查看服务器的状态,大白话就是consul要给你的服务每个30s要打一次电话,用来监控你还好好的,consul要走htt怕请求来调用你这个服务,进入actuator不应该是ip地址嘛?其实DESKTOP-9H73JPK是我们部署服务的host名称,那么怎么解决呢?我们能否告诉consul通过固定的ip来访问呢?答案是可以的。进入我们昨天的服务配置文件。

spring.application.name=consul-provider
server.port=3000
spring.cloud.consul.host=192.168.1.100
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.service-name=consul-provider

在这里里面我们可以加入属性,告诉consul我注册的时候你给我按ip注册我地址。

spring.cloud.consul.discovery.prefer-ip-address=true
spring.cloud.consul.discovery.ip-address=192.168.1.113

其中这两个属性必须是搭配使用,首先设置为设置ip的address为true,再告诉consul的具体地址为192.168.1.113

再次启动服务,首先查看服务注册的后台日志。

2020-11-20 16:00:11.191  INFO 14244 --- [           main] o.s.c.c.s.ConsulServiceRegistry          : Registering service with consul: NewService{id='consul-provider-3002', name='cons
ul-provider', tags=[secure=false], address='192.168.1.113', meta=null, port=3002, enableTagOverride=null, check=Check{script='null', interval='10s', ttl='null', http='http://192.168.
1.113:3002/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null'}, checks=null}
2020-11-20 16:00:11.963  INFO 14244 --- [           main] c.m.c.ConsulProviderApplication          : Started ConsulProviderApplication in 8.237 seconds (JVM running for 8.968)
2020-11-20 16:00:16.550  INFO 14244 --- [nio-3002-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-11-20 16:00:16.551  INFO 14244 --- [nio-3002-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-11-20 16:00:16.557  INFO 14244 --- [nio-3002-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 6 ms

再看consul里面服务的状态,如下图所示:

在这里插入图片描述
自己遇到的问题,自己记录一下!

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值