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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 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

image-20220826082807371.png

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-mstandalone

image-20220826083832538.png

2、启动项目的user-service、order-service服务

image-20220826084016042.png

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

image-20220826084607759.png

4、配置集群

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

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

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

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

image-20220826085334200.png

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

spring:
cloud:
nacos:
server-addr: localhost:8848discovery:
cluster-name: ZhengZhou#集群名称

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

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

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

image-20220826091147758.png

image-20220826091224166.png

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

image-20220826091322379.png

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

image-20220826091619756.png

5、环境隔离

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

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

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

image-20220826091946860.png

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

image-20220826092029683.png

3、微服务配置namespace

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

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

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

image-20220826092658666.png

6、Nacos与Eureka的区别

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

  • 临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。
  • 非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。
  • Nacos与eureka的共同点
  • 都支持服务注册和服务拉取
  • 都支持服务提供者心跳方式做健康检测
  • Nacos与Eureka的区别
  • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
  • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
  • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
  • Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

总结

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


相关文章
|
4月前
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
285 0
|
23天前
|
存储 缓存 负载均衡
Nacos注册中心
Nacos注册中心
51 1
Nacos注册中心
|
2月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
151 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
2月前
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
3月前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
2月前
|
负载均衡 算法 Nacos
SpringCloud 微服务nacos和eureka
SpringCloud 微服务nacos和eureka
66 0
|
2月前
|
负载均衡 Java API
【Spring Cloud生态】Spring Cloud Gateway基本配置
【Spring Cloud生态】Spring Cloud Gateway基本配置
42 0
|
3月前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
23天前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
52 1
Nacos配置中心
|
20天前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。