Nacos

学习地址:https://www.bilibili.com/video/BV1LQ4y127n4?p=23

1、Nacos 下载和安装

1、 GitHub 主页:https://github.com/alibaba/nacos
GitHub 下载页:https://github.com/alibaba/nacos/releases
2、 在这里插入图片描述
3、 nacos 的 conf 目录下的 application.properties 中,可以查看 Nacos 的默认端口为:8848
在这里插入图片描述
4、 双击 startup.cmd 启动在这里插入图片描述
另一种启动方式:Windows 命令:startup.cmd -m standalone
在这里插入图片描述
5、 浏览器复制网址后,输入用户名:nacos、密码:nacos
在这里插入图片描述

2、Nacos 服务注册和发现

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

<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、 注释掉 order-service 和 user-service 中原有的 eureka依赖。
3、 添加 Nacos 的客户端依赖:

<dependency>
	<!-- nacos client 依赖 -->
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

4、 注释掉 user-service 和 order-service 的 application.yml 文件中的 eureka地址。
5、 添加 Nacos 地址:

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

6、 启动并测试:
在这里插入图片描述

3、Nacos 服务分级存储模型

在这里插入图片描述

服务集群属性
1、修改 application.yml 配置文件,添加如下内容:


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

2、在 Nacos 控制台可以看到集群变化:
在这里插入图片描述
总结:

  1. Nacos服务分级存储模型
    一级是服务,例如 userservice
    二级是集群,例如杭州或上海
    三级是实例,例如杭州机房的某台部署了 userservice 的服务器
  2. 如何设置实例的集群属性
    修改 application.yml 文件,添加:spring.cloud.nacos.discovery.cluster-name 属性即可。

NacosRule 负载均衡策略

1、修改 order-service 中的 application.yml 配置文件:设置集群为 HZ:


spring
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # nacos 服务端地址
        cluster-name: HZ # 配置集群名称


2、在 order-service 中设置负载均衡 的 IRule 为 NacosRule,这个规则会优先寻找与自己相同集群的服务:



userservice: # 指定负载均衡的服务名称
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡规则


3、注意将 user-service 的权重都设为 1(权重范围为 0.0 ~ 1)

NacosRule负载均衡策略总结:

  1. 优先选择同集群服务实例列表
  2. 本地集群找不到提供者,才去其它集群寻找,并且会报警告
  3. 确定了可用实例列表后,再采用 随机负载均衡 挑选实例

4、Nacos 服务实例的权重设置

实际部署中会出现这样的场景:服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。
Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。

1、在 Nacos 控制台可以设置实例的权重值,选中实例后的编辑按钮
2、将 8082 的权重设为 0.1,测试可以发现 8082 被访问的概率大大降低
在这里插入图片描述

实例的权重控制:

  1. Nacos 控制台可以设置实例的权重值,0 ~ 1之间
  2. 同集群内的多个实例,权重越高被访问的频率越高
  3. 权重设置为 0 则完全不会被访问

环境隔离

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改 order-service 的 application.yml 的配置文件:


spring
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # nacos 服务端地址
        cluster-name: HZ # 配置集群名称
        namespace: d80f77d6-95cf-4c38-a766-b5e3f80b3837 # 命名空间 ID

在这里插入图片描述

在这里插入图片描述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值