[nacos] Nacos 3 应用场景及高频问题(FAQ)

news/2024/12/23 19:14:08/文章来源:https://www.cnblogs.com/johnnyzen/p/18401612

场景:指定NACOS注册中心中spring cloud微服务应用的IP

spring:cloud:nacos:discovery:ip: 127.0.0.1

修改完成、并重启服务之后在nacos查看的地址如下:

场景:curl请求NACOS常用功能接口

  • 测试版本
  • nacos-client : 2.0.3
  • nacos-server : 2.1.2
  • 推荐文献
  • https://nacos.io/zh-cn/docs/open-api.html

登录/获取 accessToken

# 获取 accessToken
curl -X POST '127.0.0.1:8848/nacos/v1/auth/login' -d 'username=nacos&password=nacos'

响应内容
{"accessToken":"xxx.xxx.xxxx-xxx-xxx","tokenTtl":86400000,"globalAdmin":false,"username":"read_bdp"}

获取配置

# 获取配置 | NACOS-SERVER 2.1.2 实测
curl -X GET 'https://config.xx.com/nacos/v1/cs/configs?show=all&dataId=application-xx-service.yml&group=XXX_GROUP&tenant=bdp_office&namespaceId=bdp_office&accessToken=xxxxxxx'

服务注册

# 服务注册 | NACOS-SERVER 2.1.2 实测
accessToken="xxxxxxx"
echo "https://nacos-config.xx.com/nacos/v1/ns/instance?port=8848&healthy=true&ip=11.11.11.11&weight=1.0&serviceName=nacos.test.3&encoding=GBK&namespaceId=bigdata_office&accessToken=${accessToken}"
curl -X POST "https://nacos-config.xx.com/nacos/v1/ns/instance?port=8848&healthy=true&ip=11.11.11.11&weight=1.0&serviceName=nacos.test.3&encoding=GBK&namespaceId=bdp_office&accessToken=$accessToken"
  • 关键源码
  • nacos-client : 2.0.3
  • nacos-server : 2.1.2
com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate#registerService--> com.alibaba.nacos.client.naming.remote.NamingClientProxy#registerService--> com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy#registerService@Overridepublic void registerService(String serviceName, String groupName, Instance instance) throws NacosException {NAMING_LOGGER.info("[REGISTER-SERVICE] {} registering service {} with instance {}", namespaceId, serviceName,instance);redoService.cacheInstanceForRedo(serviceName, groupName, instance);doRegisterService(serviceName, groupName, instance);}--> com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy#doRegisterServicepublic void doRegisterService(String serviceName, String groupName, Instance instance) throws NacosException {InstanceRequest request = new InstanceRequest(namespaceId, serviceName, groupName,NamingRemoteConstants.REGISTER_INSTANCE, instance);requestToServer(request, Response.class); // 调用 :NamingGrpcClientProxy#requestToServerredoService.instanceRegistered(serviceName, groupName);}--> com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy#requestToServerprivate <T extends Response> T requestToServer(AbstractNamingRequest request, Class<T> responseClass)throws NacosException {try {request.putAllHeader(getSecurityHeaders());request.putAllHeader(getSpasHeaders(NamingUtils.getGroupedNameOptional(request.getServiceName(), request.getGroupName())));Response response =requestTimeout < 0 ? rpcClient.request(request) : rpcClient.request(request, requestTimeout);if (ResponseCode.SUCCESS.getCode() != response.getResultCode()) {throw new NacosException(response.getErrorCode(), response.getMessage());}if (responseClass.isAssignableFrom(response.getClass())) {return (T) response;}NAMING_LOGGER.error("Server return unexpected response '{}', expected response should be '{}'",response.getClass().getName(), responseClass.getName());} catch (Exception e) {throw new NacosException(NacosException.SERVER_ERROR, "Request nacos server failed: ", e);}throw new NacosException(NacosException.SERVER_ERROR, "Server return invalid response");}
  • 注册成功的响应:

