六、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下的服务互相不可见
相关推荐
原来是猿3 分钟前
TCP Echo Server 深度解析:从单进程到线程池的演进之路(上)
服务器·网络·tcp/ip
躺不平的理查德5 分钟前
Shell逻辑判断备忘录
运维·服务器·git
skywalk816314 分钟前
Trae生成的中文编程语言关键字(如“定“、“函“、“印“等)需要和标识符之间用 空格 隔开,以确保正确识别
服务器·开发语言·编程
神所夸赞的夏天21 分钟前
如何获取多层json数据,存成dictionary,并取最大最小值
java·前端·json
9号达人22 分钟前
为什么你应该在 MQ 里用多个消费者,而不是一个
java·后端·架构
焦糖玛奇朵婷25 分钟前
健身房预约小程序开发、设计
java·大数据·服务器·前端·小程序
小新同学^O^32 分钟前
简单学习 --> TCP协议
java·网络·tcp
月落归舟44 分钟前
深入理解Java适配器模式,彻底搞懂设计思想
java·开发语言·适配器模式
Mr_pyx1 小时前
【LeetHOT100】二叉树的中序遍历——Java多解法详解
java·开发语言·深度优先
jay神1 小时前
基于SpringBoot的宠物生命周期信息管理系统
java·数据库·spring boot·后端·web开发·宠物·管理系统