174 SpringCloudAlibaba Nacos的使用

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

相关推荐

  1. Elasticsearch(14) match_phrase_prefix使用

    2024-01-19 07:36:01       36 阅读
  2. Redis在项目中17使用场景

    2024-01-19 07:36:01       23 阅读
  3. vue3 学习笔记17 -- echarts使用

    2024-01-19 07:36:01       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-19 07:36:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-19 07:36:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-19 07:36:01       82 阅读
  4. Python语言-面向对象

    2024-01-19 07:36:01       91 阅读

热门阅读

  1. C#设计模式教程(1):简单工厂模式

    2024-01-19 07:36:01       51 阅读
  2. 华为/华三设备巡检常用命令分享

    2024-01-19 07:36:01       207 阅读
  3. vue3中reactive和ref函数及对比

    2024-01-19 07:36:01       56 阅读
  4. 集中常见的排序方法Go语言版本实现

    2024-01-19 07:36:01       52 阅读
  5. 使用Spring管理Caffeine缓存(CacheManager+Caffeine)

    2024-01-19 07:36:01       51 阅读
  6. 家庭家用服务全方面机器人

    2024-01-19 07:36:01       58 阅读
  7. axios的使用以及Vue动画

    2024-01-19 07:36:01       55 阅读
  8. axios原理

    2024-01-19 07:36:01       53 阅读