找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 14338|回复: 0

Nacos安装部署与服务注册发现搭建

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-11 19:05:24 | 显示全部楼层 |阅读模式
Nacos 安装部署与服务注册发现搭建指南

1. Nacos 简介

Nacos 是一个动态服务发现、配置和服务管理平台,提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

2. 安装部署 Nacos

2.1 下载 Nacos

从官方 GitHub 仓库下载最新版本:
  1. https://github.com/alibaba/nacos/releases
复制代码

或使用 wget 下载:
  1. wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.zip
复制代码

2.2 解压安装
  1. unzip nacos-server-2.2.3.zip
  2. cd nacos/bin
复制代码

2.3 启动 Nacos 服务器

单机模式启动
  1. # Linux/Unix/Mac
  2. sh startup.sh -m standalone
  3. # Windows
  4. startup.cmd -m standalone
复制代码

集群模式启动
需要配置
  1. conf/cluster.conf
复制代码
文件,指定集群节点 IP 和端口。

2.4 验证安装

访问 Nacos 控制台:
  1. http://localhost:8848/nacos
复制代码
默认用户名密码都是
  1. nacos
复制代码

3. 服务注册与发现

3.1 服务提供者注册

以 Spring Cloud 应用为例:

添加依赖
  1. <dependency>
  2.     <groupId>com.alibaba.cloud</groupId>
  3.     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  4.     <version>最新版本</version>
  5. </dependency>
复制代码

配置 application.yml
  1. spring:
  2.   application:
  3.     name: service-provider
  4.   cloud:
  5.     nacos:
  6.       discovery:
  7.         server-addr: 127.0.0.1:8848
复制代码

启动类添加注解
  1. @SpringBootApplication
  2. @EnableDiscoveryClient
  3. public class ProviderApplication {
  4.     public static void main(String[] args) {
  5.         SpringApplication.run(ProviderApplication.class, args);
  6.     }
  7. }
复制代码

3.2 服务消费者发现

消费者配置类似,通过 Nacos 发现服务:
  1. @RestController
  2. public class ConsumerController {
  3.    
  4.     @Autowired
  5.     private LoadBalancerClient loadBalancerClient; // 或使用 RestTemplate + Ribbon
  6.    
  7.     @GetMapping("/consume")
  8.     public String consume() {
  9.         // 通过服务名发现实例
  10.         ServiceInstance instance = loadBalancerClient.choose("service-provider");
  11.         String url = String.format("http://%s:%s/provider/hello",
  12.             instance.getHost(), instance.getPort());
  13.         
  14.         // 调用服务
  15.         // ...
  16.     }
  17. }
复制代码

或者使用 Feign 客户端:
  1. @FeignClient(name = "service-provider")
  2. public interface ProviderClient {
  3.     @GetMapping("/provider/hello")
  4.     String hello();
  5. }
复制代码

4. 高级配置

4.1 命名空间(Namespace)

用于多环境隔离,在
  1. application.yml
复制代码
中配置:
  1. spring:
  2.   cloud:
  3.     nacos:
  4.       discovery:
  5.         namespace: your-namespace-id
复制代码

4.2 元数据(Metadata)

可以为服务实例添加元数据:
  1. spring:
  2.   cloud:
  3.     nacos:
  4.       discovery:
  5.         metadata:
  6.           version: v1
  7.           region: us-east
复制代码

4.3 健康检查

Nacos 支持 TCP 和 HTTP 两种健康检查方式,默认是客户端向 Nacos 服务器发送心跳。

5. 集群部署建议

  • 至少 3 个节点:保证高可用
  • 外部化存储:使用 MySQL 替代内置 Derby 数据库
  • 配置集群节点:在
    1. conf/cluster.conf
    复制代码
    中配置所有节点
  • 负载均衡:前端使用 Nginx 或 LVS 做负载均衡


6. 常见问题

  • 服务注册失败
  • 检查 Nacos 服务器是否正常运行
  • 检查网络连接和防火墙设置
  • 检查服务名称是否重复
  • 服务发现不到实例
  • 检查服务是否成功注册
  • 检查命名空间是否一致
  • 检查健康检查配置
  • 性能问题
  • 考虑调整心跳间隔和超时时间
  • 增加节点数量分担负载


通过以上步骤,您可以成功部署 Nacos 服务器并实现服务的注册与发现功能。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 18:12 , Processed in 0.076470 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表