微服务-Nacos(注册中心)

这篇具有很好参考价值的文章主要介绍了微服务-Nacos(注册中心)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nacos是SpringCloud的一个功能非常强大的组件,想比eureka的功能更加丰富

官方的nacos简介

Nacos(全称:Naming and Configuration Service)是一个开源的动态服务发现、配置管理和服务管理平台。它由阿里巴巴集团开发并贡献给开源社区,旨在帮助开发者更好地构建和管理微服务架构。

Nacos提供了以下核心功能:

  1. 服务发现和注册:Nacos充当了服务注册中心的角色,允许开发者方便地注册、发现和管理微服务实例。它使用了一致性哈希算法来实现服务的负载均衡,并提供了多种方式来进行服务的发现和调用。

  2. 动态配置管理:Nacos可以集中管理应用程序的配置信息。开发者可以使用Nacos动态地更新和发布配置,而无需重新部署或重启应用程序。这样可以提高配置的灵活性和可维护性,同时减少了配置管理的复杂性。

  3. 服务健康监测:Nacos可以监测和报告微服务的健康状态。它可以定期进行心跳检查,并通过心跳数据来判断服务是否可用。当某个服务不可用时,Nacos可以及时发出警报,并协助进行故障排查和恢复。

  • 动态路由和负载均衡:Nacos提供了动态路由和负载均衡的功能,使开发者可以灵活地管理和调整请求的路由策略。它支持基于权重、一致性哈希和最少活跃数等多种负载均衡算法,同时也可以与其他开源组件(如Nginx和OpenResty)集成。

        总而言之,Nacos提供了一套完整的微服务基础设施,帮助开发者更好地构建、管理和调整微服务架构。它具有开源、易用、高可用和可扩展等特点,在业界得到了广泛的应用和认可。

Nacos安装

Windows安装

  • 下载安装包

在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:

GitHub主页:https://github.com/alibaba/nacos

GitHub的Release下载页:Releases · alibaba/nacos · GitHub

  • 解压(任意的非中文目录)
  • 端口配置
  • Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,进入nacos的conf目录中进行修改
  • 启动(进入bin目录)

打开cmd执行命令:

