铜陵做网站的东莞松山湖

张小明 2026/1/12 9:27:22
铜陵做网站的,东莞松山湖,就业创业网站建设,建筑工人招工网本文详解Nacos的部署配置与实战应用#xff0c;实现微服务的服务发现和统一配置管理。 前言 微服务架构的两大核心问题#xff1a; 服务发现#xff1a;服务实例动态变化#xff0c;如何找到对方#xff1f;配置管理#xff1a;配置分散各处#xff0c;如何统一管理实现微服务的服务发现和统一配置管理。前言微服务架构的两大核心问题服务发现服务实例动态变化如何找到对方配置管理配置分散各处如何统一管理Nacos是阿里开源的服务发现和配置管理平台支持服务注册与发现支持动态配置管理支持DNS和HTTP服务发现支持多环境配置隔离一、Nacos简介1.1 核心功能┌─────────────────────────────────────────────────────────┐ │ Nacos │ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ 服务注册与发现 │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ │ │Service A│ │Service B│ │Service C│ │ │ │ │ │ 实例1 │ │ 实例1 │ │ 实例1 │ │ │ │ │ │ 实例2 │ │ 实例2 │ │ 实例2 │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ 配置管理中心 │ │ │ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │ │ │ │ dev配置 │ │ test配置 │ │ prod配置 │ │ │ │ │ └───────────┘ └───────────┘ └───────────┘ │ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘1.2 与其他组件对比功能NacosEurekaConsulZookeeper服务发现✅✅✅✅配置管理✅❌✅❌一致性协议AP/CPAPCPCP健康检查TCP/HTTP心跳TCP/HTTP心跳管理界面✅✅✅❌1.3 数据模型Namespace命名空间 └── Group分组 └── Service服务 └── Cluster集群 └── Instance实例 配置 Namespace → Group → DataId二、安装部署2.1 单机部署Docker# 启动Nacosdocker run -d --name nacos\-eMODEstandalone\-eNACOS_AUTH_ENABLEtrue\-eNACOS_AUTH_TOKENSecretKey012345678901234567890123456789012345678901234567890123456789\-eNACOS_AUTH_IDENTITY_KEYnacos\-eNACOS_AUTH_IDENTITY_VALUEnacos\-p8848:8848\-p9848:9848\-p9849:9849\nacos/nacos-server:v2.3.0# 访问控制台# http://localhost:8848/nacos# 用户名/密码nacos/nacos2.2 Docker Compose部署# docker-compose.ymlversion:3.8services:nacos:image:nacos/nacos-server:v2.3.0container_name:nacosenvironment:-MODEstandalone-SPRING_DATASOURCE_PLATFORMmysql-MYSQL_SERVICE_HOSTmysql-MYSQL_SERVICE_PORT3306-MYSQL_SERVICE_DB_NAMEnacos-MYSQL_SERVICE_USERnacos-MYSQL_SERVICE_PASSWORDnacos123-NACOS_AUTH_ENABLEtrue-NACOS_AUTH_TOKENSecretKey012345678901234567890123456789012345678901234567890123456789-NACOS_AUTH_IDENTITY_KEYnacos-NACOS_AUTH_IDENTITY_VALUEnacosports:-8848:8848-9848:9848-9849:9849depends_on:-mysqlrestart:unless-stoppedmysql:image:mysql:8.0container_name:nacos-mysqlenvironment:-MYSQL_ROOT_PASSWORDroot123-MYSQL_DATABASEnacos-MYSQL_USERnacos-MYSQL_PASSWORDnacos123volumes:-mysql_data:/var/lib/mysql-./mysql-schema.sql:/docker-entrypoint-initdb.d/mysql-schema.sqlports:-3306:3306restart:unless-stoppedvolumes:mysql_data:# 下载初始化SQLwgethttps://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/mysql-schema.sql# 启动docker compose up -d2.3 集群部署# docker-compose-cluster.ymlversion:3.8services:nacos1:image:nacos/nacos-server:v2.3.0hostname:nacos1environment:-MODEcluster-NACOS_SERVERSnacos1:8848 nacos2:8848 nacos3:8848-SPRING_DATASOURCE_PLATFORMmysql-MYSQL_SERVICE_HOSTmysql-MYSQL_SERVICE_DB_NAMEnacos-MYSQL_SERVICE_USERnacos-MYSQL_SERVICE_PASSWORDnacos123-NACOS_AUTH_ENABLEtrue-NACOS_AUTH_TOKENSecretKey012345678901234567890123456789012345678901234567890123456789ports:-8848:8848nacos2:image:nacos/nacos-server:v2.3.0hostname:nacos2environment:-MODEcluster-NACOS_SERVERSnacos1:8848 nacos2:8848 nacos3:8848-SPRING_DATASOURCE_PLATFORMmysql-MYSQL_SERVICE_HOSTmysql-MYSQL_SERVICE_DB_NAMEnacos-MYSQL_SERVICE_USERnacos-MYSQL_SERVICE_PASSWORDnacos123-NACOS_AUTH_ENABLEtrue-NACOS_AUTH_TOKENSecretKey012345678901234567890123456789012345678901234567890123456789ports:-8849:8848nacos3:image:nacos/nacos-server:v2.3.0hostname:nacos3environment:-MODEcluster-NACOS_SERVERSnacos1:8848 nacos2:8848 nacos3:8848-SPRING_DATASOURCE_PLATFORMmysql-MYSQL_SERVICE_HOSTmysql-MYSQL_SERVICE_DB_NAMEnacos-MYSQL_SERVICE_USERnacos-MYSQL_SERVICE_PASSWORDnacos123-NACOS_AUTH_ENABLEtrue-NACOS_AUTH_TOKENSecretKey012345678901234567890123456789012345678901234567890123456789ports:-8850:8848三、服务注册与发现3.1 Spring Cloud集成添加依赖dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2022.0.0.0/version/dependency配置# application.ymlspring:application:name:user-servicecloud:nacos:discovery:server-addr:127.0.0.1:8848namespace:publicgroup:DEFAULT_GROUPusername:nacospassword:nacos启用服务发现SpringBootApplicationEnableDiscoveryClientpublicclassUserServiceApplication{publicstaticvoidmain(String[]args){SpringApplication.run(UserServiceApplication.class,args);}}3.2 服务调用// 使用LoadBalancerConfigurationpublicclassRestTemplateConfig{BeanLoadBalancedpublicRestTemplaterestTemplate(){returnnewRestTemplate();}}// 调用服务ServicepublicclassOrderService{AutowiredprivateRestTemplaterestTemplate;publicUsergetUser(LonguserId){// 直接使用服务名returnrestTemplate.getForObject(http://user-service/users/userId,User.class);}}3.3 OpenFeign调用FeignClient(nameuser-service)publicinterfaceUserClient{GetMapping(/users/{id})UsergetUser(PathVariable(id)Longid);}四、配置管理4.1 集成配置中心添加依赖dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion2022.0.0.0/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependency配置# bootstrap.ymlspring:application:name:user-serviceprofiles:active:devcloud:nacos:config:server-addr:127.0.0.1:8848file-extension:yamlnamespace:publicgroup:DEFAULT_GROUPusername:nacospassword:nacos4.2 在Nacos创建配置Data ID: user-service-dev.yaml Group: DEFAULT_GROUP 配置格式: YAML 配置内容: server: port: 8080 app: name: 用户服务 version: 1.0.0 database: url: jdbc:mysql://localhost:3306/users username: root password: 1234564.3 读取配置RestControllerRefreshScope// 支持动态刷新publicclassConfigController{Value(${app.name})privateStringappName;Value(${app.version})privateStringappVersion;GetMapping(/config)publicMapString,StringgetConfig(){MapString,StringconfignewHashMap();config.put(appName,appName);config.put(appVersion,appVersion);returnconfig;}}4.4 配置监听ComponentpublicclassConfigListenerimplementsApplicationListenerNacosConfigReceivedEvent{OverridepublicvoidonApplicationEvent(NacosConfigReceivedEventevent){System.out.println(配置变更: event.getDataId());// 处理配置变更逻辑}}五、多环境配置5.1 命名空间隔离命名空间规划 ├── dev开发环境 │ └── user-service-dev.yaml ├── test测试环境 │ └── user-service-test.yaml └── prod生产环境 └── user-service-prod.yaml# bootstrap-dev.ymlspring:cloud:nacos:config:namespace:dev-namespace-id# bootstrap-prod.ymlspring:cloud:nacos:config:namespace:prod-namespace-id5.2 分组隔离# 不同项目使用不同Groupspring:cloud:nacos:config:group:PROJECT_A5.3 共享配置spring:cloud:nacos:config:shared-configs:-data-id:common.yamlgroup:DEFAULT_GROUPrefresh:trueextension-configs:-data-id:database.yamlgroup:DEFAULT_GROUPrefresh:true六、多站点部署6.1 场景企业多机房部署 - 总部机房Nacos集群 服务A、B、C - 分部机房Nacos集群 服务D、E、F - 需要跨机房服务调用6.2 组网方案使用组网软件如星空组网打通多机房网络┌───────────────────────────────────────────────────────────┐ │ 组网虚拟局域网 │ │ │ │ ┌────────────────────┐ ┌────────────────────┐ │ │ │ 总部机房 │ │ 分部机房 │ │ │ │ │ │ │ │ │ │ Nacos: 10.10.0.1 │ │ Nacos: 10.10.0.10│ │ │ │ ServiceA:10.10.0.2│ │ ServiceD:10.10.0.11│ │ │ │ ServiceB:10.10.0.3│ │ ServiceE:10.10.0.12│ │ │ │ │ │ │ │ │ └────────────────────┘ └────────────────────┘ │ │ ↑ ↑ │ │ └─────────┬───────────────┘ │ │ │ │ │ 跨机房服务调用 │ └───────────────────────────────────────────────────────────┘配置方式# 总部服务配置spring:cloud:nacos:discovery:server-addr:10.10.0.1:8848# 组网IPconfig:server-addr:10.10.0.1:8848# 分部服务配置spring:cloud:nacos:discovery:server-addr:10.10.0.10:8848# 组网IPconfig:server-addr:10.10.0.10:88486.3 Nacos集群同步# 配置两个Nacos集群数据同步# 使用Nacos的集群同步功能或配置复制效果各机房服务正常注册发现跨机房服务可相互调用配置统一管理网络安全加密七、运维管理7.1 健康检查# API健康检查curlhttp://localhost:8848/nacos/v1/console/health/readiness# 集群状态curlhttp://localhost:8848/nacos/v1/core/cluster/nodes7.2 监控指标# prometheus配置scrape_configs:-job_name:nacosmetrics_path:/nacos/actuator/prometheusstatic_configs:-targets:[nacos:8848]7.3 数据备份# 导出配置curl-X GEThttp://localhost:8848/nacos/v1/cs/configs?exporttruetenantgroupDEFAULT_GROUP\-HAuthorization: Bearer token\-o nacos_config_backup.zip# 导入配置curl-X POSThttp://localhost:8848/nacos/v1/cs/configs?importtrue\-HAuthorization: Bearer token\-Ffilenacos_config_backup.zip7.4 常见问题服务注册失败# 检查网络连通性telnet nacos-server8848telnet nacos-server9848# gRPC端口# 检查认证配置配置不生效// 确保添加RefreshScopeRefreshScopeRestControllerpublicclassConfigController{// ...}八、总结Nacos使用要点部署方式生产环境使用集群MySQL服务发现Spring Cloud Alibaba集成配置管理多环境命名空间隔离动态刷新RefreshScope注解多机房组网打通后统一注册安全启用认证配置鉴权最佳实践☑ 生产环境集群部署至少3节点 ☑ 使用MySQL持久化 ☑ 启用认证鉴权 ☑ 命名空间环境隔离 ☑ 配置定期备份 ☑ 监控告警配置参考资料Nacos官方文档https://nacos.io/docs/latest/Nacos GitHubhttps://github.com/alibaba/nacosSpring Cloud Alibabahttps://sca.aliyun.com/docs/2023/建议先在开发环境单机部署熟悉生产环境务必集群MySQL持久化。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站的怎样找客户建设一个网站需要条件

