|
|
Nacos 安装部署与服务注册发现搭建指南
1. Nacos 简介
Nacos 是一个动态服务发现、配置和服务管理平台,提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
2. 安装部署 Nacos
2.1 下载 Nacos
从官方 GitHub 仓库下载最新版本:- https://github.com/alibaba/nacos/releases
复制代码
或使用 wget 下载:- wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.zip
复制代码
2.2 解压安装
- unzip nacos-server-2.2.3.zip
- cd nacos/bin
复制代码
2.3 启动 Nacos 服务器
单机模式启动- # Linux/Unix/Mac
- sh startup.sh -m standalone
- # Windows
- startup.cmd -m standalone
复制代码
集群模式启动
需要配置文件,指定集群节点 IP 和端口。
2.4 验证安装
访问 Nacos 控制台:- http://localhost:8848/nacos
复制代码 默认用户名密码都是
3. 服务注册与发现
3.1 服务提供者注册
以 Spring Cloud 应用为例:
添加依赖- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- <version>最新版本</version>
- </dependency>
复制代码
配置 application.yml- spring:
- application:
- name: service-provider
- cloud:
- nacos:
- discovery:
- server-addr: 127.0.0.1:8848
复制代码
启动类添加注解- @SpringBootApplication
- @EnableDiscoveryClient
- public class ProviderApplication {
- public static void main(String[] args) {
- SpringApplication.run(ProviderApplication.class, args);
- }
- }
复制代码
3.2 服务消费者发现
消费者配置类似,通过 Nacos 发现服务:
- @RestController
- public class ConsumerController {
-
- @Autowired
- private LoadBalancerClient loadBalancerClient; // 或使用 RestTemplate + Ribbon
-
- @GetMapping("/consume")
- public String consume() {
- // 通过服务名发现实例
- ServiceInstance instance = loadBalancerClient.choose("service-provider");
- String url = String.format("http://%s:%s/provider/hello",
- instance.getHost(), instance.getPort());
-
- // 调用服务
- // ...
- }
- }
复制代码
或者使用 Feign 客户端:
- @FeignClient(name = "service-provider")
- public interface ProviderClient {
- @GetMapping("/provider/hello")
- String hello();
- }
复制代码
4. 高级配置
4.1 命名空间(Namespace)
用于多环境隔离,在中配置:- spring:
- cloud:
- nacos:
- discovery:
- namespace: your-namespace-id
复制代码
4.2 元数据(Metadata)
可以为服务实例添加元数据:- spring:
- cloud:
- nacos:
- discovery:
- metadata:
- version: v1
- region: us-east
复制代码
4.3 健康检查
Nacos 支持 TCP 和 HTTP 两种健康检查方式,默认是客户端向 Nacos 服务器发送心跳。
5. 集群部署建议
- 至少 3 个节点:保证高可用
- 外部化存储:使用 MySQL 替代内置 Derby 数据库
- 配置集群节点:在中配置所有节点
- 负载均衡:前端使用 Nginx 或 LVS 做负载均衡
6. 常见问题
- 服务注册失败:
- 检查 Nacos 服务器是否正常运行
- 检查网络连接和防火墙设置
- 检查服务名称是否重复
- 服务发现不到实例:
- 检查服务是否成功注册
- 检查命名空间是否一致
- 检查健康检查配置
- 性能问题:
- 考虑调整心跳间隔和超时时间
- 增加节点数量分担负载
通过以上步骤,您可以成功部署 Nacos 服务器并实现服务的注册与发现功能。 |
|