Nacos作为注册中心

一、认识和安装Nacos

Nacos

Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。

安装好后可以进入修改配置文件,修改端口,配置好后启动服务,

然后进入网站可以看到服务和配置中心。

二、Nacos快速入门(服务注册到Nacos)

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

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

注:注释掉order-service和user-service中原有的eureka依赖。

2.2、子模块添加nacos的客户端依赖:

<dependency>

<groupId>com.alibaba.cloud</groupId>

<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>

</dependency>

2.3、修改user-service&order-service中的application.yml文件,注释eureka地址,添加nacos地址:

spring:

datasource:

url: jdbc:mysql://localhost:3306/order-service?useSSL=false

username: root

password: 123456

driver-class-name: com.mysql.jdbc.Driver

application:

name: orderservice

cloud:

nacos:

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

2.4、启动并测试

三、Nacos服务分级存储模型

3.1、nacos服务分级存储模型

3.2、服务跨集群调用问题

服务调用尽可能选择本地集群的服务,跨集群调用延迟较高

本地集群不可访问时,再去访问其它集群

3.3、服务集群属性配置

修改application.yml,添加如下内容

spring:

cloud:

nacos:

server-addr: localhost:8848

discovery:

cluster-name: HZ # 集群名称

3.4、NacosRule负载均衡

默认的`ZoneAvoidanceRule`并不能实现根据同集群优先来实现负载均衡。

因此Nacos中提供了一个`NacosRule`的实现,可以优先从同集群中挑选实例。

3.4.1、给order-service配置集群信息

修改order-service的application.yml文件,添加集群配置:

spring:

cloud:

nacos:

server-addr: localhost:8848

discovery:

cluster-name: HZ # 集群名称

3.4.2、修改负载均衡规则

修改order-service的application.yml文件,修改负载均衡规则:

userservice:

ribbon:

cloud:

nacos:

server-addr: localhost:8848

discovery:

cluster-name: HZ # 集群名称

3.4、NacosRule负载均衡

默认的`ZoneAvoidanceRule`并不能实现根据同集群优先来实现负载均衡。

因此Nacos中提供了一个`NacosRule`的实现,可以优先从同集群中挑选实例。

3.4.1、给order-service配置集群信息

修改order-service的application.yml文件,添加集群配置:

spring:

cloud:

nacos:

server-addr: localhost:8848

discovery:

cluster-name: HZ # 集群名称

3.4.2、修改负载均衡规则

修改order-service的application.yml文件,修改负载均衡规则:

userservice:

ribbon:

NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则

NacosRule负载均衡策略

1.优先选择统同集群服务实例列表

2.本地集群找不到提供者,才会去其它集群寻找,并且会警告

3.确定了实例列表后,再采用随机负载均衡挑选实例

服务实例权重配置

实际部署中会出现这样的场景:

服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。

但默认情况下NacosRule是同集群内随机挑选,不会考虑机器的性能问题。

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

在nacos控制台,找到user-service的实例列表,点击编辑,即可修改权重:

四、Nacos环境隔离

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

- nacos中可以有多个namespace

- namespace下可以有group、service等

- 不同namespace之间相互隔离,例如不同namespace的服务互相不可见

4.1、新建命名空间

在Nacos控制台可以创建namespace,用来隔离不同环境

4.2、然后填写一个新的命名空间信息:

4.3、保存后会在控制台看到这个命名空间的id:

4.4、修改order-service的application.yml,添加namespace:

spring:

cloud:

nacos:

server-addr: localhost:8848

discovery:

cluster-name: HZ

namespace: 492a7d5d-237b-46a1-a99a-fa8e98e4b0f9 # 命名空间,填ID

4.5、重启order-service后,再来查看控制台:

4.6、此时访问order-service,因为namespace不同,会导致找不到userservice,控制台会报错:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值