news 2026/4/23 12:59:16

Nacos,咱河南的物业中心(得劲!)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nacos,咱河南的物业中心(得劲!)

一、先说个事儿

昨天俺说用Eureka,是SpringCloud老版本用的。现在人家都升级了,用Nacos了!Nacos是阿里巴巴弄的,比Eureka还得劲!为啥?

  1. 功能多:不光是物业中心,还是配置中心(一中心两用,省钱!)
  2. 中文:中国人弄的,文档看着不费劲
  3. 活跃:更新快,用的人多

就跟咱郑州的社区服务中心一样,又能办户口(服务注册),又能办社保(配置管理)!

二、Nacos是弄啥嘞?

1. 服务注册与发现(办户口)

  • 微服务启动:“领导,我是user-service,来报个到!”
  • Nacos:“中,登记上了,给你个户口本!”
  • 其他服务找user-service:“领导,user-service住哪?”
  • Nacos:“8081号楼,去吧!”

2. 配置管理(发通知)

  • 改个配置,不用每个服务都重启
  • 在Nacos上改一下,所有服务都生效
  • 就跟村里大喇叭喊一嗓子,全村都知道了

三、先把Nacos装起来

步骤1:下载Nacos

  1. 去官网:https://github.com/alibaba/nacos
  2. 下载最新版(建议2.x版本)
  3. 解压到不带中文的路径!比如:D:\nacos

步骤2:启动Nacos(两种方式)

方式一:单机模式(推荐新手用)

# 进入nacos的bin目录cdD:\nacos\bin# Windowsstartup.cmd-mstandalone# standalone就是单机# Linux/Macshstartup.sh-mstandalone

方式二:用Docker(会Docker的用这个)

dockerrun--namenacos-eMODE=standalone-p8848:8848 nacos/nacos-server

步骤3:登录Nacos

  1. 启动成功后,浏览器打开:http://localhost:8848/nacos
  2. 用户名:nacos
  3. 密码:nacos
  4. 看到这个页面就中了:
欢迎使用 Nacos! 服务管理 | 配置管理 | 命名空间 | ...

四、把user-service登记到Nacos

步骤1:改pom.xml(加依赖)

user-servicepom.xml里加:

<!-- Nacos服务注册与发现 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2021.0.5.0</version><!-- 注意版本! --></dependency>

步骤2:改配置文件(application.yml)

server:port:8081spring:application:name:user-service# 服务名,重要!cloud:nacos:discovery:server-addr:localhost:8848# Nacos地址# 下面这几个参数可配可不配,先知道有这回事namespace:public# 命名空间,默认publicgroup:DEFAULT_GROUP# 分组,默认DEFAULT_GROUPephemeral:true# 是否临时实例(临时实例挂了自动剔除)

步骤3:启动类加注解

@SpringBootApplication@EnableDiscoveryClient// 这个注解是通用嘞,Nacos、Eureka都能用publicclassUserServiceApplication{publicstaticvoidmain(String[]args){SpringApplication.run(UserServiceApplication.class,args);}}

