1.什么是nacos

Spring Cloud Alibaba服务注册与配置中心
Nacos 英文全称为 Dynamic Naming and Configuration Service,是一个由阿里巴巴团队使用 Java 语言开发的开源项目。
Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台(参考自 Nacos 官网)。
Nacos 的命名是由 3 部分组成:

组成部分 全称 描述
Na naming/nameServer 即服务注册中心,与 Spring Cloud Eureka 的功能类似。
co configuration 即配置中心,与 Spring Cloud Config+Spring Cloud Bus 的功能类似。
s service 即服务,表示 Nacos 实现的服务注册中心和配置中心都是以服务为核心的。

可以将 Nacos 理解成服务注册中心和配置中心的组合体,它可以替换 Eureka 作为服务注册中心,实现服务的注册与发现;还可以替换 Spring Cloud Config 作为配置中心,实现配置的动态刷新。
Nacos 支持几乎所有主流类型“服务”的发现、配置和管理:

  • Kubernetes Service
  • gRPC& Dubbo RPC Service
  • Spring Cloud RESTful Service

    2.nacos的特性

    Nacos 提供了一系列简单易用的特性,能够帮助我们快速地实现动态服务发现、服务配置等功能

    服务发现

    Nacos 支持基于 DNS 和 RPC 的服务发现。当服务提供者使用原生 SDK、OpenAPI 或一个独立的 Agent TODO 向 Nacos 注册服务后,服务消费者可以在 Nacos 上通过 DNS TODO 或 HTTP&API 查找、发现服务。

    服务健康监测

    Nacos 提供对服务的实时健康检查,能够阻止请求发送到不健康主机或服务实例上。Nacos 还提供了一个健康检查仪表盘,能够帮助我们根据健康状态管理服务的可用性及流量。

    动态配置服务

    动态配置服务可以让我们以中心化、外部化和动态化的方式,管理所有环境的应用配置和服务配置。
    动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效、敏捷。
    配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
    Nacos 提供了一个简洁易用的 UI 帮助我们管理所有服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助我们更安全地在生产环境中管理配置变更和降低配置变更带来的风险。

    动态 DNS 服务

    Nacos 提供了动态 DNS 服务,能够让我们更容易地实现负载均衡、流量控制以及数据中心内网的简单 DNS 解析服务。
    Nacos 提供了一些简单的 DNS APIs TODO,可以帮助我们管理服务的关联域名和可用的 IP:PORT 列表。

    服务及其元数据管理

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

    3.Nacos两大组件

    | 组件 | 描述 | 功能 | | —- | —- | —- | | Nacos Server | Nacos 服务端,与 Eureka Server 不同,Nacos Server 由阿里巴巴团队使用 Java 语言编写并将 Nacos Server 的下载地址给用户,用户只需要直接下载并运行即可。 | Nacos Server 可以作为服务注册中心,帮助 Nacos Client 实现服务的注册与发现。 | | | | Nacos Server 可以作为配置中心,帮助 Nacos Client 在不重启的情况下,实现配置的动态刷新。 | | Nacos Client | Nacos 客户端,通常指的是微服务架构中的各个服务,由用户自己搭建,可以使用多种语言编写。 | Nacos Client 通过添加依赖 spring-cloud-starter-alibaba-nacos-discovery,在服务注册中心(Nacos Server)中实现服务的注册与发现。 | | | | Nacos Client 通过添加依赖 spring-cloud-starter-alibaba-nacos-config,在配置中心(Nacos Server)中实现配置的动态刷新。 |

4.Window下单机版搭建流程

1.使用浏览器访问 Nacos Server 下载页面,并在页面最下方点击链接 nacos-server-2.0.3.zip,如图:

image.png

2.目录结构说明

image.png

  • bin:用于存放 Nacos 的可执行命令。
  • conf:用于存放 Nacos 配置文件。
  • target:用于存放 Nacos 应用的 jar 包。

    3.如何启动

    startup.cmd -m standalone
    也可以双击bin目录下的startup.cmd直接运行

    4.双击双击bin目录下的startup.cmd运行失败

    将startup.cmd的配置set MODE=”cluster”改为set MODE=”standalone”
    image.png

    5.UnsupportedOperationException:Cannot determin JNI Library name for ARCH=’x86’ OS=’XXXX’ name=’rocksdb’

    重装jdk,64位系统必须安装64位的版本.如下图:x64 RPM
    image.png

    5.Windows下集群版搭建流程

    6.Linux下单机版搭建流程

    1.创建文件夹

  1. cd /data
  2. mkdir naocs
  3. cd nacos

    2.下载文件

    下载地址:https://github.com/alibaba/nacos/releases/
    image.png
    如图所示复制链接地址
    下载链接示例格式如下:https://github.com/alibaba/nacos/releases/download/2.1.0/nacos-server-2.1.0.tar.gz
    下载命令:wget https://github.com/alibaba/nacos/releases/download/2.1.0/nacos-server-2.1.0.tar.gz

    3.解压文件

  4. tar -zxvf nacos-server-2.1.0.tar.gz

  5. rm -rf nacos-server-2.1.0.tar.gz
  6. ls

image.png

4.项目启动环境搭建

启动需要现在linux下安装如下依赖项

  1. jdk1.8+
  2. Maven 3.2.x+

    5.项目启动

  3. cd nacos/bin

  4. sh startup.sh -m standalone(启动后退出进程依然执行,无需使用进程管理工具)

image.png

6.查看日志看是否启动成功

tail -f -n 100 /data/nacos/nacos/logs/start.out
image.png

7.开通端口

切记需开通三个端口,不然会报错nacos server cannot connect!!!
端口如下:

  1. 8848:nacos默认开启端口,开通后可进行控制台页面登录以及查看
  2. 9848:客户端gRPC请求服务端端口
  3. 9849:服务端gRPC请求服务端端口

因为本人用的是阿里云服务器,因此开通安全组即可
image.png

8.启动服务后访问页面验证

如图:注册中心以及服务中心启动成功
image.png
image.png

7.linux下集群版搭建流程

8.访问nacos页面