# ============================================================== # Nacos API Examples - 服务注册、发现与元数据管理 # Nacos Server: http://127.0.0.1:8848 # Base Path: /nacos/v1 # 默认用户名/密码: nacos / nacos123456 # ============================================================== # ============================================================== # 一、服务注册 (Service Registration) # ============================================================== # 1.1 注册服务实例 # POST /nacos/v1/ns/instance curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' \ -d 'serverIp=127.0.0.1' \ -d 'serverPort=8082' \ -d 'serviceName=user-service' \ -d 'weight=1.0' \ -d 'enabled=true' \ -d 'healthy=true' \ -d 'ephemeral=true' \ -d 'clusterName=DEFAULT' \ -d 'namespaceId=public' \ -d 'instanceId=127.0.0.1#8082#DEFAULT#user-service#public' # 1.2 注销服务实例 # DELETE /nacos/v1/ns/instance curl -X DELETE 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=user-service&instanceId=127.0.0.1#8082#DEFAULT#user-service#public&clusterName=DEFAULT&namespaceId=public' # 1.3 发送心跳(保活) # PUT /nacos/v1/ns/instance/beat curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance/beat' \ -d 'serviceName=user-service' \ -d 'clusterName=DEFAULT' \ -d 'ip=127.0.0.1' \ -d 'port=8082' \ -d 'beatInterval=5000' # ============================================================== # 二、服务发现 (Service Discovery) # ============================================================== # 2.1 查询服务列表 # GET /nacos/v1/ns/instance/list?serviceName=xxx curl -s 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=user-service&namespaceId=public&clusters=DEFAULT' # 2.2 查询服务详情 # GET /nacos/v1/ns/service/list?pageNo=1&pageSize=10 curl -s 'http://127.0.0.1:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=100&namespaceId=public' # 2.3 查询服务详情(单个服务) # GET /nacos/v1/ns/instance?serviceName=xxx curl -s 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=user-service&namespaceId=public&clusterName=DEFAULT&healthyOnly=true' # 2.4 查询服务元数据 # GET /nacos/v1/ns/serviceMetadata?serviceName=xxx curl -s 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=user-service&namespaceId=public' # ============================================================== # 三、服务元数据管理 (Service Metadata) # ============================================================== # 3.1 更新服务元数据 # PUT /nacos/v1/ns/serviceMetadata curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/serviceMetadata' \ -H 'Content-Type: application/json' \ -d '{ "serviceName": "user-service", "namespaceId": "public", "clusterName": "DEFAULT", "metadata": { "version": "1.0.0", "environment": "prod", "description": "用户服务", "owner": "dev-team", "protocol": "http", "tags": "auth,user,login" }, "protectThreshold": 0.5, "healthChecker": { "type": "TCP" } }' # 3.2 查询服务元数据 # GET /nacos/v1/ns/service?serviceName=xxx curl -s 'http://127.0.0.1:8848/nacos/v1/ns/service?serviceName=user-service&namespaceId=public' # ============================================================== # 四、健康检查配置 (Health Check Configuration) # ============================================================== # 4.1 查询健康检查器类型 # 支持类型: TCP, HTTP, MYSQL, AST curl -s 'http://127.0.0.1:8848/nacos/v1/ns/operator/metrics?target=health' # ============================================================== # 五、配置管理 (Config Management) # ============================================================== # 5.1 发布配置 # POST /nacos/v1/cs/configs curl -X POST 'http://127.0.0.1:8848/nacos/v1/cs/configs' \ -d 'dataId=user-service.yaml' \ -d 'group=DEFAULT_GROUP' \ -d 'namespaceId=public' \ -d 'content=spring: datasource: url: jdbc:mysql://127.0.0.1:3307/erp_java username: erp_user password: erp123456' \ -d 'type=yaml' # 5.2 查询配置 # GET /nacos/v1/cs/configs?dataId=xxx&group=xxx curl -s 'http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=user-service.yaml&group=DEFAULT_GROUP&namespaceId=public' # 5.3 删除配置 # DELETE /nacos/v1/cs/configs curl -X DELETE 'http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=user-service.yaml&group=DEFAULT_GROUP&namespaceId=public' # 5.4 监听配置变化 # POST /nacos/v1/cs/configs/listener curl -X POST 'http://127.0.0.1:8848/nacos/v1/cs/configs/listener' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'Listening-Configs=dataId=user-service.yaml&group=DEFAULT_GROUP&namespaceId=public&contentMD5=xxx' # ============================================================== # 六、命名空间管理 (Namespace) # ============================================================== # 6.1 创建命名空间 # POST /nacos/v1/console/namespace curl -X POST 'http://127.0.0.1:8848/nacos/v1/console/namespace' \ -d 'customNamespaceId=dev' \ -d 'namespaceName=开发环境' \ -d 'namespaceDesc=开发测试环境' # 6.2 查询命名空间列表 # GET /nacos/v1/console/namespaces curl -s 'http://127.0.0.1:8848/nacos/v1/console/namespaces' # ============================================================== # 七、集群管理 (Cluster) # ============================================================== # 7.1 查询集群节点列表 # GET /nacos/v1/ns/operator/servers curl -s 'http://127.0.0.1:8848/nacos/v1/ns/operator/servers?namespaceId=public' # 7.2 查询当前节点Leader状态 curl -s 'http://127.0.0.1:8848/nacos/v1/ns/raft/leader' # 7.3 健康检查 curl -s 'http://127.0.0.1:8848/nacos/v1/console/health/readiness' curl -s 'http://127.0.0.1:8848/nacos/v1/console/health/liveness'