前言:Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。它是微服务架构中重要的组件,提供了服务发现与注册、配置管理和动态 DNS 服务。Nacos 支持多种服务生态系统,包括 Kubernetes 和 Spring Cloud。

主要特性

  1. 服务发现与服务健康监测:支持服务实例的注册与发现,提供健康检查机制,确保服务的高可用性。
  2. 动态配置管理:支持集中化管理应用的配置,提供实时的配置推送和动态更新功能。
  3. 动态 DNS 服务:支持 DNS 协议和 RESTful API 的服务发现,实现负载均衡和路由。
  4. 多语言支持:提供跨多语言(Java、Go、C++、Node.js 等)的 SDK,方便多语言开发者使用。

主要组件

  1. Nacos Server:提供服务注册、服务发现、配置管理和服务管理功能。
  2. Nacos Client:用于服务注册和发现,配置获取和监听等。

Nacos 注册中心

官方地址:https://nacos.io/

数据库创建

nacos考虑到持久化的需要,一般选择基于数据库存储,创建nacos数据库,将sql脚本导入nacos数据库

docker启动nacos

上传启动脚本

创建nacos文件夹,在文件夹中创建custom.env文件,将以下内容复制到custom.env文件中,修改数据库ip端口用户名密码,修改完成后,上传将nacos文件夹上传至root目录

1
2
3
4
5
6
7
8
9
PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=数据库IP
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=数据库密码
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai

上传nacos.tar压缩包

nacos.tar压缩包上传至root目录

加载镜像文件

1
docker load -i nacos.tar

启动

1
2
3
4
5
6
7
8
docker run -d \
--name nacos \
--env-file ./nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
nacos/nacos-server:v2.1.0-slim

nacos后台展示

浏览器输入 http://192.168.58.101:8848/nacos/ 进行访问,用户名nacos,密码nacos

image-20240613152234244

项目应用

在每个子模块处,都添加如下配置,application.name是每个微服务自己的名称

maven引入

1
2
3
4
5
<!--nacos 服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

yml配置

1
2
3
4
5
6
7
8
server:
port: 8084
spring:
application:
name: user-service
cloud:
nacos:
server-addr: 192.168.58.101:8848

nacos后台展示

image-20240613151942087