https://nacos-config.xx.com/nacos/v1/ns/instance?port=8848&healthy=true&ip=11.11.11.11&weight=1.0&serviceName=nacos.test.3&encoding=GBK&namespaceId=bdp_office&accessToken=xxxxxxx
关键日志

[TID: N/A] [my-xxl-job-executor] [system] [2024/09/06 11:18:21.248] [INFO ] [main] [NamingGrpcClientProxy] registerService:112__||__[REGISTER-SERVICE] bdp_office registering service my-xxl-job-executor with instance Instance{instanceId='null', ip='192.168.19.181', port=9527, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={management.endpoints.web.base-path=/actuator, preserved.register.source=SPRING_CLOUD}}
[TID: N/A] [my-xxl-job-executor] [system] [2024/09/06 11:18:21.260] [INFO ] [main] [NacosServiceRegistry] register:75__||__nacos registry, BDP_GROUP my-xxl-job-executor-data-distribute 192.168.19.181:9527 register finished
  • 当前用户无服务注册权限的响应: (即 可写权限)

以 NACOS SERVER 2.1.2 为例,此错误发生在 强制启用身份认证之后
{"timestamp":"2024-09-06T10:42:11.602+08:00","status":403,"error":"Forbidden","message":"authorization failed!","path":"/nacos/v1/ns/instance"}

关键日志

...
Caused by: java.lang.reflect.UndeclaredThrowableExceptionat org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:147) ~[spring-core-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:82) ~[spring-cloud-starter-alibaba-nacos-discovery-2.2.7.RELEASE.jar!/:2.2.7.RELEASE]at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:239) ~[spring-cloud-commons-2.2.9.RELEASE.jar!/:2.2.9.RELEASE]at com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration.register(NacosAutoServiceRegistration.java:78) ~[spring-cloud-starter-alibaba-nacos-discovery-2.2.7.RELEASE....
......
Caused by: com.alibaba.nacos.api.exception.NacosException: Request nacos server failed:        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:279) ~[nacos-client-2.0.3.jar!/:?]        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.doRegisterService(NamingGrpcClientProxy.java:129) ~[nacos-client-2.0.3.jar!/:?]        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.registerService(NamingGrpcClientProxy.java:115) ~[nacos-client-2.0.3.jar!/:?]        at com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate.registerService(NamingClientProxyDelegate.java:95) ~[nacos-client-2.0.3.jar!/:?]        at com.alibaba.nacos.client.naming.NacosNamingService.registerInstance(NacosNamingService.java:145) ~[nacos-client-2.0.3.jar!/:?]...
...Caused by: com.alibaba.nacos.api.exception.NacosException: authorization failed!        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:271) ~[nacos-client-2.0.3.jar!/:?]        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.doRegisterService(NamingGrpcClientProxy.java:129) ~[nacos-client-2.0.3.jar!/:?]        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.registerService(NamingGrpcClientProxy.java:115) ~[nacos-client-2.0.3.jar!/:?]        at com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate.registerService(NamingClientProxyDelegate.java:95) ~[nacos-client-2.0.3.jar!/:?]...
...

获取注册的服务列表

protocol="https"
endpoint="config.xxxx.com:443"
username=nacos
password=xxxxxxcurl -X GET "$protocol://$endpoint/nacos/v1/ns/service/list?namespaceId=bigdata_office&pageNo=1&pageSize=5&accessToken=$accessToken"

response

{"count":0,"doms":[]}

X 参考文献

  • Nacos
  • https://nacos.io/zh-cn/docs/open-api.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/793597.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios16.2版本以上mui的picker选择器显示异常的修复方案

问题描述 mui picker ios16.2系统及以上,选择器滚动错误错乱,显示异常但是可以正常选择用多个ios手机测试了,凡是升级到16.2及以上的均会产生这个的问题。使用官方的示例,放到升级到16.2的ios手机上测试,问题同样存在https://www.dcloud.io/hellomui/examples/picker.html…

解决升级到 Delphi 12 后遇到 SQLite 不兼容的问题

