详解springcloud nacos使用

1.nacos server安装

  1. 下载 Nacos Server 2.5.1 https://nacos.io/download/nacos-server/?spm=5238cd80.2ef5001f.0.0.3f613b7clM2t6D

部署文档:https://nacos.io/docs/latest/manual/admin/deployment/deployment-standalone/?spm=5238cd80.6a33be36.0.0.25b41e5deZvu7d

2.安装步骤

  1. 使用mysql数据库,刷入nacos sql脚本:
/** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*//******************************************/
/*   表名称 = config_info                  */
/******************************************/
CREATE TABLE `config_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) DEFAULT NULL COMMENT 'group_id',`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',`c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description',`c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage',`effect` varchar(64) DEFAULT NULL COMMENT '配置生效的描述',`type` varchar(64) DEFAULT NULL COMMENT '配置的类型',`c_schema` text COMMENT '配置的模式',`encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';/******************************************/
/*   表名称 = config_info  since 2.5.0                */
/******************************************/
CREATE TABLE `config_info_gray` (`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`src_user` text COMMENT 'src_user',`src_ip` varchar(100) DEFAULT NULL COMMENT 'src_ip',`gmt_create` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_create',`gmt_modified` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_modified',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',`gray_name` varchar(128) NOT NULL COMMENT 'gray_name',`gray_rule` text NOT NULL COMMENT 'gray_rule',`encrypted_data_key` varchar(256) NOT NULL DEFAULT '' COMMENT 'encrypted_data_key',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfogray_datagrouptenantgray` (`data_id`,`group_id`,`tenant_id`,`gray_name`),KEY `idx_dataid_gmt_modified` (`data_id`,`gmt_modified`),KEY `idx_gmt_modified` (`gmt_modified`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='config_info_gray';/******************************************/
/*   表名称 = config_tags_relation         */
/******************************************/
CREATE TABLE `config_tags_relation` (`id` bigint(20) NOT NULL COMMENT 'id',`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',`nid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增长标识',PRIMARY KEY (`nid`),UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';/******************************************/
/*   表名称 = group_capacity               */
/******************************************/
CREATE TABLE `group_capacity` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';/******************************************/
/*   表名称 = his_config_info              */
/******************************************/
CREATE TABLE `his_config_info` (`id` bigint(20) unsigned NOT NULL COMMENT 'id',`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增标识',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',`op_type` char(10) DEFAULT NULL COMMENT 'operation type',`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',`encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥',`publish_type` varchar(50)  DEFAULT 'formal' COMMENT 'publish type gray or formal',`gray_name` varchar(50)  DEFAULT NULL COMMENT 'gray name',`ext_info`  longtext DEFAULT NULL COMMENT 'ext info',PRIMARY KEY (`nid`),KEY `idx_gmt_create` (`gmt_create`),KEY `idx_gmt_modified` (`gmt_modified`),KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';/******************************************/
/*   表名称 = tenant_capacity              */
/******************************************/
CREATE TABLE `tenant_capacity` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';CREATE TABLE `tenant_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`kp` varchar(128) NOT NULL COMMENT 'kp',`tenant_id` varchar(128) default '' COMMENT 'tenant_id',`tenant_name` varchar(128) default '' COMMENT 'tenant_name',`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';CREATE TABLE `users` (`username` varchar(50) NOT NULL PRIMARY KEY COMMENT 'username',`password` varchar(500) NOT NULL COMMENT 'password',`enabled` boolean NOT NULL COMMENT 'enabled'
);CREATE TABLE `roles` (`username` varchar(50) NOT NULL COMMENT 'username',`role` varchar(50) NOT NULL COMMENT 'role',UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);CREATE TABLE `permissions` (`role` varchar(50) NOT NULL COMMENT 'role',`resource` varchar(128) NOT NULL COMMENT 'resource',`action` varchar(8) NOT NULL COMMENT 'action',UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);
  1. 修改${nacos.home}/conf/application.properties文件,增加支持MySQL数据源配置,添加MySQL数据源的url、用户名和密码。
 spring.sql.init.platform=mysql### Count of DB:db.num=1### Connect URL of DB:db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghaidb.user.0=rootdb.password.0=123456
  1. 设置登录账户密码:
#开启鉴权 
nacos.core.auth.enabled=true#设置服务端验证 key
nacos.core.auth.server.identity.key=test
nacos.core.auth.server.identity.value=test#设置默认 token
# The default token (Base64 String):
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

4.启动 nacos server ,windows下执行:

.\startup.cmd -m standalone 或者修改startup.cmd中mode=cluster为standalone 双击启动

  1. 访问地址:
    http://127.0.0.1:8848/nacos
    在这里插入图片描述
    默认用户密码为 nacos nacos
    修改后账户密码 nacos 123456

2.SpringCloud Nacos配置注册中心报错 Could not resolve placeholder xxx in value 原因分析:

springcloud阿里巴巴框架,读取nacos配置中心变量值:
在这里插入图片描述

出现异常错误:
2025-04-10T16:03:43.682+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] c.a.c.n.c.NacosPropertySourceBuilder : Ignore the empty nacos configuration and get it based on dataId[wemedia-oss-nacos] & group[DEFAULT_GROUP]
2025-04-10T16:03:43.689+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] c.a.c.n.c.NacosPropertySourceBuilder : Ignore the empty nacos configuration and get it based on dataId[wemedia-oss-nacos.properties] & group[DEFAULT_GROUP]
2025-04-10T16:03:43.694+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] c.a.c.n.c.NacosPropertySourceBuilder : Ignore the empty nacos configuration and get it based on dataId[wemedia-oss-nacos-dev.properties] & group[DEFAULT_GROUP]
2025-04-10T16:03:43.695+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name=‘bootstrapProperties-wemedia-oss-nacos-dev.properties,DEFAULT_GROUP’}, BootstrapPropertySource {name=‘bootstrapProperties-wemedia-oss-nacos.properties,DEFAULT_GROUP’}, BootstrapPropertySource {name=‘bootstrapProperties-wemedia-oss-nacos,DEFAULT_GROUP’}]
2025-04-10T16:03:43.698+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] c.a.nacos.client.logging.NacosLogging : Load Logback Configuration of Nacos fail, message: Could not initialize Logback Nacos logging from classpath:nacos-logback.xml
2025-04-10T16:03:43.698+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.wemedia.NacosApplication : The following 1 profile is active: “dev”
2025-04-10T16:03:44.034+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=a4be7677-4070-3c92-9fd3-af9028deafd6
2025-04-10T16:03:44.145+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8877 (http)
2025-04-10T16:03:44.151+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2025-04-10T16:03:44.151+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16]
2025-04-10T16:03:44.178+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2025-04-10T16:03:44.178+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 471 ms
2025-04-10T16:03:45.386+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2025-04-10T16:03:46.486+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2025-04-10T16:03:46.495+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path ‘/actuator’
2025-04-10T16:03:46.528+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8877 (http) with context path ‘’
2025-04-10T16:03:46.530+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : initializer namespace from ans.namespace attribute : null
2025-04-10T16:03:46.530+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : initializer namespace from ALIBABA_ALIWARE_NAMESPACE attribute :null
2025-04-10T16:03:46.530+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : initializer namespace from namespace attribute :null
2025-04-10T16:03:46.537+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
2025-04-10T16:03:46.537+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
2025-04-10T16:03:46.701+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : [RpcClientFactory] create a new rpc client of f8596e2c-e91c-4966-a72a-ab099222d79e
2025-04-10T16:03:46.702+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : [f8596e2c-e91c-4966-a72a-ab099222d79e] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
2025-04-10T16:03:46.702+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : [f8596e2c-e91c-4966-a72a-ab099222d79e] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
2025-04-10T16:03:46.702+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : [f8596e2c-e91c-4966-a72a-ab099222d79e] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
2025-04-10T16:03:46.702+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : [f8596e2c-e91c-4966-a72a-ab099222d79e] Try to connect to server on start up, server: {serverIp = ‘127.0.0.1’, server main port = 8848}
2025-04-10T16:03:46.702+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.n.c.remote.client.grpc.GrpcClient : grpc client connection server:127.0.0.1 ip,serverPort:9848,grpcTslConfig:{“sslProvider”:“OPENSSL”,“enableTls”:false,“mutualAuthEnable”:false,“trustAll”:false}
2025-04-10T16:03:46.814+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : [f8596e2c-e91c-4966-a72a-ab099222d79e] Success to connect to server [127.0.0.1:8848] on start up, connectionId = 1744272226706_127.0.0.1_4812
2025-04-10T16:03:46.814+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : [f8596e2c-e91c-4966-a72a-ab099222d79e] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient C o n n e c t R e s e t R e q u e s t H a n d l e r 2025 − 04 − 10 T 16 : 03 : 46.814 + 08 : 00 I N F O 35784 − − − [ w e m e d i a − o s s − n a c o s ] [ m a i n ] c o m . a l i b a b a . n a c o s . c o m m o n . r e m o t e . c l i e n t : [ f 8596 e 2 c − e 91 c − 4966 − a 72 a − a b 099222 d 79 e ] R e g i s t e r s e r v e r p u s h r e q u e s t h a n d l e r : c o m . a l i b a b a . n a c o s . c o m m o n . r e m o t e . c l i e n t . R p c C l i e n t ConnectResetRequestHandler 2025-04-10T16:03:46.814+08:00 INFO 35784 --- [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : [f8596e2c-e91c-4966-a72a-ab099222d79e] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient ConnectResetRequestHandler20250410T16:03:46.814+08:00INFO35784[wemediaossnacos][main]com.alibaba.nacos.common.remote.client:[f8596e2ce91c4966a72aab099222d79e]Registerserverpushrequesthandler:com.alibaba.nacos.common.remote.client.RpcClient$Lambda/0x000001edb93fcc88
2025-04-10T16:03:46.814+08:00 INFO 35784 — [wemedia-oss-nacos] [t.remote.worker] com.alibaba.nacos.common.remote.client : [f8596e2c-e91c-4966-a72a-ab099222d79e] Notify connected event to listeners.
2025-04-10T16:03:46.814+08:00 INFO 35784 — [wemedia-oss-nacos] [t.remote.worker] com.alibaba.nacos.client.naming : Grpc connection connect
2025-04-10T16:03:46.814+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : [REGISTER-SERVICE] public registering service wemedia-oss-nacos with instance Instance{instanceId=‘null’, ip=‘192.168.239.1’, port=8877, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName=‘DEFAULT’, serviceName=‘null’, metadata={IPv6=null, preserved.register.source=SPRING_CLOUD}}
2025-04-10T16:03:46.823+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, DEFAULT_GROUP wemedia-oss-nacos 192.168.239.1:8877 register finished
2025-04-10T16:03:47.840+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
2025-04-10T16:03:47.842+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘scopedTarget.nacosConfigClientController’: Injection of autowired dependencies failed
2025-04-10T16:03:47.844+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.c.n.registry.NacosServiceRegistry : De-registering from Nacos Server now…
2025-04-10T16:03:47.844+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : [DEREGISTER-SERVICE] public deregistering service wemedia-oss-nacos with instance: Instance{instanceId=‘null’, ip=‘192.168.239.1’, port=8877, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName=‘DEFAULT’, serviceName=‘null’, metadata={}}
2025-04-10T16:03:47.859+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.c.n.registry.NacosServiceRegistry : De-registration finished.
2025-04-10T16:03:47.859+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.cache.ServiceInfoHolder do shutdown begin
2025-04-10T16:03:47.859+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin
2025-04-10T16:03:48.182+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop
2025-04-10T16:03:48.182+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.cache.ServiceInfoHolder do shutdown stop
2025-04-10T16:03:48.182+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate do shutdown begin
2025-04-10T16:03:48.182+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.core.ServiceInfoUpdateService do shutdown begin
2025-04-10T16:03:48.182+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.core.ServiceInfoUpdateService do shutdown stop
2025-04-10T16:03:48.183+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.core.ServerListManager do shutdown begin
2025-04-10T16:03:48.183+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : [NamingHttpClientManager] Start destroying NacosRestTemplate
2025-04-10T16:03:48.183+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : [NamingHttpClientManager] Destruction of the end
2025-04-10T16:03:48.183+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.core.ServerListManager do shutdown stop
2025-04-10T16:03:48.183+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.remote.http.NamingHttpClientProxy do shutdown begin
2025-04-10T16:03:48.183+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : [NamingHttpClientManager] Start destroying NacosRestTemplate
2025-04-10T16:03:48.183+08:00 WARN 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : [NamingHttpClientManager] Destruction of the end
2025-04-10T16:03:48.183+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.remote.http.NamingHttpClientProxy do shutdown stop
2025-04-10T16:03:48.183+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : Shutdown rpc client, set status to shutdown
2025-04-10T16:03:48.183+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : Shutdown client event executor java.util.concurrent.ScheduledThreadPoolExecutor@431babe6[Running, pool size = 2, active threads = 2, queued tasks = 0, completed tasks = 0]
2025-04-10T16:03:48.183+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.common.remote.client : Close current connection 1744272226706_127.0.0.1_4812
2025-04-10T16:03:48.186+08:00 WARN 35784 — [wemedia-oss-nacos] [tor-127.0.0.1-9] c.a.n.c.remote.client.grpc.GrpcClient : [1744272226706_127.0.0.1_4812]Ignore error event,isRunning:false,isAbandon=false
2025-04-10T16:03:48.187+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.n.c.remote.client.grpc.GrpcClient : Shutdown grpc executor java.util.concurrent.ThreadPoolExecutor@2f73f0c7[Running, pool size = 10, active threads = 0, queued tasks = 0, completed tasks = 10]
2025-04-10T16:03:48.187+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : Shutdown grpc redo service executor java.util.concurrent.ScheduledThreadPoolExecutor@59e0d521[Running, pool size = 1, active threads = 0, queued tasks = 1, completed tasks = 0]
2025-04-10T16:03:48.187+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.n.c.a.r.identify.CredentialWatcher : [null] CredentialWatcher is stopped
2025-04-10T16:03:48.187+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] c.a.n.c.a.r.identify.CredentialService : [null] CredentialService is freed
2025-04-10T16:03:48.187+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] com.alibaba.nacos.client.naming : com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate do shutdown stop
2025-04-10T16:03:48.191+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2025-04-10T16:03:48.199+08:00 INFO 35784 — [wemedia-oss-nacos] [ main] .s.b.a.l.ConditionEvaluationReportLogger :

