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

这篇具有很好参考价值的文章主要介绍了记录一次微服务连接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连接异常问题解决。文章来源地址https://www.toymoban.com/news/detail-674512.html

到了这里,关于记录一次微服务连接Nacos异常-errorMsg: Illegal character in authority at index 7:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • clickhouse一次异常排查记录

    clickhouse中报错 关闭了自启动,删了status,重启了clickhouse还是报错 1,排查定时执行的脚本日志(每小时第5分钟执行) INSERT INTO quality0529.previously_reported_urls (url) SELECT url FROM quality0529.hourly_data_view WHERE findUrlListLastTime = now() - INTERVAL 1 HOUR GROUP BY url 2,查看ck执行异常详细信息统计

    2024年02月11日
    浏览(46)
  • 记录nacos一次踩坑经历,报错 403 authorization failed! unknown user

    本人在学习springcloud alibaba时配置nacos的时候,如果未开启权限认证是正常的 nacos server中的配置: 代码中服务发现配置: nacos server中客户端管理页面中的配置: 项目启动类: 项目启动后可以正常读取到结果 接下来就恶心了,开启权限,修改nacos server中application.properties文件中(这里修改

    2024年02月06日
    浏览(51)
  • 记录一次:Winform的控件的Visible属性异常问题

    有一次同事找到我,说以下代码中:btnPlanAppend控件:客户电脑显示正常、开发者电脑调试时无法显示 btnAppend可以在界面中显示出来 btnPlanAppend控件在界面上就是不显示 SajetCommon.CheckEnabled(\\\"INSERT\\\", sPrivilege)方法的返回结果:true; btnAppend控件也能正常显示 调试到这一行(btnPlanA

    2024年02月08日
    浏览(68)
  • 记一次 MySQL 主从同步异常的排查记录,百转千回

    你好,我是悟空。 这是悟空的第 183 篇原创文章 官网:www.passjava.cn 本文主要内容如下: 最近项目的测试环境遇到一个主备同步的问题: 备库的同步线程停止了,无法同步主库的数据更改。 备库报错如下: 完整的错误信息: 上面的报错信息是什么意思呢? 翻译一下就是主

    2023年04月17日
    浏览(79)
  • 【复盘】记录一次类型不一致导致的Kafka消费异常问题

    业务主要是通过A系统向B系统写入Kafka,然后B系统消费Kafka 将结果写到Kafka中,A进行消费最终结果。 在整个流程中,A写入Kafka会写入一张 record1表记录,然后在A消费最终结果的时候也记录一张record2表。主要改动的话 只是B系统内进行写入数据,但是没有想到用的同一个Map导致

    2024年02月16日
    浏览(37)
  • 记录一次使用unordered_set插入数据异常的问题

    问题和 unordered_set 有关,相关代码如下: 这些代码作为so提供给 程序A 调用,但是程序执行过程中发现,defined_task_variable 插入值后,printSet()方法应该遍历defined_task_variable,打印出其内部数据的,但实际上其打印出来的都是(null),且只在arm平台出现,且必现,但x86一切正常 相

    2024年04月08日
    浏览(46)
  • 记录一次解决数据库连接池连接泄露BUG

    系统并发请求,系统停滞无法使用,所有接口都是无法与后端进行交互的状态,系统并没有宕机 插入分数方法 涉及插入表ABCD 加了声明式事务 查询分数方法 涉及表ABCD 因为代码不是我写的,一开始我就是怀疑是死锁导致的BUG,然后我用Jconsole,去检测一下死锁,并没有发现死

    2024年02月13日
    浏览(46)
  • 错误记录-MariaDB连接异常

    C#,VS2022,mariadb-10.11.5-winx64,using MySql.Data.MySqlClient; 在执行connection.Open()时抛出异常:System.InvalidCastException:“Object cannot be cast from DBNull to other types.” By MaQaQ 2023-11-22 MySql.Data 加载排序规则的方法假定“id\\\"列的值不为空,而从 10.10 版本开始,MariaDB 将“id”列切换为\\\"Allow Null\\\",

    2024年02月05日
    浏览(35)
  • 记录一次.NET6环境使用Visual Studio 2022 V17.6.2版本的异常

    C#开发环境Visual Studio 2022 V17.6.2版本。 .NET 6.0 系统是Blazor Server框架的系统页面,在使用Visual Studio 2022 V17.6.2版本编译后,执行出现: 先使用了Visual Studio 2022 V17.4.0版本编译后可以正常。 经过分析:Visual Studio 2022 V17.4.0还在使用的目标框架为:.NET 6.0,Visual Studio 2022 V17.6.2版本的

    2024年02月08日
    浏览(64)
  • 【踩坑日志】SpringBoot读取nacos配置信息并提取信息中的IP地址(配置属性解析异常+排错记录)

    缘起 :项目需读取nacos中动态的TDengine数据库连接信息并提取IP,一个并不复杂的操作,但作为一个nacos知识浅薄的菜鸡,我愣是捯饬了几个小时……惭愧惭愧…… 异常代码 报错信息 报错核心: Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Coul

    2024年01月19日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包