SpringCloud Nacos 注册中心 -- Nacos快速入门、Nacos服务分级存储模型(集群)、集群负载均衡策略 NacosRule

本示例代码依赖于上一节的代码

1. Nacos快速入门


1.1 服务注册到Nacos


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

1.1.2 注释掉order-service和user-service中原有的eureka依赖,添加nacos的客户端依赖

在这里插入图片描述

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

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

在这里插入图片描述

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

1.2.4 启动并测试

请大家先按照这里讲的去启动Nacos客户端

在这里插入图片描述

我们发现user-service和order-service都成功的注册进来了。

在这里插入图片描述
点击详情还可以更加清楚的看见服务的信息,包含实例的信息。
在这里插入图片描述

小结:

在这里插入图片描述


2. Nacos服务分级存储模型(集群)

一级为服务,二级为集群,三级为实例。
在这里插入图片描述


2.1 服务跨集群调用问题

在这里插入图片描述


2.2 配置服务集群

在这里插入图片描述

我们先把所以的服务停掉
在这里插入图片描述
然后在拷贝一个UserApplication3:
在这里插入图片描述

我们现在要做的是把UserApplication和UserApplication2放在杭州(HZ)集群,把UserApplication3放在上海(SH)集群。

修改application.yml,添加如下内容:
在这里插入图片描述

spring:
  cloud:
    nacos:
      discovery:
        cluster-name: HZ # 集群名称 杭州

启动UserApplication和UserApplication2
在这里插入图片描述
然后把 集群的 HZ 改为 SH
在这里插入图片描述

然后启动UserApplication3
在这里插入图片描述

接下来去查看Nacos客户端:
在这里插入图片描述


2.3 小结

在这里插入图片描述


3. 集群负载均衡策略


3.1 修改order-service中的application.yml,设置集群为HZ

在这里插入图片描述
在这里插入图片描述


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

Ribbon负载均衡默认采用轮询服务列表的方式去访问服务。

在order-service中设置负载均衡的IRule为NacosRule,这个规则优先会寻找与自己同集群的服务,然后在本地集群的服务里面采用随机访问的方式。
在这里插入图片描述

# 这个是微服务的id
user-service:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则 这个规则优先会寻找与自己同集群的服务

假如本地集群里面没有相关的服务会怎么办?

在这里插入图片描述

假如本地集群里面没有相关的服务会跨集群去访问服务。
在这里插入图片描述

在这里插入图片描述


3.3 小结

在这里插入图片描述



Spring Cloud Alibaba Nacos 是一个服务注册中心和配置中心,可以实现服务的注册与发现、配置的动态管理等功能,同时还提供了容灾和高可用的支持。下面简单介绍如何使用 Nacos 实现 Spring Cloud 的配置容灾。 首先,在应用的 `pom.xml` 文件中添加如下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.3.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.3.RELEASE</version> </dependency> ``` 然后在 `application.properties` 中配置 Nacos 的地址和应用的名称: ```properties spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.namespace=your-namespace spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=your-namespace spring.cloud.nacos.config.file-extension=properties spring.application.name=your-application-name ``` 其中 `server-addr` 是 Nacos 的地址,`namespace` 是命名空间,`file-extension` 是配置文件的扩展名,`application.name` 是应用的名称。 接着在 `bootstrap.properties` 中配置应用的环境和配置来源: ```properties spring.profiles.active=dev spring.cloud.nacos.config.prefix=${spring.application.name}-${spring.profiles.active} spring.cloud.nacos.config.group=DEFAULT_GROUP spring.cloud.nacos.config.shared-dataids=${spring.application.name}-${spring.profiles.active}.properties ``` 其中 `spring.profiles.active` 是应用的环境,`prefix` 是配置文件的前缀,`group` 是配置文件所在的分组,`shared-dataids` 是配置文件的名称。 最后,在代码中使用 `@Value` 注解来获取配置项的值: ```java @RestController public class ConfigController { @Value("${config.key}") private String configValue; @GetMapping("/config") public String getConfig() { return configValue; } } ``` 其中 `config.key` 是配置项的名称。 以上就是使用 Nacos 实现 Spring Cloud 的配置容灾的简单示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeJiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值