SpringCloud之Nacos,服务注册中心

本文详细介绍了Nacos作为服务注册中心的使用,包括服务注册、服务分级存储模型、服务集群属性、权重负载均衡、环境隔离以及与Eureka的区别。通过实例展示了如何配置和管理Nacos,强调了Nacos在服务发现和配置管理上的优势。
摘要由CSDN通过智能技术生成

本文讲解Nacos作为服务注册中心的用法,服务分级模型,集群分发,服务隔离以及和Eureka的区别,从多方面入门掌握Nacos

代码地址:https://gitee.com/webprogram/springcloud_learn

Nacos注册中心

认识和安装Nacos

Nacos是阿里巴巴的产品,现在是Springboot中的一个组件,相比Eureka功能更加丰富,在国内受欢迎度较高
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台

Nacos安装

GitHub主页:https://github.com/alibaba/nacos
GitHub的Release下载页:https://github.com/alibaba/nacos/releases,根据自身情况选择合适文件下载

在这里插入图片描述

启动

安装包解压后,进入bin目录,执行命令:
startup.cmd -m standalone

在这里插入图片描述

按上图地址浏览器访问,输入默认账号密码:nacos/nacos
在这里插入图片描述

Nacos快速入门
服务注册

父工程 引入Nacos管理依赖

   <dependencyManagement>
        <dependencies>
            <!-- acos的管理依赖-->
            <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>

服务模块 引入Nacos客户端依赖并配置注册中心地址

       <!--Nacos客户端依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
spring:
  cloud:
    nacos: # nacos配置
      server-addr: 127.0.0.1:8848 #Nacos注册地址

启动项目,Nacos管理界面如下:

在这里插入图片描述

可以看到,我们的服务已经注册进去了!!!

Nacos服务分级存储模型

nacos服务分级存储模型

在这里插入图片描述

一个服务会有多个实例,同时部署多个集群在不同‘地域\机房’,目的为了容灾

服务跨集群调用问题

*服务调用尽可能选择本地集群的服务,跨集群调用延迟较高
*本地集群不可用时,再去访问其他集群

例:杭州的集群中 orderservice调用userservice都是调用杭州机房中的服务,当杭州机房中userservice挂了,才回去跨区域访问上海机房中的userservice

服务集群属性

# 修改application.yml,添加如下内容:
# 1.配置所属集群名称
spring:
  cloud:
    nacos: # nacos配置
      discovery:
        cluster-name: HZ # 配置集群名称,例如:HZ,杭州:

#负载均衡策略
serservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.robbon.NacosRule # 负责均衡规则
上述配置,将某服务加入到‘HZ’集群,当配置负载均衡策略为NacosRule时,则优先调用本集群中的服务(通集群服务采用随机负载均衡规则进行调用),当本集群服务挂了则请求其他集群
Nacos管理页面如下:

在这里插入图片描述

根据权重负载均衡

背景:实际部署中服务器设备性能有差异,部分实例所在的激起性能较好,另一些比较差,那么性能好的应该多承担用户请求
nacos提供了权重配置来控制访问频率,权重越大则访问效率越高

配置方式:

在这里插入图片描述

总结:
*Nacos控制台可以设置实例的权重值,0-1之间
*集群内的多个实例,权重越大则访问频率越高
*当把权重设置为0时,则不会有请求过来(此时可以进行版本升级等,对用户来说是无感知的,实现平滑升级)

Nacos环境隔离

* namespace用来做环境隔离
* 每个namespace都有唯一id
* 不同namespace下的服务不可见

配置过程

在这里插入图片描述

以上步骤新建一个namespace,并生成唯一命名空间ID
# 配置namespace 值为生成的ID
spring:
  cloud:
    nacos: 
        namespace: a70b5a63-b7f2-41d2-8e56-0201045b2c76 # 命名空间唯一ID
此时启动项目会在对应命名空间下发现服务已注册,不同namespace之间的服务是被隔离的,无法访问

在这里插入图片描述

Nacos和Eureka对比

nacos注册中心细节分析

在这里插入图片描述

在这里插入图片描述

临时实例和非临时实例

# 服务注册到Nacos时,可以选择临时或非临时实例,通过下面配置来设置
spring:
  cloud:
    nacos: # nacos配置
        ephemeral: false # true为临时(默认)  false为非临时

总结

1.Nacos和Eureka的共同点:
*都支持服务注册和服务拉取
*都支持服务提供者心跳方式做健康监测
2.Nacos和Eureka的区别:
*Nacos支持服务端主动检测提供者的状态:临时实例采用心跳模式,,非临时实例采用主动检测模式
*临时实例心跳不健康会被注册中心剔除,非临时实例则不会被剔除
*Nacos支持服务列表变更的消息推送模式(主动向消费者推送服务列表),相对来说服务列表更新更及时
*Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值