【微服务|Nacos】nacos注册中心一览

服务发现数据模型

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

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

服务提供给客户端的软件功能,通过预定义接口网络访问。 服务名 服务提供的标识,通过该标识可以唯一确定其指代的服务。 实例提供一个或多个服务的具有可访问网络地址(IP:Port)的进程,启动一个服务,就产生了一个服务实例。

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

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

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

spring: 
	application: 
		name: ossa‐service 
		cloud: 
			nacos: 
				discovery: 
					# 注册中心地址
					server‐addr: 127.0.0.1:9001  
					# 开发环境
					namespace: a1f8e863‐311748c4‐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还提供服务实例的上下线操作,在服务详情页面,可以点击实例的“上线”或者“下线”按钮,被下线的实例, 将不会包含在健康的实例列表里。
上下线测试:

  1. 分别启动快速上手中的ossa-consumer与ossa-provider工程,更改ossa-provide中的启动 端口,再次启动ossa-provider,让ossa-provider服务拥有两个实例。
  2. 多次访问http://127.0.0.1:56020/service ,让consumer调用provider时触发负载均衡。 (3)观察provider的2个实例控制台,可发现实例调用被均匀负载。
  3. 在provider的服务详情页面,让某实例下线。
  4. 多次访问http://127.0.0.1:56020/service ,观察控制台,发现下线的实例已不再接收流量。
  5. 在provider的服务详情页面,让该实例恢复上线状态。
  6. 多次访问http://127.0.0.1:56020/service ,观察控制台,发现恢复上线的实例已恢复流量访问。

猜你喜欢

转载自blog.csdn.net/CSDN_SAVIOR/article/details/125349283