写点什么

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

作者:
  • 2022 年 9 月 02 日
    河南
  • 本文字数:2066 字

    阅读完需:约 7 分钟

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

前言

  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 的依赖


<dependency>    <groupId>com.alibaba.cloud</groupId>    <artifactId>spring-cloud-alibaba-dependencies</artifactId>    <version>2.2.6.RELEASE</version>    <type>pom</type>    <scope>import</scope></dependency>
复制代码


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


<dependency>    <groupId>com.alibaba.cloud</groupId>    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
复制代码

2、配置 Nacos 地址

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


spring:  cloud:    nacos:      server-addr: localhost:8848    # Nacos的地址
复制代码

3、启动 Nacos 和项目

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


startup.cmd -m standalone
复制代码



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       # 集群名称
复制代码


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


-Dserver.port=8082 -Dspring.cloud.nacos.discovery.cluster-name=ZhengZhou
复制代码


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,自己生成的
复制代码



6、Nacos 与 Eureka 的区别

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


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

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

  • Nacos 与 eureka 的共同点

  • 都支持服务注册和服务拉取

  • 都支持服务提供者心跳方式做健康检测

  • Nacos 与 Eureka 的区别

  • Nacos 支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式

  • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除

  • Nacos 支持服务列表变更的消息推送模式,服务列表更新更及时

  • Nacos 集群默认采用 AP 方式,当集群中存在非临时实例时,采用 CP 模式;Eureka 采用 AP 方式

总结

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

发布于: 刚刚阅读数: 5
用户头像

关注

在校大三学生一枚 2022.08.02 加入

喜欢学习编程,擅长技术栈JAVA

评论

发布
暂无评论
SpringCloud 注册中心(Nacos)快速入门_nacos_斯_InfoQ写作社区