Error starting ApplicationContext. To display the condition evaluation report re-run your application with ‘debug’ enabled.
2025-04-10T16:03:48.207+08:00 ERROR 35784 — [wemedia-oss-nacos] [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘scopedTarget.nacosConfigClientController’: Injection of autowired dependencies failed
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:499) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean 1 ( A b s t r a c t B e a n F a c t o r y . j a v a : 364 ) [ s p r i n g − b e a n s − 6.1.1. j a r : 6.1.1 ] a t o r g . s p r i n g f r a m e w o r k . c l o u d . c o n t e x t . s c o p e . G e n e r i c S c o p e 1(AbstractBeanFactory.java:364) ~[spring-beans-6.1.1.jar:6.1.1] at org.springframework.cloud.context.scope.GenericScope 1(AbstractBeanFactory.java:364) [springbeans6.1.1.jar:6.1.1]atorg.springframework.cloud.context.scope.GenericScopeBeanLifecycleWrapper.getBean(GenericScope.java:375) ~[spring-cloud-context-4.1.0.jar:4.1.0]
at org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:179) ~[spring-cloud-context-4.1.0.jar:4.1.0]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:361) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1173) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.cloud.context.scope.refresh.RefreshScope.eagerlyInitialize(RefreshScope.java:126) ~[spring-cloud-context-4.1.0.jar:4.1.0]
at org.springframework.cloud.context.scope.refresh.RefreshScope.start(RefreshScope.java:118) ~[spring-cloud-context-4.1.0.jar:4.1.0]
at org.springframework.cloud.context.scope.refresh.RefreshScope.onApplicationEvent(RefreshScope.java:113) ~[spring-cloud-context-4.1.0.jar:4.1.0]
at org.springframework.cloud.context.scope.refresh.RefreshScope.onApplicationEvent(RefreshScope.java:68) ~[spring-cloud-context-4.1.0.jar:4.1.0]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:445) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:968) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:619) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0]
at com.wemedia.NacosApplication.main(NacosApplication.java:11) ~[classes/:na]

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder ‘config.info’ in value"${config.info}