探索 Linux 服务器替代方案及开源服务 在当今的 IT 领域,企业对于服务器系统和相关服务的选择至关重要。从成本效益、安全性到功能的多样性,每一个因素都影响着企业的决策。Linux 以其开源、灵活和稳定的特性,成为了替代传统 Windows 服务器的有力选择。下面将深入介绍 Lin…

张小明 2026/1/3 23:02:10 网站建设

石家庄专门做网站的公司媒介

企业计算机管理与服务器管理指南 1. 企业计算机管理 在企业计算机管理中,我们可以利用 PowerShell 和 WMI (Windows Management Instrumentation)来完成多种任务,以下是一些常见操作的介绍。 1.1 检测热修复是否安装 可以使用 Test-HotfixInstallation 脚本来确定特定…

张小明 2026/1/3 23:00:08 网站建设

网站安全建设方案网站建设教程资源

Traefik在Dokploy项目中的故障排查实战指南 【免费下载链接】dokploy Open Source Alternative to Vercel, Netlify and Heroku. 项目地址: https://gitcode.com/GitHub_Trending/do/dokploy 在现代云原生应用部署中,Traefik作为轻量级反向代理和负载均衡器&…

张小明 2026/1/3 22:58:02 网站建设

如何建设商城网站wordpress 模板破解版

教科书答案: 责:是事、是目标、结果、责任、担当 权:是人、是达成目标的手段和途径 利:是钱、是目标结果差异的好处、坏处 现实: 责权利 VS 利权责 VS 权利责 利是目标、权是手段、责任靠边 权是目标、利是结果、责是手…

张小明 2026/1/8 14:01:42 网站建设

传媒公司 网站开发搭建个人主页

IP路由与转发信息库(FIB)详解 1. IP路由中的延迟与截止时间处理 在IP路由中,当计算延迟时,如果到目前为止已完成计算,在第466行我们会将延迟设置为超时值。若 rt_deadline 为零,这意味着要么 rt_flush_timer 已经过期,要么它从未被安装过,且路由从未被刷新。在这种…

张小明 2026/1/3 22:53:57 网站建设

高校思政专题网站建设企业自建站案例

Qwen3-VL-8B-Thinking:多模态大模型从感知到行动的革命性突破 【免费下载链接】Qwen3-VL-8B-Thinking 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-VL-8B-Thinking 导语 阿里通义千问团队推出的Qwen3-VL-8B-Thinking多模态大模型&#xff…

张小明 2026/1/3 22:51:55 网站建设