今天升级到 Delphi 12 后,编译运行原来的项目,出现“[FireDAC][Phys][SQLite][sqlite3]-303.Capability is not supported”的错误。经过查找文档,发现是FireDAC SQLite 版本更新导致的。RAD Studio 12.0 支持 SQLite 3.42,同时保留了使用 FireDAC 加密(FDE)的 SQLite 3.…

远程下载上传命令(绕过大小限制)

远程下载上传命令(绕过大小限制) python起http服务python3 -m http.server 5003python2 -m SimpleHTTPServer 5003 上传时遇到限制上传大小时: 编码base64:certutil -encode yb.exe 1.txt可以把1.txt拆成三个txt,分块上传后,再使用 copy c:\*txt c:\123.txt //把c盘根目…

[C#基础2/21] C#注释与文件结构

Notion原笔记页面 1. 注释C# 支持两种不同形式的注释。 单行注释以 // 开头,并在该代码行末尾结束。 多行注释以 /* 开头,以 */ 结尾。 下面的代码示例演示了每种注释: // This is a single line comment./* This could be a summary of all thecode thats in this class.Yo…

中位值,不能用平均值

北京平均工资出炉啦!这些职业收入最高! 北京生活 近日,北京人社局发布了 《2024年北京市人力资源市场 薪酬状况报告(二季度)》 咱们打工人赶紧了解一下 北京的薪酬水平 在找工作的时候也好有个参考 北京2024年人力资源市场薪酬状况报告(二季度)8月31日,北京市人社局…

发布页说明(必看)

作为一枚INFJ的大学生,有时候比较忙(呜呜),博客园更新可能不太及时 最新的笔记可以在星途-Notion笔记看到 如果你有好的建议或者学习路线,文章纠正等等balabala,或者想讨论游戏开发相关的技术,亦或是闲聊,欢迎发送邮箱至starrytracesky@outlook.com群星的轨道终将交汇.…

[nacos] Nacos 1 架构与原理

1 NACOS 架构与原理 架构推荐文献https://nacos.io/en-us/docs/architecture.html基本架构逻辑架构服务管理:实现服务CRUD、域名CRUD、服务健康检查、服务权重管理等。 配置管理:实现配置的CRUD、版本管理、灰度管理、监控管理、推送轨迹、聚合数据等。 元数据管理:提供元数…

真人模特失业?AI虚拟试衣一键成图,IDM-VTON下载介绍

在电商行业竞争尤为激烈的当下,除了打价格战外,如何有效的控制成本,是每个从业者都在思考的问题 IDM-VTON是一个AI虚拟换装工具,旨在帮助服装商家解决约拍模特导致的高昂成本问题,只需一张服装图片,就可以生成各种身穿该服装的模特,大大简化了传统的产品展示过程 IDM-VT…

用空间清理调理风13重要物品14别人的杂物15杂乱与风水符号学

13 重要物品 在清理杂物时,别忘了大件东西。你一直讨厌的那件可怕的旧家具、堵塞客厅的三角钢琴、你从来不用的卷起来的地毯、后院生锈的汽车、角落里积满灰尘的十年前瑞士奶酪植物。 有些东西非常大,搬动它们是一项挑战,所以你要学会看穿它们的艺术,就像它们不再存在一样。…

秸秆禁烧烟火识别系统

秸秆禁烧烟火识别系统一旦检测到烟雾,秸秆禁烧识别系统将自动监测监控画面中是否存在秸秆焚烧处理,不用人工干涉。当秸秆禁烧烟火识别系统监测到火苗时,系统会自动报警,通知监控管理中心,提示相关人员及时处理。与此同时,将警报截屏和视频保存到数据表中,自动汇总。秸秆…

Javaweb-DQL-聚合函数

select count(*) from stu;-- 1 select max(math) from stu;-- 2 select min(math) from stu;-- 3 select sum(math) from stu;-- 4 select avg(math) from stu;-- 5 select min(english) from stu;-- 6