Nacos服务发现基础应用

2022年9月23日08:15:26

1、Nacos服务发现基础应用
1.1、服务发现数据模型
Nacos在经过阿里内部多年生产经验后提炼出的数据模型,则是一种服务-集群-实例的三层模型,这样基本可以满足服务在所有场景下的数据存储和管理。

命名空间(Namespace)
用于进行租户粒度的配置隔离,命名空间不仅适用于nacos的配置管理,同样适用于服务发现。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

服务
提供给客户端的软件功能,通过预定义接口网络访问。
服务名
服务提供的标识,通过该标识可以唯一确定其指代的服务。
实例
提供一个或多个服务的具有可访问网络地址(IP:Port)的进程,启动一个服务,就产生了一个服务实例。
元信息
Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。
集群
服务实例的集合,服务实例组成一个默认集群, 集群可以被进一步按需求划分,划分的单位可以是虚拟集群,相同集群下的实例才能相互感知。
应用通过Namespace、Service、Cluster(DEFAULT)的配置,描述了该服务向哪个环境(如开发环境)的哪个集群注册实例。

spring:
  application:
    name: quickstart-provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848 # 注册中西地址
        namespace: a1f8e863‐3117‐48c4‐9dd3‐e9ddc2af90a8 # 开发环境
        cluster‐name: DEFAULT # 默认集群,可不填写
1
2
3
4
5
6
7
8
9
Note: 集群作为实例的隔离,相同集群的实例才能相互感知。
Note: namespace、cluster-name若不填写都将采取默认值,namespace的默认是public命名空间,
cluster-name的默认值为DEFAULT集群。

1.2、服务管理
开发者或者运维人员往往需要在服务注册后,通过友好的界面来查看服务的注册情况,包括当前系统注册的所有服务和每个服务的详情。并在有权限控制的情况下,进行服务的一些配置的编辑操作。Nacos在目前最新版本开放的控制台的服务发现部分,主要就是提供用户一个基本的运维页面,能够查看、编辑当前注册的服务,这些功能集中在Nacos控制台的服务管理一级菜单内。

1.2.1、服务列表管理
服务列表帮助用户以统一的视图管理其所有的微服务以及服务健康状态。整体界面布局是左上角有服务的搜索框和搜索按钮,页面中央是服务列表的展示。服务列表主要展示服务名、集群数目、实例数目、健康实例数目和详情按钮五个栏目。

在服务列表页面点击详情,可以看到服务的详情。可以查看服务、集群和实例的基本信息。

1.2.2、服务流量权重支持及流量保护
Nacos 为用户提供了流量权重控制的能力,同时开放了服务流量的阈值保护,以帮助用户更好的保护服务服务提供者集群不被意外打垮。如下图所以,可以点击实例的编辑按钮,修改实例的权重。如果想增加实例的流量,可以将权重调大,如果不想实例接收流量,则可以将权重设为0。

1.2.3、服务优雅上下线
Nacos还提供服务实例的上下线操作,在服务详情页面,可以点击实例的“上线”或者“下线”按钮,被下线的实例,将不会包含在健康的实例列表里。

上下线测试:
(1)分别启动快速上手中的quickstart-consumer与quickstart-provider工程,更改quickstart-provide中的启动端口,再次启动quickstart-provider,让quickstart-provider服务拥有两个实例。

(2)多次访问http://127.0.0.1:56020/service ,让consumer调用provider时触发负载均衡。
(3)观察provider的2个实例控制台,可发现实例调用被均匀负载。
(4)在provider的服务详情页面,让某实例下线。

(5)多次访问http://127.0.0.1:56020/service ,观察控制台,发现下线的实例已不再接收流量。

(6)在provider的服务详情页面,让该实例恢复上线状态。

(7)多次访问http://127.0.0.1:56020/service ,观察控制台,发现恢复上线的实例已恢复流量访问。

————————————————
版权声明:本文为CSDN博主「小码哥呀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_46112274/article/details/122712345

  • 作者:gb4215287
  • 原文链接:https://blog.csdn.net/gb4215287/article/details/124931185
    更新时间:2022年9月23日08:15:26 ,共 2007 字。