步骤4:启动并检查

  1. 启动user-service
  2. 等10秒钟(别急,得给人家登记的时间)
  3. 打开Nacos页面(http://localhost:8848/nacos
  4. 点左边菜单服务管理 -> 服务列表
  5. 看到user-service就妥了:
服务名 健康实例数 触发保护阈值 user-service 1/1 false

五、再登记个order-service

步骤1:新建项目

跟昨天一样,新建order-service

server:port:8082spring:application:name:order-service# 名儿不一样!cloud:nacos:discovery:server-addr:localhost:8848

步骤2:写个接口测试一下

@RestControllerpublicclassOrderController{@GetMapping("/order/info")publicStringorderInfo(){return"这是订单服务,端口:8082";}// 这个接口先放着,明天用@GetMapping("/order/user")publicStringgetUserFromOrder(){return"明天学咋调user-service!";}}

步骤3:启动查看

  1. 启动order-service
  2. 刷新Nacos服务列表
  3. 看到两个服务,得劲!

六、Nacos比Eureka得劲在哪?

1. 健康检查更细致

  • Eureka:只检查心跳(活着没)
  • Nacos:能检查服务健康状态(活的咋样)

2. 配置管理二合一

  • Eureka:只能管服务注册
  • Nacos:既能管服务,又能管配置
  • 省了一个组件,少了很多麻烦

3. 集群模式更简单

  • Eureka集群配置麻烦
  • Nacos集群一键启动
  • 跟搭积木一样简单

4. 有中文啊!

  • 控制台全中文
  • 文档全中文
  • 报错信息也清晰

七、Nacos核心概念(得知道)

1. 命名空间(Namespace)

  • 相当于小区分区:A区、B区、C区
  • 不同命名空间的服务互相看不见
  • 默认用public

2. 分组(Group)

  • 相当于楼栋:1号楼、2号楼
  • 同一命名空间下,用分组再分一下
  • 默认用DEFAULT_GROUP

3. 服务名(Service Name)

  • 相当于门牌号:101、102
  • 就是spring.application.name

4. 集群(Cluster)

  • 相当于单元:一单元、二单元
  • 同一个服务可以部署多个实例,形成集群

八、今儿个任务总结

要做的事:

  1. ✅ 下载并启动Nacos
  2. ✅ 登录Nacos控制台(8848端口)
  3. ✅ 把user-service注册到Nacos
  4. ✅ 新建order-service也注册上去
  5. ✅ 在Nacos上能看到两个服务

常见问题:

问题1:Nacos启动失败

# 如果端口8848被占用# 1. 改Nacos端口# 修改nacos/conf/application.propertiesserver.port=8849# 2. 改服务配置文件spring.cloud.nacos.discovery.server-addr=localhost:8849

问题2:服务注册不上

  • 检查Nacos启动了没(http://localhost:8848/nacos能打开不)
  • 检查配置文件里的server-addr写对没
  • 检查网络通不通
  • 看服务启动日志有没有报错

问题3:版本冲突

<!-- 在pom.xml里统一管理版本 --><dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2021.0.5.0</version><!-- 用这个版本! --><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

九、手动模拟服务发现(先感受一下)

order-service里写个测试:

@RestControllerpublicclassTestController{@AutowiredprivateDiscoveryClientdiscoveryClient;// 服务发现客户端@GetMapping("/services")publicList<String>getServices(){// 获取所有注册的服务returndiscoveryClient.getServices();}@GetMapping("/service/instances/{serviceName}")publicList<ServiceInstance>getInstances(@PathVariableStringserviceName){// 获取某个服务的所有实例returndiscoveryClient.getInstances(serviceName);}}

访问http://localhost:8082/services,能看到:

["user-service","order-service"]

十、明儿个学啥?

明天咱学服务调用

  • order-service咋调用user-service?
  • OpenFeign,可方便!
  • 不用记IP端口,直接用服务名调用
  • 跟微信找人一样,不用记手机号,搜名字就中了!

小总结

今儿个咱用Nacos,比Eureka得劲多了

  1. 下载简单,启动方便
  2. 界面友好,全中文
  3. 功能强大,注册配置二合一
  4. 国产的,文档看着不费劲

记住:Nacos就是咱微服务的社区服务中心,啥事都管!

明儿个咱学咋让这两个服务说话(互相调用),可带劲!🚀

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:57:12

AI大模型原理与API使用

AI大模型原理与API使用 一、AI基础知识 1. 什么是AI&#xff1f; AI&#xff08;人工智能&#xff09;的核心目标是让机器能够执行通常需要人类智能的任务&#xff0c;例如语言理解、图像识别、复杂问题解决等。 早期阶段&#xff1a;以规则为基础的专家系统&#xff0c;依赖预…

作者头像 李华
网站建设 2026/4/15 13:47:32

内存不足怎么办?建议至少16GB RAM配合RTX 3090起步

内存不足怎么办&#xff1f;建议至少16GB RAM配合RTX 3090起步 在数字人、AI语音合成和视频生成这些前沿领域&#xff0c;你有没有遇到过这样的场景&#xff1a;上传一段音频准备驱动虚拟形象说话&#xff0c;系统却突然卡死&#xff0c;终端弹出“Killed”或“CUDA out of mem…

作者头像 李华
网站建设 2026/4/18 11:01:53

从零搭建跨平台日志系统,深度解读C#日志收集与追踪实践

第一章&#xff1a;跨平台日志系统概述在现代分布式系统架构中&#xff0c;服务往往部署于多种操作系统与运行环境之中&#xff0c;包括Linux、Windows、容器化平台乃至无服务器架构。为了实现统一的故障排查、安全审计与性能监控&#xff0c;构建一个高效、可扩展的跨平台日志…

作者头像 李华
网站建设 2026/4/17 7:04:00

【C#高并发通信框架设计】:如何支撑百万级数据实时交互?

第一章&#xff1a;C#高并发通信框架的核心挑战在构建现代高性能服务时&#xff0c;C#开发人员常面临高并发通信场景下的系统稳定性与吞吐量问题。随着客户端连接数的激增&#xff0c;传统的同步I/O模型已无法满足低延迟、高吞吐的需求&#xff0c;必须深入理解并解决底层核心挑…

作者头像 李华
网站建设 2026/4/18 3:21:49

C#拦截器在多平台应用中的高级用法(99%开发者忽略的关键细节)

第一章&#xff1a;C#拦截器在多平台应用中的核心概念C#拦截器是一种强大的编程机制&#xff0c;允许开发者在方法调用前后插入自定义逻辑&#xff0c;广泛应用于日志记录、权限验证、性能监控等场景。在多平台应用开发中&#xff08;如使用.NET MAUI或Xamarin&#xff09;&…

作者头像 李华
网站建设 2026/4/18 11:14:40

C#网络通信中数据序列化性能优化:9种方法提升传输效率80%以上

第一章&#xff1a;C#网络通信中数据序列化的性能挑战在C#构建的分布式系统或微服务架构中&#xff0c;网络通信频繁依赖数据序列化来传输对象状态。尽管.NET提供了多种序列化机制&#xff0c;如XML、JSON和二进制格式&#xff0c;但在高并发场景下&#xff0c;序列化过程可能成…

作者头像 李华