六、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下的服务互相不可见
相关推荐
P.H. Infinity16 分钟前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天20 分钟前
java的threadlocal为何内存泄漏
java
caridle32 分钟前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^37 分钟前
数据库连接池的创建
java·开发语言·数据库
苹果醋340 分钟前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
秋の花1 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
小松学前端1 小时前
第六章 7.0 LinkList
java·开发语言·网络
Wx-bishekaifayuan1 小时前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
全栈开发圈1 小时前
新书速览|Java网络爬虫精解与实践
java·开发语言·爬虫