at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:200) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:921) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1372) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1]
... 27 common frames omitted

2025-04-10T16:03:48.209+08:00 WARN 35784 — [wemedia-oss-nacos] [ Thread-1] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient
2025-04-10T16:03:48.209+08:00 WARN 35784 — [wemedia-oss-nacos] [ Thread-7] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher
2025-04-10T16:03:48.209+08:00 WARN 35784 — [wemedia-oss-nacos] [ Thread-7] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Destruction of the end
2025-04-10T16:03:48.210+08:00 WARN 35784 — [wemedia-oss-nacos] [ Thread-1] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Destruction of the end

Process finished with exit code 1

错误原因分析:
1.检查关键代码

server:port: 8877spring:application:name: wemedia-oss-nacosprofiles:active: dev#    active: test#    active: pred#    active: prodcloud:nacos:username: 'nacos'password: '123456'discovery:server-addr: 127.0.0.1:8848config:server-addr: 127.0.0.1:8848file-extension: properties  #必须指定nacos中dataid的后缀类型:yaml/properties在这里插入代码片

@RestController
@RefreshScope // 支持动态刷新功能
public class NacosConfigClientController {@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo() {return configInfo;}public void setConfigInfo(String configInfo) {this.configInfo = configInfo;}
}

配置文件出现问题,有几种可能

  1. 配置文件格式写错
    配置文件的格式只能是这几种:
    在这里插入图片描述
    == 必须与你spring cloud中指定的file-extension的格式保持一致==

  2. 文件格式写错

  3. 没有按照命名规范配置配置文件
    配置文件命名方式:

