六、Nacos快速入门

目录

一、服务注册到Nacos

二、nacos服务分级存储模型

1、作用

2、划分集群

3、根据权重负载均衡

三、环境隔离

1、在未设置namespace时,所有服务都默认在public

2、新建namespace

3、将order-service的namespace更改为dev

4、总结


一、服务注册到Nacos

1、将以下代码复制到父工程的pom文件下

复制代码
<!--            nacos依赖-->
            <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、将以下代码复制到子工程的pom文件下

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

3、更改子工程的yml文件,在spring下增加nacos的服务地址

4、启动服务

5、查看nacos,发现服务注册成功

二、nacos服务分级存储模型

1、作用

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

当服务被注册时,它会有默认的集群,为default

2、划分集群

(1)我们现在有如下三个实例

(2)我们要将1,2划分到HZ集群,首先就要在yml文件中增加如下代码

复制代码
      discovery:
        cluster-name: HZ

(3)然后启动服务1,2

(4)接下来讲服务3划分到SH集群,首先修改yml文件

(5)启动服务3,并在Nacos中查看

(6)将order也划分进入HZ集群,并且清空服务1,2,3的日志

(7)使用get请求访问服务并查看

我们发现它并没有优先访问同集群的实例

所以,我们要在order的yml文件中修改负载均衡规则

复制代码
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

(8)重启order服务,并发送get请求



为此,我们可以看到服务1,2有访问,而服务3未被访问,所以优先访问了同集群的服务

(9)关闭服务1,2;并发送get请求

发现这次是服务3处理了这次请求,且有跨域访问的警告

3、根据权重负载均衡

(1)每个服务都有自己的权重

(2)当我将某一机器的权重调整为0.1时,它的被访问量就是其它服务的十分之一

(3)若权重设置为0,则该服务不能接收请求,这样就可以在用户无感知的情况下去做服务升级了

三、环境隔离

1、在未设置namespace时,所有服务都默认在public

2、新建namespace

生成了一个id

3、将order-service的namespace更改为dev

(1)首先复制id

(2)找到order的yml文件,并添加如下内容

(3)重启order

(4)查看dev空间的服务

(5)且order以无法访问

(6)所以,要让服务可以访问,就必须放在相同的环境下

4、总结

  1. 每个namespace都有唯一id
  2. 服务设置namespace时要写id而不是名称
  3. 不同namespace下的服务互相不可见
相关推荐
吴声子夜歌8 分钟前
Java——显示条件
java·开发语言
AC赳赳老秦13 分钟前
OpenClaw与WPS宏联动:批量执行WPS复杂操作,解决办公表格批量处理难题
java·前端·数据库·自动化·需求分析·deepseek·openclaw
源远流长jerry22 分钟前
Linux 网络虚拟化深度解析:从 veth 设备对到容器网络实战
linux·运维·服务器·网络·性能优化·php
bupt_0135 分钟前
Hermes深入理解及源码解析(二):Hermes的记忆机制
java·服务器·前端
kidwjb36 分钟前
Linux共享内存
linux·服务器·进程间通信
Ting-yu1 小时前
Spring AI Alibaba零基础速成(1) ---- 项目创建与配置
java·人工智能·spring
喜欢coding的谢同学1 小时前
ArthasClaw:用自然语言诊断 JVM 的 AI 助手,告别繁琐的 Arthas 命令
java·人工智能·arthas
QuestLab1 小时前
Ollama在Linux上安装的详细记录
linux·运维·服务器
狼与自由1 小时前
微服务网关演化
微服务·云原生·架构
架构源启1 小时前
Spring AI完整学习路线:从Java开发到AI Agent的进阶之路(附15篇实战教程)
java·人工智能·spring