• SpringCloud 注册中心(Nacos)快速入门


    作者:大三的土狗
    专栏:SpringCloud
    在这里插入图片描述

    前言

      Nacos一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,目前来看还是大多数公司使用Nacos多于Eureka。

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

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

    1、Nacos 介绍

      阿里巴巴的技术一般在国内公司都推崇,注册中心也不例外,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。

    官网: https://nacos.io/zh-cn/docs/what-is-nacos.html

    在这里插入图片描述

    2、Nacos 特性

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

      Nacos使服务更容易注册,并通过DNS或者http接口发现其他服务,Nacos还提供服务的实时健康检查,防止向不健康的主机或者服务实例发送请求。

    • 动态配置服务

      动态配置服务允许在所有的环境中以集中和动态的方式管理所有的服务配置。Nacos消除了在更新配置使重新部署应用程序,使配置的更改更加高效和灵活。Nacos 以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。

    • 动态 DNS 服务

      Nacos 提供基于DNS协议的服务发现能力,支持将注册在Nacos服务以域名的方式暴露端点,让第三方应用方便查阅和发现。Nacos 更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。

    • 服务及其元数据管理

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

    3、服务注册

    1、引入依赖

    在父工程的pom文件中引入SpringCloudAlibaba的依赖

    
        com.alibaba.cloud
        spring-cloud-alibaba-dependencies
        2.2.6.RELEASE
        pom
        import
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    然后在服务的pom文件中引入nacos-discovery依赖

    
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-discovery
    
    
    • 1
    • 2
    • 3
    • 4

    2、配置Nacos地址

    在user-service和order-service的application.yml中添加nacos地址。

    spring:
      cloud:
        nacos:
          server-addr: localhost:8848		# Nacos的地址
    
    • 1
    • 2
    • 3
    • 4

    3、启动Nacos和项目

    1、cmd进入Nacos文件夹的bin目录,输入下面命令,启动Nacos。

    startup.cmd -m standalone
    
    • 1

    在这里插入图片描述

    2、启动项目的user-service、order-service服务
    在这里插入图片描述

    3、登录nacos管理页面,即可以看到微服务信息。

    在这里插入图片描述

    4、配置集群

    一个服务可以有多个实例,例如:

    • 127.0.0.1:8081
    • 127.0.0.1:8082
    • 127.0.0.1:8083

    假如这些实例分布于全国各地的不同位置,Nacos就将同一位置内的实例 划分为一个集群

    微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。

    在这里插入图片描述

    1、修改user-service的application.yml文件,添加集群配置。

    spring:
      cloud:
        nacos:
          server-addr: localhost:8848
          discovery:
            cluster-name: ZhengZhou 			# 集群名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2、复制一个user-service启动配置,添加属性。

    -Dserver.port=8082 -Dspring.cloud.nacos.discovery.cluster-name=ZhengZhou
    
    • 1

    3、右键选择Copy,复制命令输入。

    在这里插入图片描述

    在这里插入图片描述

    4、 再次查看nacos控制台,集群数目,实例数目都变成了2。

    在这里插入图片描述

    5、点击详情,可以编辑服务配置信息,配置服务权重等等。

    在这里插入图片描述

    5、环境隔离

    Nacos提供了namespace来实现环境隔离功能。

    • nacos中可以有多个namespace。
    • namespace下可以有group、service等。
    • 不同namespace之间相互隔离。

    1、创建namespace,默认情况下,所有服务都在同一个namespace,名为public。

    在这里插入图片描述

    2、我们可以点击页面新增按钮,添加一个namespace,然后填写表单。

    在这里插入图片描述

    3、微服务配置namespace

    新建的namespace,会生成一个命名空间ID,用来配置微服务。

    例如,修改order-service的application.yml文件,如图所示。

    namespace: 58025a25-2cd9-43d8-a8a3-db24c4f63429			 #命名空间,填ID,自己生成的
    
    • 1

    在这里插入图片描述

    6、Nacos与Eureka的区别

    Nacos的服务实例分为两种类型:

    • 临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。

    • 非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。

    • Nacos与eureka的共同点

      • 都支持服务注册和服务拉取
      • 都支持服务提供者心跳方式做健康检测
    • Nacos与Eureka的区别

      • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
      • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
      • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
      • Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

    总结

    以上就是Nacos的简单使用,最后送大家一句话:“靜若癱瘓,動若癲癇“。

  • 相关阅读:
    DevOps 必备的 Kubernetes 安全清单
    Kotlin Files Paths write ByteArray writeString写多行BufferedWriter
    定时器,同步API和异步API,文件系统模块,文件流
    Spring IOC工厂
    Linux防火墙之iptables(上)
    开发调试:提高代码质量与开发效率的关键步骤
    【IDEA】IntelliJ IDEA的使用2.0——结合实际场景提升工具使用
    【Android面试八股文】Kotlin内置标准函数apply的原理是什么?
    K-Means
    DeepMind: 用ReLU取代Softmax可以让Transformer更快
  • 原文地址:https://blog.csdn.net/qq_53463544/article/details/126537390