六、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下的服务互相不可见
相关推荐
linux-hzh1 小时前
百日算法修炼 · Day 03
java·算法
yyy(十一月限定版)1 小时前
017【入门】最小栈
linux·运维·服务器
不负岁月无痕2 小时前
简单理解操作系统结构
java·linux·c语言·开发语言·c++·面试
mister_guo2 小时前
Java线程池参数应该如何设置(ThreadPoolExecutor)
java
余额瞒着我当琳2 小时前
C++模板初阶与STL初探
android·java·c++
淡海水2 小时前
15-02-YooAsset面试篇-Unity架构设计与源码
java·unity·面试·c#·游戏引擎·yooasset
weixin_BYSJ19872 小时前
springboot酒店管理系统--附源码27436
java·spring boot·python·随机森林·贪心算法·eclipse·django
2401_894915532 小时前
GEO 源码部署如何实现精准地域分发?核心配置参数深度讲解
java·运维·服务器·后端·开源
过客随尘3 小时前
网关扩容了,流量却还是打不过去?企业级 Spring Cloud Gateway 生产动态化部署实战
spring cloud·微服务·架构
evans在进步4 小时前
LeetCode 2 两数相加:链表模拟加法,Java 图解进位过程
java·leetcode·链表