${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}Data ID:wemedia-oss-nacos-dev.properties

在这里插入图片描述

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

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

相关文章

第三篇:Python数据结构深度解析与工程实践

第一章:列表与字典 1.1 列表的工程级应用 1.1.1 动态数组实现机制 Python列表底层采用动态数组结构,初始分配8个元素空间,当空间不足时按0,4,8,16,25,35...的公式扩容,每次扩容增加约12.5%的容量 通过sys模块可验证扩容过程: import sys lst = [] prev_size = 0 for …

NOIP2015提高组.运输计划

目录 题目算法标签: 树上倍增, l c a lca lca, 前缀和, 树上差分, 二分思路代码* v e c t o r vector vector存邻接表会超时 题目 521. 运输计划 算法标签: 树上倍增, l c a lca lca, 前缀和, 树上差分, 二分 思路 注意到答案是具有二分性质的, 对于某个时间 m i d mid …

MySQL数据过滤、转换与标准化

数据处理是数据库操作的重要组成部分,尤其是在大量数据中查找、转换和规范化目标信息的过程中。为了确保数据的有效性与一致性,MySQL提供了一系列数据过滤、转换与标准化的功能。 本教程将深入探讨数据过滤和转换的基本方法及应用,内容涵盖数…

英语学习4.11

