174 SpringCloudAlibaba Nacos的使用

发布时间:2024年01月19日

SpringCloudAlibaba Nacos
? 由于eureka的功能性较少,且一段时间内没有维护,因此,阿里推出了自己的注册中心Nacos。

1 介绍

? Nacos是由SpringCloudAlibaba提供一个组件,可以作为服务注册中心、分布式配置中心使用。功能强大且性能强悍。其不仅能与SpringCloud无缝整合,同时也能与Apache Dubbo、Service Mesh整合。

官网地址:https://nacos.io/zh-cn/index.html

2 快速入门

1)基于Docker安装并启动nacos

简单版

docker run -id -e MODE=standalone -e JVM_XMS=256m -e JVM_XMX=256m -e JVM_XMN=256m --name nacos -p 8848:8848 nacos/nacos-server:1.4.1

# 基于MySQL版本
docker run -e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.200.150 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_DATABASE_NUM=1 \
-e JVM_XMS=256m -e JVM_XMX=256m -e JVM_XMN=256m \
--name nacos -d -p 8848:8848 nacos/nacos-server:1.4.1

2)访问nacos ip:8848/nacos 默认账号密码是nacos/nacos

3)父工程pom文件

<!-- cloud -->
<dependencyManagement>
  <dependencies>
    <!--springcloud-->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>Hoxton.SR8</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <!--Springcloud alibaba-->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
      <version>2.2.5.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

4)修改用户服务&订单服务pom文件

<!-- nacos注册中心依赖包 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

5)修改用户服务&订单服务application.yml

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.200.150:8848 #nacos地址

#如果不想使用 Nacos 作为您的服务注册与发现,可以将 spring.cloud.nacos.discovery.enabled 设置为 false
6)启动服务并测试

3 namespace命名空间

命名空间(namespace)可用于进行不同环境的配置隔离。

例如可以隔离开发环境、测试环境和生产环境,因为它们的配置可能各不相同,或者是隔离不同的用户,不同的开发人员使用同一个nacos管理各自的配置,可通过 namespace隔离。

快速使用步骤:

1)新建命名空间

在这里插入图片描述

在这里插入图片描述
新建成功后复制id
在这里插入图片描述
2)修改用户服务&订单服务application.yml

cloud:
  nacos:
    discovery:
      server-addr: 192.168.200.150:8848 #nacos地址
      namespace: 823f04d1-af6e-470d-b363-029ea453c8de  #namespace id

3)启动用户服务&订单服务查看nacos服务列表

在这里插入图片描述
实际开发过程如果nacos是共用,则可以每个开发人员设置自己的namespace空间,起到隔离的作用。

关于nacos更多配置可以参考官网

4 工作流程

在这里插入图片描述

1)启动注册中心,其内部会维护一张服务注册表。

2)当服务提供者启动后,会向注册中心注册。注册中心会将服务提供者信息更新到注册表中并将提供者实例挂载。

3)服务提供者向注册中心发送心跳包。

4)服务消费者要获取实例有两种方式:直接获取、长订阅。

? 4.1)直接获取:直接从注册中心获取实例(不推荐)

? 4.2)长订阅:服务消费者启动后会建立长连接,从注册中心获取服务信息并在本地维护一张注册表。当注册中心的注册表更新后,服务消费者也会获取消息并更新本地服务列表。

文章来源:https://blog.csdn.net/weixin_44498127/article/details/135568148
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。