Nacos

1 什么是Nacos

        Nacos是阿里巴巴开源的一款面向云原生应用的动态服务发现、配置管理和服务管理平台。它支持多种服务发现方式(如DNS、RPC和 HTTP)、多种数据模型(如Config和Service)和多种部署模式(如Standalone、Cluster和console cluster),非常适用于微服务架构的应用场景。

        Nacos官方文档地址如下:https://nacos.io/zh-cn/docs/what-is-nacos.html。

        Nacos提供了可视化的管理界面和REST API 接口,方便用户使用和管理。

        Nacos 的主要功能包括:

        1、服务发现和注册:Nacos 支持多种服务注册与发现方式,包括基于 DNS、RPC 或 HTTP 的方式,支持权重、健康状态和元数据的管理。

        2、配置中心:Nacos 提供了统一的配置中心,用户可以通过 REST API 或客户端 SDK 对配置进行读写,Nacos 还支持动态配置,即在不重启应用的情况下修改配置。

        由于Nacos的其他功能不在本课程的范围中,这里没有展开介绍,感兴趣的同学可自行了解。

2 Nacos的版本

        Nacos 的发展历程主要经历了两个版本,1.x 和 2.x。目前,官方在同时维护这两个版本。

        Nacos1.x 和 2.x在功能上存在一定的差异,Nacos 1.x的主要功能包括服务注册/发现、配置中心、DNS 解析、权重调整等功能;而 Nacos 2.x在1.x版本的基础上增加了元数据管理、容错、限流降级、服务熔断、服务网格等功能,可以更好地支持云原生应用的开发和管理。

        虽然Nacos 2.x 引入了一些新的功能和技术架构,但是对于一些中小型的应用系统来说,Nacos 1.x 的功能已经足够满足业务需求了。此外,许多现有的应用系统已经在使用Nacos 1.x,升级到 2.x 版本需要做一些迁移和改造,不太方便。因此,Nacos 1.x依然是一个可用的、被广泛使用的版本。

3 Nacos安装和启动示例

        首先,下载Nacos,本课程中使用的Nacos 1.4.5版本,下载地址为:https://github.com/alibaba/nacos/releases/download/1.4.5/nacos-server-1.4.5.zip。

        然后,将下载好的内容解压缩到D:/software目录下。

        在nacos/bin目录中提供了Nacos服务器程序的启动命令和终止命令。以.cmd结尾的是windows操作系统使用的命令,以.sh结尾的是Linux操作系统使用的命令。

        注意,不能通过直接双击startup.cmd来启动Nacos服务器,而是需要在命令行中通过命令+参数的方式来启动。

        可以在nacos/bin目录下通过shift+鼠标右键打开右键菜单栏,在其中选择“在此处打开Powershell窗口”,打开一个Powershell窗口。

        在Powershell窗口中使用如下命令启动Nacos。

        .\startup.cmd -m standalone

        其中:

  • -m:表示要设置启动参数
  • standalone:表示使用单机模式启动

        如果启动时报错为:Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!,表示本机没有配置JAVA_HOME的环境变量,需要先配置环境变量,然后重启Powershell窗口,再重试该命令。

        如果显示如下界面,则表示Nacos正常启动,此时注意不要关闭该Powershell窗口,关闭会导致Nacos关闭。

        使用浏览器访问http://localhost:8848/nacos,即可访问Nacos内嵌的服务网站,在网站中查看并使用Nacos。该网站的默认用户名和密码均为nacos。

4 服务注册示例

        本案例实现积分微服务和用户微服务的服务注册。

        本案例实现步骤如下:

        1、实现PointService的注册。

        2、测试注册两个PointService实例。

        3、实现UserService的注册。

        1、实现PointService的注册

        首先,在PointService的pom.xml中增加Spring Cloud Alibaba和Nacos相关的依赖。

        具体的,首先在properties标签中增加spring cloud和spring cloud alibaba的版本。需要特别注意,各框架之间存在严格的版本对应关系,需要严格按照教材中的版本来配置。        

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring-boot.version>2.3.12.RELEASE</spring-boot.version>
    <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
    <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
</properties>

        然后,在dependencies标签中增加Spring Cloud Alibaba的依赖。

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

        接下来,在dependencyManagement标签中增加版本控制信息。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>	
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

        接下来,在application.yml中新增nacos的相关配置。

spring:

  application:

    name: point-service

  cloud:

    nacos:

      discovery:

        username: nacos

        password: nacos

        server-addr: localhost:8848

        确认Nacos Server处于运行状态,启动PointService项目。通过浏览器查看Nacos Server页面中的服务管理 -> 服务列表,观察PointService实例是否注册成功。

        2、测试注册多个PointService实例

        可以使用IDEA的Edit Configurations功能配置启动多个服务实例。

        在Override parameters中覆盖项目中的配置。

        按照同样的操作,配置PointServiceApplication-8092。

        启动两个PointService实例,查看Nacos Server中的注册情况。

        3、实现UserService的注册

        请参考步骤1,为UserService项目添加Spring Cloud Alibaba和Nacos的依赖和Nacos的配置,实现将UserService服务实例注册到Nacos中。

        4、案例总结

        本案例实现了积分微服务和用户微服务的注册,并且实现了积分微服务注册多个实例。但是,用户微服务对积分微服务的访问依旧是硬编码的方式,没有应用服务发现机制。我们需要一个能基于服务发现实现微服务调用的组件。

相关推荐

  1. <span style='color:red;'>Nacos</span>

    Nacos

    2024-04-28 03:20:03      16 阅读
  2. <span style='color:red;'>Nacos</span>

    Nacos

    2024-04-28 03:20:03      12 阅读
  3. Nacos_Linux上部署nacos

    2024-04-28 03:20:03       37 阅读
  4. Docker 安装 Nacos

    2024-04-28 03:20:03       40 阅读
  5. SpringCloud面试题——Nacos

    2024-04-28 03:20:03       34 阅读
  6. docker 安装nacos

    2024-04-28 03:20:03       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-28 03:20:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-28 03:20:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-28 03:20:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-28 03:20:03       20 阅读

热门阅读

  1. ruoyi-cloud-plus的bom

    2024-04-28 03:20:03       12 阅读
  2. 【软考】面向对象设计

    2024-04-28 03:20:03       12 阅读
  3. 创建PAM配置文件

    2024-04-28 03:20:03       9 阅读
  4. C语言例题27:打印99乘法口诀表

    2024-04-28 03:20:03       11 阅读
  5. 初学gsap的记录

    2024-04-28 03:20:03       9 阅读