gear 【名词 / 动词】 👉 关键词:齿轮、装备、调节、使适应 名词释义: 齿轮: 一种机械装置,用于传递动力或调节运动。 装备、工具: 指用于某种活动的设备或工具。 汽车档位: 汽车中用于改变…

SDC命令详解:使用相对路径访问设计对象(current_instance命令)

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 在使用get_cells等命令访问设计对象时,需要指定设计对象的名字,这个名字是一个相对路径,本文就将对此进行讨论。 相对路径 使…

【问题记录】记录2个安装Centos/Anolis系统卡死在安装包阶段的问题?(硬盘分区?换设备)

背景 问题就不详细记录了,本文记录的是Centos/Anolis安装中卡主的问题。这个问题遇到过几十次了,尝试过各种方法。最近一个偶然因素找到了原因。然后翻看历史上出现这个问题的照片居然是相同的地方卡死。。。 有点意思。特此记录,希望未来遇…

微信小程序中的openid的作用

微信小程序中的openid的作用 引言 在当今数字化时代,用户体验成为了产品成功与否的关键因素之一。微信小程序作为连接用户与服务的重要桥梁,在提升用户体验方面发挥着重要作用。其中, openid(开放身份标识符)是微信小…

《Python星球日记》第25天:Pandas 数据分析

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 订阅专栏:《Python星球日记》 目录 一、引言二、数据分组与聚合1. 分组操…

分布式系统-脑裂,redis的解决方案

感谢你的反馈!很高兴能帮到你。关于你提到的“脑裂”(split-brain),这是一个分布式系统中的常见术语,尤其在像 Redis Cluster 这样的高可用集群中会涉及。既然你问到了,我会从头解释“脑裂”的含义、Redis …

