当前位置: 首页 > news >正文

记录一次微服务连接Nacos异常-errorMsg: Illegal character in authority at index 7:

组件信息

Nacos 2.2.3

SpringCloud微服务

部署环境:centerOS

部署方式:k8s

前言

  • nacos开启鉴权,nacos地址通过变量方式传入服务中
PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.server-addr", "${NACOS_ADDR}");
PropsUtil.setProperty(props, "spring.cloud.nacos.config.server-addr", "${NACOS_ADDR}");
PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.password", "${NACOS_PASSWORD}");
PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.username", "${NACOS_USERNAME}");
PropsUtil.setProperty(props, "spring.cloud.nacos.config.password", "${NACOS_PASSWORD}");
PropsUtil.setProperty(props, "spring.cloud.nacos.config.username", "${NACOS_USERNAME}");
  • k8s在传入${NACOS_ADDR}时先对地址做了base64编码

服务启动异常

下面是服务启动异常的日志

2023-08-23 15:25:53.187 [traceId:] [TID: N/A] ERROR 1 --- [           main] c.a.n.c.a.i.process.HttpLoginProcessor  [getResponse][102]: [NacosClientAuthServiceImpl] login http request failed url: http://****.****.svc.cluster.local:8848
/nacos/v1/auth/users/login, params: {username=nacos}, bodyMap: {password=****}, errorMsg: Illegal character in authority at index 7: http://****.****.svc.cluster.local:8848
/nacos/v1/auth/users/login?username=nacos
2023-08-23 15:25:53.191 [traceId:] [TID: N/A] ERROR 1 --- [naming.security] c.a.n.c.a.i.process.HttpLoginProcessor  [getResponse][102]: [NacosClientAuthServiceImpl] login http request failed url: http://****.****.svc.cluster.local:8848
/nacos/v1/auth/users/login, params: {username=nacos}, bodyMap: {password=*******}, errorMsg: Illegal character in authority at index 7: http://****.****.svc.cluster.local:8848
/nacos/v1/auth/users/login?username=nacos
2023-08-23 15:25:53.198 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.common.remote.client  [lambda$createClient$0][108]: [RpcClientFactory] create a new rpc client of e1146c19-413a-4f6f-8371-60242423f418
2023-08-23 15:25:53.205 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.common.remote.client  [printIfInfoEnabled][63]: [e1146c19-413a-4f6f-8371-60242423f418] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
2023-08-23 15:25:53.206 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.common.remote.client  [printIfInfoEnabled][63]: [e1146c19-413a-4f6f-8371-60242423f418] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
2023-08-23 15:25:53.207 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.common.remote.client  [printIfInfoEnabled][63]: [e1146c19-413a-4f6f-8371-60242423f418] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
2023-08-23 15:25:53.208 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.common.remote.client  [printIfInfoEnabled][63]: [e1146c19-413a-4f6f-8371-60242423f418] Try to connect to server on start up, server: {serverIp = '****.****.svc.cluster.local', server main port = 8848}
2023-08-23 15:25:53.208 [traceId:] [TID: N/A]  INFO 1 --- [           main] c.a.n.c.remote.client.grpc.GrpcClient   [createNewManagedChannel][182]: grpc client connection server:****.****.svc.cluster.local ip,serverPort:9848,grpcTslConfig:{"sslProvider":"","enableTls":false,"mutualAuthEnable":false,"trustAll":false}
2023-08-23 15:25:53.326 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.common.remote.client  [printIfInfoEnabled][63]: [e1146c19-413a-4f6f-8371-60242423f418] Success to connect to server [****.****.svc.cluster.local:8848] on start up, connectionId = 1692775552671_200.0.6.31_37904
2023-08-23 15:25:53.327 [traceId:] [TID: N/A]  INFO 1 --- [t.remote.worker] com.alibaba.nacos.common.remote.client  [printIfInfoEnabled][63]: [e1146c19-413a-4f6f-8371-60242423f418] Notify connected event to listeners.
2023-08-23 15:25:53.327 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.common.remote.client  [printIfInfoEnabled][63]: [e1146c19-413a-4f6f-8371-60242423f418] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
2023-08-23 15:25:53.327 [traceId:] [TID: N/A]  INFO 1 --- [t.remote.worker] com.alibaba.nacos.client.naming         [onConnected][78]: Grpc connection connect
2023-08-23 15:25:53.327 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.common.remote.client  [printIfInfoEnabled][63]: [e1146c19-413a-4f6f-8371-60242423f418] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$253/1690859824
2023-08-23 15:25:54.224 [traceId:] [TID: N/A]  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver     [<init>][58]: Exposing 7 endpoint(s) beneath base path ''
2023-08-23 15:25:54.539 [traceId:] [TID: N/A]  WARN 1 --- [           main] c.n.c.sources.URLConfigurationSource    [<init>][126]: No URLs will be polled as dynamic configuration sources.
2023-08-23 15:25:56.889 [traceId:] [TID: N/A]  INFO 1 --- [           main] com.alibaba.nacos.client.naming         [subscribe][167]: [SUBSCRIBE-SERVICE] service:***, group:DEFAULT_GROUP, clusters:DEFAULT 
2023-08-23 15:25:56.909 [traceId:] [TID: N/A] ERROR 1 --- [           main] c.a.cloud.nacos.discovery.NacosWatch    [start][127]: namingService subscribe failed, properties:NacosDiscoveryProperties{serverAddr='nacos-*****.****.svc.cluster.local:8848
', endpoint='', namespace='test', watchDelay=30000, logName='', service='', weight=1.0, clusterName='DEFAULT', group='DEFAULT_GROUP', namingLoadCacheAtStart='false', metadata={management.endpoints.web.base-path=/, preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='**.**.**.**', networkInterface='', port=-1, secure=false, accessKey='', secretKey='', heartBeatInterval=null, heartBeatTimeout=null, ipDeleteTimeout=null}com.alibaba.nacos.api.exception.NacosException: user not found!at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:359)at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.doSubscribe(NamingGrpcClientProxy.java:311)at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.subscribe(NamingGrpcClientProxy.java:296)at com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate.subscribe(NamingClientProxyDelegate.java:173)at com.alibaba.nacos.client.naming.NacosNamingService.subscribe(NacosNamingService.java:405)at com.alibaba.cloud.nacos.discovery.NacosWatch.start(NacosWatch.java:123)

问题排查

  • 首先通过异常日志com.alibaba.nacos.api.exception.NacosException: user not found!可以看出是服务没有连接到nacos
  • nacos2.2.3是开启鉴权的,所以服务在连接nacos之前肯定先进行登录,调用/nacos/v1/auth/users/login接口
  • 再通过日志找到登录是报错的:[NacosClientAuthServiceImpl] login http request failed url
  • 日志打印出的nacos url是http://****.****.svc.cluster.local:8848
    /nacos/v1/auth/users/login, params: {username=nacos}, bodyMap: {password=****}
  • 且打印出errorMsg日志:errorMsg: Illegal character in authority at index 7: 

问题定位

通过排查过程,通过 errorMsg: Illegal character in authority at index 7: 把问题最终定位到nacos url上; 

前言中已经提到 “k8s在传入${NACOS_ADDR}时先对地址做了base64编码” ,所以把编码之后的地址解析出来发现k8s在编码时多加了换行;

这也是日志打印出nacos地址时,uri和接口地址不在同一行的原因,正确的url地址应该是 http://****.****.svc.cluster.local:8848/nacos/v1/auth/users/login 不会换行;

解决办法

重新对nacos  url 进行正确的base64编码,修改${NACOS_ADDR}的base64值。

结束

至此,nacos连接异常问题解决。

相关文章:

记录一次微服务连接Nacos异常-errorMsg: Illegal character in authority at index 7:

组件信息 Nacos 2.2.3 SpringCloud微服务 部署环境&#xff1a;centerOS 部署方式&#xff1a;k8s 前言 nacos开启鉴权&#xff0c;nacos地址通过变量方式传入服务中 PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.server-addr", "${NACO…...

【Java】反射 之 调用构造方法

调用构造方法 我们通常使用new操作符创建新的实例&#xff1a; Person p new Person();如果通过反射来创建新的实例&#xff0c;可以调用Class提供的newInstance()方法&#xff1a; Person p Person.class.newInstance();调用Class.newInstance()的局限是&#xff0c;它只…...

Hightopo 使用心得(6)- 3D场景环境配置(天空球,雾化,辉光,景深)

在前一篇文章《Hightopo 使用心得&#xff08;5&#xff09;- 动画的实现》中&#xff0c;我们将一个直升机模型放到了3D场景中。同时&#xff0c;还利用动画实现了让该直升机围绕山体巡逻。在这篇文章中&#xff0c;我们将对上一篇的场景进行一些环境上的丰富与美化。让场景更…...

【Python PEP 笔记】201 - 同步迭代 / zip() 函数的使用方法

原文地址&#xff1a;https://peps.python.org/pep-0201/ PDF 地址&#xff1a; 什么是同步迭代 同步迭代就是用 for 一次循环多个序列。 类似于这样的东西&#xff1a; arr1 [1, 2, 3, 4] arr2 [a, b, c, d] for a, b in arr1, arr2:print(a, b)使用 map 实现 for a, b …...

远程控制:用了向日葵控控A2后,我买了BliKVM v4

远程控制电脑的场景很多&#xff0c;比如把办公室电脑的文件发到家里电脑上&#xff0c;但是办公室电脑旁边没人。比如当生产力用的电脑一般都比较重&#xff0c;不可能随时带在身边&#xff0c;偶尔远程操作一下也是很有必要的。比如你的设备在工况恶劣的环境中&#xff0c;你…...

基于swing的火车站订票系统java jsp车票购票管理mysql源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于swing的火车站订票系统 系统有2权限&#xff1a;…...

MAVEN利器:一文带你了解IDEA中如何使用Maven

前言&#xff1a; 强大的构建工具——Maven。作为Java生态系统中的重要组成部分&#xff0c;Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用&#xff0c;Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等…...

R语言15-R语言中的列的分裂与合并长宽数据转换

列的分裂与合并 列的分裂&#xff1a; 使用 separate() 函数将一个包含多个值的列分裂成多个列。 install.packages("tidyr") # 安装 tidyr 包&#xff08;如果尚未安装&#xff09; library(tidyr)data <- data %>%separate(col_name, into c("part1…...

使用Pytorch和OpenCV实现视频人脸替换

“DeepFaceLab”项目已经发布了很长时间了&#xff0c;作为研究的目的&#xff0c;本文将介绍他的原理&#xff0c;并使用Pytorch和OpenCV创建一个简化版本。 本文将分成3个部分&#xff0c;第一部分从两个视频中提取人脸并构建标准人脸数据集。第二部分使用数据集与神经网络一…...

【力扣】202. 快乐数 <哈希>

【力扣】202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 【快乐数】 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。 如果这个过程…...

深度学习4. 循环神经网络 – Recurrent Neural Network | RNN

目录 循环神经网络 – Recurrent Neural Network | RNN 为什么需要 RNN &#xff1f;独特价值是什么&#xff1f; RNN 的基本原理 RNN 的优化算法 RNN 到 LSTM – 长短期记忆网络 从 LSTM 到 GRU RNN 的应用和使用场景 总结 百度百科维基百科 循环神经网络 – Recurre…...

自动驾驶感知传感器标定安装说明

1. 概述 本标定程序为整合现开发的高速车所有标定模块,可实现相机内参标定和激光、相机、前向毫米波 至车辆后轴中心标定,标定参数串联传递并提供可视化工具验证各个模块标定精度。整体标定流程如下,标定顺序为下图前标0-->1-->2-->3,相同编号标定顺序没有强制要求…...

基于JAYA算法优化的BP神经网络(预测应用) - 附代码

基于JAYA算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于JAYA算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.JAYA优化BP神经网络2.1 BP神经网络参数设置2.2 JAYA算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…...

基于单片机串口控制直流电机调速

一、系统方案 (2)本设计采用STC89C5单片机作为主控器&#xff0c;串口控制直流电机调速&#xff0c;串口助手发送1-8&#xff0c;改变电机速度&#xff0c;数码管显示对应速度。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 TMOD0x21;//定…...

Linux(基础篇一)

Linux基础篇 Linux基础篇一1. Linux文件系统与目录结构1.1 Linux文件系统1.2 Linux目录结构 2. VI/VIM编辑器2.1 vi/vim是什么2.2 模式间的转换2.3 一般模式2.4 插入模式2.4.1 进入编辑模式2.4.2 退出编辑模式 2.5 命令模式 3. 网络配置3.1 网络连接模式3.2 修改静态ip3.3 配置…...

小程序如何手动变更会员卡等级

有时候需要商家手动变更会员卡等级&#xff0c;以让会员获取更多的福利和特权。下面就介绍一些小程序手动变更会员卡等级的常见方法和策略。 1. 找到指定的会员卡。在管理员后台->会员管理处&#xff0c;找到需要更改等级的会员卡。也支持对会员卡按卡号、手机号和等级进行…...

Tensorflow2.0搭建网络八股

目录 引言&#xff1a;keras与Tensorflow2.0结合 一、六步法 1.导入头文件&#xff1a;import 2.收集处理训练集和测试集&#xff1a;train, test&#xff1a; 3.描述各层网model tf.keras.models.Sequential&#xff1a; 4.描述使用什么优化反向传播&#xff1a;model.c…...

【安装GPU版本pytorch,torch.cuda.is_available()仍然返回False问题】

TOC 第一步 检查cuda是否安装&#xff0c;CUDA环境变量是否正确设置&#xff0c;比如linux需要设置在PATH&#xff0c;window下环境变量编辑看看&#xff0c;是否有CUDA 第二步&#xff0c;核查python中torch版本 首先查看你环境里的pytorch是否是cuda版本&#xff0c;我这…...

Git 版本控制系统

git相关代码 0、清屏幕&#xff1a;clear 1、查看版本号 git -v2、暂存、更改、提交 3、当前项目下暂存区中有哪些文件 git ls-files4、查看文件状态 git status -s5、暂时存储&#xff0c;可以临时恢复代码内容 git restore 目标文件 //&#xff08;注意&#xff1a;完全…...

70吨服务区生活污水处理设备加工厂家电话

70吨服务区生活污水处理设备加工厂家电话 设备简单说明 调节池 由于来水标高低&#xff0c;无法直接流入地埋式生活污水处理设备&#xff0c;在生化一体化设备前增加集水调节池一座。集水提升池内装有两台潜水提升泵&#xff0c;将集水提升池内的废水提升至一体化污水处理设备。…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...