Consul 注册的服务地址变成了 127.0.1.1

2024-05-12 12:52

本文主要是介绍Consul 注册的服务地址变成了 127.0.1.1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题

我们的服务一直用 Consul 作为注册中心,在 AWS 和 阿里云上使用的时候,没出现过问题。最近把一些服务迁到腾讯云的时候,遇到一个问题:注册的服务地址都是 127.0.1.1。

127.0.1.1 这个地址我们平时遇到的比较少,这个地址和 127.0.0.1 一样,也是个本地环回地址。

先看看问题。

用 API 看一下服务注册详情:

curl -XGET 127.0.0.1:8500/v1/agent/services

这会列出所有已注册服务的详细信息,每个服务的信息如下所示。

{"AP-USDT-0": {"ID": "AP-0","Service": "AP-0","Tags": [],"Meta": {"TIMESTAMP": "1715337108416"},"Port": 9093,"Address": "127.0.1.1","TaggedAddresses": {"lan_ipv4": {"Address": "127.0.1.1","Port": 9093},"wan_ipv4": {"Address": "127.0.1.1","Port": 9093}},"Weights": {"Passing": 1,"Warning": 1},"EnableTagOverride": false}
}

比较重要的字段包括服务 ID,服务地址 Address,服务端口 Port。这里可以看到远程服务器注册的服务地址是 「127.0.1.1」。这样的话,访问这个服务的「其他服务」获取到的地址是变成了本地地址,无法访问服务。

服务取到「127.0.1.1」这个地址,先查看一下 /etc/hosts 文件,打开以后,发现有这样两条记录:

127.0.1.1 localhost.localdomain VM-0-12-ubuntu
127.0.0.1 localhost

这里就找到问题了,hosts 第一条记录就是「127.0.1.1」,如果把这条记录注释或者删除是不是就好了?

在这之前,先要把之前注册的无效服务删除。

Consul 删除某个服务

Consul 删除服务有两种方式,一种是用 API,一种是用命令行。

-- 使用 API 删除服务
curl -XPUT "http://10.0.0.12:8500/v1/agent/service/deregister/service-id"-- 使用命令行删除服务
consul services deregister -id=$id

上面的两种方式,每次都只能删除一条记录,如果要删除所有服务,可以使用下面的命令。

consul catalog services | awk '{print $1}' | while read service; doconsul services deregister -id=$service
done

问题解决

把无效服务删除,修改完 /etc/hosts 文件之后,重启服务,再次查看服务。

curl -XGET 127.0.0.1:8500/v1/agent/services

这次服务注册已经没有问题了,服务注册了正确的地址。

{"AP-USDT-0": {"ID": "AP-0","Service": "AP-0","Tags": [],"Meta": {"TIMESTAMP": "1715337108416"},"Port": 9093,"Address": "10.0.0.13","TaggedAddresses": {"lan_ipv4": {"Address": "10.0.0.13","Port": 9093},"wan_ipv4": {"Address": "10.0.0.13","Port": 9093}},"Weights": {"Passing": 1,"Warning": 1},"EnableTagOverride": false}
}

关于 127.0.1.1

127.0.0.1 通常被用作回环接口的 IP 地址,而 127.0.1.1 是一种替代方案,它在某些 Linux 发行版中用来标识计算机的主机名(hostname),常被用于本地测试和开发环境中,表示本机自己。

在大多数情况下,我们不需要 127.0.1.1。如果您想在本地测试一个应用程序,您可以使用 127.0.0.1 或者 localhost 来访问它。如果您需要在 Linux 中修改主机名(hostname),可以编辑 /etc/hostname 文件并重启网络服务。

总结

不用的云服务商提供的 Linux 服务器,都对系统做了一些定制,即使是同样的系统,例如 Ubuntu,也会有些许的不同。在进行服务迁移的时候,一些小的问题,也需要花费大力气解决。这种细节必须亲身经历才能体会到,也是开发人员的一种无奈。

这篇关于Consul 注册的服务地址变成了 127.0.1.1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/982680

相关文章

Eureka高可用注册中心registered-replicas没有分布式注册中心

自己在学习过程中发现,如果Eureka挂掉了,其他的Client就跑不起来了,那既然是商业项目,还是要处理好这个问题,所以决定用《Spring Cloud微服务实战》(PDF版在全栈技术交流群中自行获取)中说的“高可用注册中心”。 一开始我yml的配置是这样的 server:port: 8761eureka:instance:hostname: 127.0.0.1client:fetch-r

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

开启青龙 Ninja 扫码功能失效后修改成手动填写CK功能【修正Ninja拉库地址】

国内:进入容器docker exec -it qinglong bash #获取ninjagit clone -b main https://ghproxy.com/https://github.com/wjx0428/ninja.git /ql/ninja#安装cd /ql/ninja/backend && pnpm install cp .env.example .env

局域网内vue2 配置本地IP地址访问项目

在日常开发中同事可能需要访问你的前端项目,可以通过配置实现通过ip访问 一.首先找到config文件夹目录下的 index.js文件             将此处的host的值修改为0.0.0.0(即 host: 0.0.0.0) // Various Dev Server settings//host: 'localhost' //将localhost进行替换成 0.0.0.0host:

微服务中RPC的强类型检查与HTTP的弱类型对比

在微服务架构中,服务间的通信是一个至关重要的环节。其中,远程过程调用(RPC)和HTTP是两种最常见的通信方式。虽然它们都能实现服务间的数据交换,但在类型检查方面,RPC的强类型检查和HTTP的弱类型之间有着显著的差异。本文将深入探讨这两种通信方式在类型检查方面的优缺点,以及它们对微服务架构的影响。 一、RPC的强类型检查 RPC的强类型检查是其核心优势之一。在RPC通信中,客户端和服务端都使

中国341城市生态系统服务价值数据集(2000-2020年)

生态系统服务反映了人类直接或者间接从自然生态系统中获得的各种惠益,对支撑和维持人类生存和福祉起着重要基础作用。目前针对全国城市尺度的生态系统服务价值的长期评估还相对较少。我们在Xie等(2017)的静态生态系统服务当量因子表基础上,选取净初级生产力,降水量,生物迁移阻力,土壤侵蚀度和道路密度五个变量,对生态系统供给服务、调节服务、支持服务和文化服务共4大类和11小类的当量因子进行了时空调整,计算了

SpringCloud - 微服务

1、微服务介绍         参考: 微服务百度百科 1.1 概念         微服务(或称微服务架构)是一种云原生架构方法,在单个应用中包含众多松散耦合且可单独部署的小型组件或服务。 这些服务通常拥有自己的技术栈,包括数据库和数据管理模型;通过一个REST API、事件流和消息代理组合彼此通信;以及按照业务能力进行组织,具有通常称为有界上下文的服务分隔线。         微服务特

剑指Offer—编程题56(链表中环的入口地址)

题目:一个链表中包含环,如何找出环的入口结点? 解题思路   可以用两个指针来解决这个问题。先定义两个指针P1和P2指向链表的头结点。如果链表中环有n个结点,指针P1在链表上向前移动n步,然后两个指针以相同的速度向前移动。当第二个指针指向环的入口结点时,第一个指针已经围绕着环走了一圈又回到了入口结点。    剩下的问题就是如何得到环中结点的数目。我们在面试题15的第二个相关题目时用到