startup.cmd -m standalone
  •  访问(http://127.0.0.1:8848/nacos )账号密码都是nacos

Linux安装

  • 安装jdk

在java官网可以下载jdk的jar包,将下载好的jar包上传到某个目录(例如/user/local/)

解压后重命名为java

tar -xvf jdk-8u144-linux-x64.tar.gz

配置环境变量:

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin

设置环境变量:

source /etc/profile
  • 上传安装包

上传到Linux服务器的某个目录(例如:/user/local/src)

  • 解压

命令解压压缩安装包

tar -xvf nacos-server-1.4.1.tar.gz

删除安装包:

rm -rf nacos-server-1.4.1.tar.gz
  • 端口配置
  • 启动
sh startup.sh -m standalone

SpringCloud引入nacos

1.在父工程中引入对应的依赖:

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

2.注释掉原来AB服务中的eureka依赖

3.在nacos客户端引入相应的依赖:

<!-- nacos客户端依赖包 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

4.修改A、B服务中的yml文件,注释掉eureka地址,添加nacos地址

spring:
  cloud:
    nacos:
      server-addr: nacos:8848 # nacos服务地址

总结:

1.Nacos服务搭建

  • 下载安装包
  • 解压
  • 在bin目录下运行指令:startup.cmd -m standalone

2.Nacos服务注册或发现

  • 引入nacos.discovery依赖
  • 配置nacos地址spring.cloud.nacos.server-addr

Nacos服务分级存储模型

微服务-Nacos(注册中心),微服务,微服务,架构,云原生

 服务集群属性

1.修改对应服务的yml文件,添加如下内容

spring:
  cloud:
    nacos:
      server-addr: nacos:8848 # nacos服务地址
      discovery:
         cluster-name:SM #配置集群名称,也就是说机房的位置

总结:

1.Nacos服务分级存储模型

  • 一级是服务
  • 二级是集群
  • 三级是实例

2.如何设置实例的集群属性

  • 修改对应的yml文件,添加spring.cloud.nacos.discovery.cluster-name属性即可

        在我们生产的过程中,负载均衡肯定是优先找离自己最近的服务(相同的集群),那么我们在Spring中该如何配置去优先寻找与自己同集群的服务呢?

根据集群进行负载均衡

1.修改A服务中的yml文件,设置集群为SM

spring:
  cloud:
    nacos:
      server-addr: nacos:8848 # nacos服务地址
      discovery:
        cluster-name: SM

2.在A服务中设置负载均衡的IRule为NacosRule,这个规则会优先找与自己同集群的服务

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRul

根据权重进行负载均衡

       在实际的应用时,我们会遇到这样的情况,有些服务器设备差,我们希望它承担用户请求少一点,有的服务器设备好,我们希望它承担的用户请求多一点

Nacos支持权重配置来控制访问频率,权重越大则访问频率越高[0,1]

环境隔离-namespace

Nacos中服务存储和数据存储的最外层都是一个名为namespqce的东西,用来做最外层隔离

微服务-Nacos(注册中心),微服务,微服务,架构,云原生

 在Nacos控制台可以创建namespace,用来隔离不同的环境(命名空间->新建命名空间)

 cluster-name: SM
      discovery:
        #命名空间ID
        namespace: 4d6ce343-9e1b-44df-a90f-2cf2b6b3d177 # dev环境
        

每个隔离环境都有唯一的id         不同的环境下的服务互相不可见

Nacos注册中心原理

微服务-Nacos(注册中心),微服务,微服务,架构,云原生

 我们可以设置该服务是否是临时实例:

spring:
  cloud:
    nacos:
      discovery:
        ephemeral: false # 是否是临时实例

临时实例宕机时,会从nacos的服务列表中剔除,而非临时实例则不会


Nacos和eureka的共同担点:

  • 都支持服务注册和服务拉取
  • 都支持服务提供者心跳方式做健康检测

Nacos与Eureka的区别:文章来源地址https://www.toymoban.com/news/detail-659630.html

  • Nacos支持服务端主动检测提供者的状态:临时实例采用心跳模式,非临时实例采用主动检测模式
  • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
  • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
  • Nacos集群默认采用的是ap模式(一致性较弱,可用性较强),当集群当存在非临时实例时,采用cp模式(一致性较强,可用性较弱),Eureka采用ap模式

到了这里,关于微服务-Nacos(注册中心)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务注册中心-Nacos概述

    Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 N

    2024年02月04日
    浏览(30)
  • Nacos:服务的注册、发现和配置中心(注册篇)

    Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 N

    2024年02月15日
    浏览(32)
  • nacos 注册中心服务端配置详解

    Nacos是一个开源的动态服务发现、配置管理和服务管理平台。在使用Nacos作为注册中心时,需要配置Nacos Server的相关参数。 下面是Nacos Server的配置参数详解: nacos.core.default.namespace: Nacos默认的命名空间,用于隔离不同的环境或不同的应用。默认值为public。 nacos.naming.data.warmup

    2024年02月13日
    浏览(31)
  • Ribbon和 Nacos服务注册中心

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 微服务探索之旅 ✨特色专栏: MySQL学习 🥭本文内容:Ribbon和 Nacos服务注册中心 🖥️个人小站 :个人博客,欢迎大家访问 📚个人知识库: 知

    2024年02月09日
    浏览(27)
  • Nacos作为服务注册中心简单示例

    主要包含两个服务: zhshl-order服务: 作为服务消费者 zhsl-stock服务: 作为服务提供者 当我们启用服务发现的时候,需要进行的操作主要有三步 0、前置条件,需要先搭建好一个nacas服务,可以是一个集群或者是单个nacos服务。可以参考https://nacos.io/zh-cn/docs/quick-start.html, 示例中使用

    2024年02月07日
    浏览(77)
  • Spring Cloud Alibaba 微服务2,注册中心演变 + Nacos注册中心与配置中心

    🏆作者简介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 , 专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于 Java基础教程系列(进阶篇) ,本专栏是针对大学生、初级Java工程师精心打造, 针对Java生态,逐个击破,

    2024年02月02日
    浏览(38)
  • 【微服务】Nacos注册中心(3):配置管理

    给微服务配置namespace 给微服务配置namespace只能通过修改配置来实现。 重启order-service后,访问控制台,可以看到下面的结果 此时访问order-service,因为namespace不同,会导致找不到userservice,控制台会报错 Nacos的服务实例分为两种l类型: 临时实例:如果实例宕机超过一定时间,

    2024年02月05日
    浏览(37)
  • 微服务(二)——注册中心(Eureka、Nacos)

    注册中心: 需求:当一个服务提供者 Service 部署了多个实例交给 User 远程调用时: 服务消费者 User 应该调用哪个实例,如何获取其对应地址和端口? User 如何获知实例是否健康? 注册中心作用: 帮助管理服务,并帮助服务调用者选择并调用服务 实时监测服务实例是否健康

    2024年02月12日
    浏览(28)
  • 基于Dubbo和Nacos搭建微服务的配置中心和服务注册中心

    1.添加nacos依赖 2.配置application.properties PS:nacos2.0除了需要8848的端口之外,还新增了端口+1000的新端口用于客户端和服务端GRPC通信的端口,所以如果是自己部署的nacos需要放开这俩个端口,服务才可以启动成功。 3.配置类 3.1 添加Spring Cloud原生注解 @EnableDiscoveryClient 3.2 客户端服

    2024年02月16日
    浏览(35)
  • nacos2.1.1版本,作为注册中心,配置中心如何使用,nacos服务端启动,微服务搭建,nacos集群化部署

    关于nacos 相信大多数人一样,在接触微服务的时候知道有Netflix系列和alibaba系列 但是Netflix这一套如今由于部分组件不在开源,又有alibaba这一套的出现,市面上,alibaba系列微服务架构已经是最火热的了,而nacos则是alibaba系列组件充当服务注册发现和配置中心的角色 说白了,就是将每个

    2024年02月03日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包