Nacos服务发现简单应用

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

 

命名空间(Namespace)

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

服务

  • 提供给客户端的软件功能,通过预定义接口网络访问。

服务名

  • 服务提供的标识,通过该标识可以唯一确定其指代的服务。

实例

  • 提供一个或多个服务的具有可访问网络地址(IP:Port)的进程,启动一个服务,就产生了一个服务实例。

元信息

  • Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息

集群

  • 服务实例的集合,服务实例组成一个默认集群, 集群可以被进一步按需求划分,划分的单位可以是虚拟集群,相同集群下的实例才能相互感知。

应用通过Namespace、Service、Cluster(DEFAULT)的配置,描述了该服务向哪个环境(如开发环境)的哪个集群注册实例。

spring:
  application:
    name: transaction‐service
  cloud:
    nacos:
      discovery:
        server‐addr: 127.0.0.1:7283  # 注册中心地址
        namespace: a1f8e863‐3117‐48c4‐9dd3‐e9ddc2af90a8  # 开发环境
        cluster‐name: DEFAULT # 默认集群,可不填写

Note: 集群作为实例的隔离,相同集群的实例才能相互感知。
Note: namespace、cluster-name若不填写都将采取默认值,namespace的默认是public命名空间,cluster-name的默认值为DEFAULT集群。

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

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

 

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

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

 

服务元数据管理
Nacos提供多个维度的服务元数据的暴露,帮助用户存储自定义的信息。这些信息都是以K-V的数据结构存储,在
控制台上,会以k1=v1,k2=v2这样的格式展示。类似的,编辑元数据可以通过相同的格式进行。例如服务的元数据
编辑,首先点击服务详情页右上角的“编辑服务”按钮,然后在元数据输入框输入:version=1.0。

 

 点击确认,就可以在服务详情页面,看到服务的元数据已经更新了。

 

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

 下线测试,发现56011就已经接受不到请求了

 

 

 恢复上线

 

posted @ 2020-04-25 17:13  天宇轩-王  阅读(1264)  评论(0编辑  收藏  举报