SpringCloud笔记(三)——Nacos

Nacos

学习视频链接:
黑马程序员:https://www.bilibili.com/video/BV1LQ4y127n4

1、认识与安装nacos

什么是nacos?

Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。

官方介绍是这样的:

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。

官方网址:http://nacos.io

nacos安装

1、先到nacos的GitHub官网进行下载:https://github.com/alibaba/nacos/tags

请添加图片描述

2、下载完成后,点击解压到我们方便找到的路径当中

请添加图片描述

3、在命令行当中启动bin文件夹当中的startup.cmd

startup.cmd -m standalone

请添加图片描述

4、在浏览器中输入http://192.168.17.1:8848/nacos/index.html (默认的账号密码都是nacos)

请添加图片描述

如果需要修改端口,在conf文件夹当中用记事本打开application.properties文件,找到server.port修改即可
请添加图片描述

2、服务注册

1、在父工程中添加spring-cloud-alilbaba的管理依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.2.5.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

2、添加nacos的客户端依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

3、在yml配置文件当中配置naco服务地址

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

请添加图片描述

3、Nacos服务分级存储模型

请添加图片描述

关于服务跨集群调用问题

  • 服务调用尽可能选择本地集群的服务,跨集群调用延迟较高
  • 本地集群不可访问时,再去访问其它集群
spring
    cloud:
      nacos:
        server-addr: localhost:8848 #nacos服务地址
        discovery:
            cluster-name: HZ #集群名称

请添加图片描述

如果没有定义集群默认默认就是归属本地

Nacos服务分级存储模型

  • 一级是服务,例如userService
  • 二级是集群,例如杭州/上海
  • 三级是实例,例如杭州机房的某台部署了userService的服务器

设置实例的集群属性方法:

在配置文件中添加spring.cloud.nacos.dicovery.cluster-name属性即可

4、NacosRule负载均衡

在没开启NacosRule负载均衡之前,Nacos默认使用轮询的方式在各个服务器当中进行访问。

配置NacosRule:

userService #配置服务名称
  ribbon:
    NFloadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #开启NacosRule负载均衡
  • NacosRule负载均衡默认同集群服务实例优先
  • NacosRule确定了可用实例后,访问方式为随机访问
  • 如果跨集群访问会有警告信息

5、服务实例的权重设置

目的:在服务器设备性能好的机器上多承担一些用户请求,性能差的少承担一些用户请求

Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高!

配置方式:

1、在Nacos控制台选中实例后面的编辑按钮

请添加图片描述

2、将权重设置为你想要的大小(0-1)即可(越小访问的几率也越小)

请添加图片描述

6、环境隔离配置

Nacos管理台有一个单独的菜单”命名空间”,里面默认存在一个名为"public" 的默认命名
空间,我们在使用Nacos时不管是作为注册中心还是配置中心,都是作用在该命名空间之下
的,那么这个命名空间到底起着什么作用呢?其实Nacos基于Namespace帮助用户逻辑隔离
多个命名空间,这可以帮助用户更好的管理测试、预发、生产等多环境服务和配置,让每个环
境的同一个配置(如数据库数据源)可以定义不同的值。

让我们先来看看隔离之前的配置:

开启两个服务分别开启了orderService和userService,此时在nacos控制台的界面为;

请添加图片描述

到nacos控制台新建一个命名空间名为dev

请添加图片描述

配置orderService环境隔离:

cloud:
  nacos:
    server-addr: localhost:8848 # nacos服务地址
    discovery:
      namespace: 7712e234-2a11-4bd6-a5ba-e12caedef75a #dev环境,此字符串为nacos控制台新建命名空间时生成的id

重启服务之后,nacos控制台显示为:

请添加图片描述
请添加图片描述

可以发现,orderService被分组到了dev,此时接口调用会发现orderService无法调用userService,提示服务器错误
请添加图片描述

圈红翻译:负载平衡器没有可用于客户端的服务器:userservice


可知

  1. namespace用来做环境隔离
  2. 每个namespace都有唯一id
  3. 不通namespace下的服务不可见

7、Nacos、Eureka

相同点

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

区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值