weblog/doc/6、Nacos 注册中心搭建/6.1 Nacos 介绍与本地环境搭建.md
2025-02-17 10:05:44 +08:00

10 KiB
Raw Blame History

在微服务架构中,随着服务的数量和复杂度不断增加,服务发现和配置管理成为了开发和运维中的重要挑战。本小节中,我们就将学习 NacosDynamic Naming and Configuration Service它是阿里巴巴开源的一个服务发现、配置管理和服务管理平台。

什么是 Nacos ?

以下介绍性文字摘取自 Nacos 官网:https://nacos.io/ ,更多信息请访问官网了解。

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,它是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

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

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

Nacos 主要特性

  • 服务发现和服务健康监测

    Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDKOpenAPI 、或一个独立的Agent TODO 注册 Service 后,服务消费者可以使用DNS TODOHTTP&API 查找和发现服务。

    Nacos 提供对服务的实时的健康检查阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等服务的健康检查Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。

  • 动态配置服务

    动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。

    动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。

    配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。

    Nacos 提供了一个简洁易用的UI (控制台样例 Demo ) 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。

  • 动态 DNS 服务

    动态 DNS 服务支持权重路由让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。

    Nacos 提供了一些简单的 DNS APIs TODO 帮助您管理服务的关联域名和可用的 IP 列表.

  • 服务及其元数据管理

    Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。

Nacos 地图

安装 Nacos

接下来,我们就先把本地的 Nacos 环境搭建好,下面分别演示两种安装方式,小伙伴们任选其一即可。

版本选择

查看官方文档,写这篇文章的时候,目前 Nacos 的稳定版本为 2.2.3 如下图所示:

方式1安装包安装 Nacos推荐

环境准备

Nacos 依赖 Java 环境来运行,所以,需要确保你的机器上已经安装好了 JDK 1.8+ 版本。

下载安装包

浏览器访问地址:https://nacos.io/download/release-history/ ,找到 2.2.3 版本,点击并下载对应版本的安装包:

解压安装包

下载完成后,解压到某个文件夹下,然后进入 /bin 目录下,打开终端:

启动 Nacos

在终端中,运行如下启动命令 ( standalone 代表着单机模式运行,非集群模式) :

./startup.cmd -m standalone

当看到 Tomcat started on port(s): 8848 (http) with context path '/nacos' 提示信息,说明 Nacos 启动成功了:

访问控制台

浏览器访问地址:http://localhost:8848/nacos ,即可进入到 Nacos 的控制后台,如下图所示:

至此,通过安装包的方式,已经将本地 Nacos 环境搭建好了!

方式2Docker 安装 Nacos

接下来, 再演示一下第二种方式,通过 Docker 将本地 Nacos 环境搭建起来。

准备挂载的文件夹

在拉取 Nacos 镜像之前,在 E:\docker 文件夹下,创建一个 /nacos 文件夹,等会运行容器时,用于将 Nacos 容器中的配置文件、持久化文件挂载出来,防止容器重启时数据丢失的问题:

拉取镜像

那么,我们就下载 2.2.3 版本的 Nacos 镜像,运行命令如下:

docker pull nacos/nacos-server:v2.2.3

执行完成后,执行如下命令,查看本地已下载的镜像列表,确认一下镜像是否下载成功了:

docker images

运行一个简单的容器

镜像下载成功后,运行如下命令,运行一个 Nacos 容器:

docker run -d --name nacos --env MODE=standalone -p 8848:8848 -p 9848:9848 nacos/nacos-server:v2.2.3

解释一下各项参数的作用:

  1. docker run:这是启动一个新的容器的命令。
  2. -d:这个选项告诉 Docker 在后台detached mode运行容器这样你就不会看到容器的输出日志它将在后台运行。
  3. --name nacos:为新创建的容器指定一个名字,方便后续的管理和操作,这里命名为 nacos
  4. --env MODE=standalone:设置容器内环境变量。这里设置 MODE=standalone,表示 Nacos 以单机模式运行而不是集群模式。Nacos 支持两种模式:单机模式和集群模式。单机模式适用于开发和测试环境,集群模式适用于生产环境。
  5. -p 8848:8848:将宿主机的 8848 端口映射到容器内的 8848 端口。Nacos 的默认服务端口是 8848外部访问时需要通过该端口。
  6. -p 9848:9848:将宿主机的 9848 端口映射到容器内的 9848 端口。这个端口通常用于 Nacos 的监控和管理。
  7. nacos/nacos-server.2.3:指定要运行的镜像和版本。这里使用的是 nacos/nacos-server 镜像的 v2.2.3 版本。

命令执行完毕后,通过 docker ps 命令查看一下正在运行中的 Docker 容器,确认一下容器是否正常跑起来了,如下图所示:

访问控制台

浏览器访问地址:http://localhost:8848/nacos ,即可进入到 Nacos 的控制后台,如下图所示:

复制配置文件、数据文件

Nacos 容器跑起来后,我们将容器中的配置文件,以及数据文件复制到宿主机中。执行如下命令:

docker cp nacos:/home/nacos/conf E:\docker\nacos
docker cp nacos:/home/nacos/data E:\docker\nacos

Tip

: 复制到前面准备好的 E:\docker\nacos 文件夹下。

复制成功后,打开对应文件夹,看看是否复制成功了:

重新跑一个 Nacos 容器

最后,执行如下命令,强制删除正在运行中的 Nacos 容器:

# 删除 nacos 容器
docker rm -f nacos

重新跑一个正式的 Nacos 容器,运行命令如下:

docker run -d --name nacos --privileged -e MODE=standalone -e JVM_XMX=300m -e JVM_XMS=300m -p 8848:8848 -p 9848:9848  -v E:\docker\nacos\conf:/home/nacos/conf -v E:\docker\nacos\data:/home/nacos/data -v E:\docker\nacos\logs:/home/nacos/logs nacos/nacos-server:v2.2.3

解释一下这次命令中,额外添加的参数的含义:

  1. --privileged:使容器以特权模式运行,给予容器更多的权限,这通常用于需要更高权限的操作。
  2. -e JVM_XMX=300m:设置环境变量 JVM_XMX,指定 JVM 最大堆内存为 300MB。
  3. -e JVM_XMS=300m:设置环境变量 JVM_XMS,指定 JVM 初始堆内存为 300MB。
  4. -v E:\docker\nacos\conf:/home/nacos/conf:将宿主机的 E:\docker\nacos\conf 目录挂载到容器内的 /home/nacos/conf 目录。这样,宿主机上的配置文件可以在容器内使用。
  5. -v E:\docker\nacos\data:/home/nacos/data:将宿主机的 E:\docker\nacos\data 目录挂载到容器内的 /home/nacos/data 目录。这样Nacos 的数据可以持久化到宿主机上。
  6. -v E:\docker\nacos\logs:/home/nacos/logs:将宿主机的 E:\docker\nacos\logs 目录挂载到容器内的 /home/nacos/logs 目录。这样Nacos 的日志可以持久化到宿主机上。

至此,通过 Docker 方式,就将本地 Nacos 环境就搭建好啦~