重构艺术 | 如何优雅地“提炼函数“

在工作中总数遇到非常多的长代码,俗称“屎山”,这类代码读起来特别费劲。自己想重构一遍,但是总感觉缺乏经验指导,因此,多读书,读好书可能是最优解之一。读《重构改善即有代码的设计》有感,便写…

每天学一个 Linux 命令(13):touch

Linux 文件管理命令:touch touch 是 Linux 中一个简单但高频使用的命令,主要用于创建空文件或修改文件的时间戳(访问时间、修改时间)。它是文件管理和脚本操作的实用工具。 1. 命令作用 创建空文件:快速生成一个或多个空白文件。更新时间戳:修改文件的访问时间(Access …

STM32HAL库学习笔记

目录 定时器 一些小细节 输入捕获计算信号频率 输入捕获计算占空比与频率 使用定时器不改变占空比的同时改变频率的方法 串口 重定向原理 重定向代码 怎么从串口接收到的字符串数据中解析出float型的数据 strchr sscanf memset 第一种实现方法 RTC实时时钟 LCD显…

Docker 镜像、容器与数据卷的高效管理:最佳实践与自动化脚本20250411

Docker 镜像、容器与数据卷的高效管理:最佳实践与自动化脚本 引言 在现代软件开发中,容器化技术正变得越来越重要。Docker 作为容器化的代表工具,在各大企业中得到了广泛的应用。然而,随着容器化应用的增多,如何高效…

Selenium之Actions事件

鼠标、键盘组合键 在使用selenium的时候,有的时候我们需要鼠标单击、双击、拖动;或者是按下键盘的某个键,松开某个按键,以及组合键的使用;今天我们就来看一看,怎么样实现上面的操作 先把准备工作做好&…

如何在 CentOS 7 系统上以容器方式部署 GitLab,使用 ZeroNews 通过互联网访问 GitLab 私有仓库,进行代码版本发布与更新

第 1 步: 部署 GitLab 容器​ 在开始部署 GitLab 容器之前,您需要创建本地目录来存储 GitLab 数据、配置和日志: #创建本地目录 mkdir -p /opt/docker/gitlab/data mkdir -p /opt/docker/gitlab/config mkdir -p /opt/docker/gitlab/log#gi…

.py文件和.ipynb文件的区别:完整教程

一、概述 Python开发者常用的两种文件格式.py和.ipynb各有特点,本教程将通过对比分析、代码示例和场景说明,帮助开发者全面理解二者的区别与联系。 二、核心区别对比 1. 文件格式本质 特性.ipynb文件.py文件文件类型JSON结构化文档纯文本文件存储内容…

Go 字符串四种拼接方式的性能对比

简介 使用完整的基准测试代码文件,可以直接运行来比较四种字符串拼接方法的性能。 for 索引 的方式 for range 的方式 strings.Join 的方式 strings.Builder 的方式 写一个基准测试文件 echo_bench_test.go package mainimport ("os""stri…

从代码学习深度学习 - Bahdanau注意力 PyTorch版

文章目录 1. 前言为什么选择Bahdanau注意力本文目标与预备知识2. Bahdanau注意力机制概述注意力机制简述加性注意力与乘性注意力对比Bahdanau注意力的数学原理与流程图数学原理流程图可视化与直观理解3. 数据准备与预处理数据集简介数据加载与预处理1. 读取数据集2. 预处理文本…

19【动手学深度学习】卷积层

1. 从全连接到卷积 2. 图像卷积 3. 图形卷积代码 互相关操作 import torch from torch import nn from d2l import torch as d2ldef corr2d(X, K):"""计算2维互相关运算"""h, w K.shapeY torch.zeros((X.shape[0]-h1, X.shape[1]-w 1))for …

Linux xorg-server 解析(一)- 编译安装Debug版本的xorg-server

一:下载代码 1. 配置源,以Ubuntu24.04 为例( /etc/apt/sources.list.d/ubuntu.sources): 2. apt source xserver-xorg-core 二:编译代码 1. sudo apt build-dep ./ 2. DEB_BUILD_OPTIONS="nostrip" DEB_CFLAGS_SET="-g -O0" dpkg-buildpac…