Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。

以上都是nacos官网上面的图片及描述,综合一下应该是这个样子

可以在nacos控制台看到与之对应的界面

我们来看下这些东西都是用来干嘛的,

NameSpace可以用来进行资源的隔离,比如我们dev环境的服务和test环境的服务都往同一个nacos服务上面注册,dev环境是调用不到test环境的服务的。

我们在nacos控制台新建两个namespace,test和dev会生成两个ID

设置我们订单服务和库存服务的namespace,一个为dev一个为test

再来查看nacos控制台的服务列表会看见两个服务并不在public的命名空间下了,而是去到了test和dev下面,调用我们创建订单的接口,会发现在订单服务里面无法去扣减库存了。因为这两个服务现在已经不在同一个namespace下面了,无法进行调用了。

Group顾名思义就是分组了,比如订单和支付服务是支付组,库存物流属于物流组,不同的分组之前的服务也是不能进行调用的。将上面的服务设置成同样的namespace之后,发现服务可以调用了。但是我们有设置成不同的分组,发现服务又不能调用了。

两个扩展点:spring.cloud.nacos.discovery.cluster-name参数

cluster-name,可以设置上之后通过自己的负载均衡算法可以实现优先同集群调用,减少网络开销,比如在成都这边都有部署订单服务和库存服务,那么订单调库存的时候优先调用成都机房的库存服务(spring.cloud.nacos.discovery.cluster-name=CD)。

spring.cloud.nacos.discovery.metadata参数

元数据参数可以配置一些额外的信息,比如设置一个版本进去,通过自己的负载均衡算法实现同版本之间的服务调用。比如线上有10个订单服务和10个库存服务都是V1版本,现在改部分改动,都上了2个V2版本,通过实现我们自己的负载算法,使得V2版本的订单只能调用V2库存服务。

以上的数据模型详见Nacos源码:com.alibaba.nacos.naming.core.ServiceManager类

这个双层Map的key分别是namespace和group::serviceName,

com.alibaba.nacos.naming.core.Service中可以看到有一个Map<String, Cluster>,

com.alibaba.nacos.naming.core.Cluster中才是具体的服务实例com.alibaba.nacos.naming.core.Instance的Set集合,一个是持久化实例,一个非持久化实例。

Nacos数据模型的更多相关文章

  1. Nacos 知识点

    Nacos 名字的由来(取红色的英文字符): Dynamic Naming and Configuration Service Nacos 是 Spring Cloud Alibaba 的一个组件,详 ...

  2. Nacos快速开始

    Nacos是一个服务发现.配置管理和服务管理的组件. 说到服务注册与发现,我想到Eureka.Zookeeper 说到服务治理,我想到Dubbo 说到配置管理,我想到Apollo 作为后起之秀的Nac ...

  3. 基于nacos注册中心的ribbon定制规则

    前面说到基于nacos的注册发现有可以扩展实现我们自己的负载均衡算法(Nacos数据模型),来实现同集群调用,是基于spring.cloud.nacos.discovery.cluster-name参 ...

  4. SpringCloudAlibaba注册中心与配置中心之利器Nacos实战与源码分析(上)

    不断踩坑并解决问题是每个程序员进阶到资深的必要经历并以此获得满足感,而不断阅读开源项目源码和总结思想是每个架构师成长最佳途径.本篇拉开SpringCloud Alibaba最新版本实战和原理序幕,以工 ...

  5. SpringCloud之nacos

    以下是官网文档中个人感兴趣的部分整理,官方完整文档链接如下: Nacos 官方文档 1.nacos是什么? 1.1 概念:快速实现动态服务发现.服务配置.服务元数据及流量管理. 简单来说就是发现.配置 ...

  6. SpringCloud Alibaba01-Nacos

    全家桶介绍: https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html ...

  7. Spring Cloud微服务学习笔记

    Spring Cloud微服务学习笔记 SOA->Dubbo 微服务架构->Spring Cloud提供了一个一站式的微服务解决方案 第一部分 微服务架构 1 互联网应用架构发展 那些迫使 ...

  8. Nacos

    欢迎来到 Nacos 的世界! Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Nacos 帮助您 ...

  9. Nacos 发布 1.0.0 GA 版本,可大规模投入到生产环境

    经过 3 个 RC 版本的社区体验之后,Nacos 正式发布 1.0.0 GA 版本,在架构.功能和 API 设计上进行了全方位的重构和升级. 1.0.0 版本的发布标志着 Nacos 已经可以大规模 ...

随机推荐

  1. 小小知识点(二十六)关于5G发展的28个核心问题,来自华为内部的深度解读

    本文来自微信公众号“腾讯深网”(ID:qqshenwang),作者 马关夏.36氪经授权转载. 一.5G先进性与行业应用 1.5G到底是什么?和4G比有什么不一样? 从国际电信联盟(ITU)的定义来看 ...

  2. 【Python3爬虫】突破反爬之应对前端反调试手段

    一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕:   此时网页暂停加载,自动跳转到 Source 页面并打开了一个 ...

  3. 26.python操作Excel

    写入Excel import xlwt book=xlwt.Workbook(encoding='utf-8') sheet=book.add_sheet('xiangxin') # 标题名 titl ...

  4. Ncverilog 仿真quartus generate IP的要点

    Ncverilog 仿真quartus generate IP的要点 最近利用quartus II 生成plll 的IP,利用nclaunch 仿真的时候老是报错, 提示unresolved in w ...

  5. axios封装的拦截器的应用

    axios拦截器   页面发送http请求,很多情况我们要对请求和其响应进行特定的处理:如果请求数非常多,单独对每一个请求进行处理会变得非常麻烦,程序的优雅性也会大打折扣.好在强大的axios为开发者 ...

  6. ubuntu系统搭建(jdk1.8+mysql5.7.28+Hadoop2.7.7+hive3.1.2)

    一不小心电脑没电关机之后虚拟机就挂了,然后下定决心重新搭一个虚拟机. 以下是几天安装过程的记录以及一些小提示,包括在ubuntu中安装jdk1.8+mysql5.7.28+Hadoop2.7.7+hi ...

  7. 2、Automapper安装及配置

    一. 安装 我们安装是在 vs 中使用Nuget的方式进行安装 不过安装时需注意一件事情就是,版本问题,我示例使用的是.net framework 4.5.2,所以我安装AutoMapper的版本是7 ...

  8. 安装dbeaver,The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

    在连接mysql时,出现了以下错误: 解决方法是 在数据库链接指定useUnicode=true&useSSL=false&characterEncoding=utf8&ser ...

  9. scrapy selector选择器

    这部分内容属于补充内容 1.xpath() 2.css() 3.正则表达式 # 多个值,列表 response.xpath('//a/text()').re('(.*?):\s(.*)') # 取第一 ...

  10. Exception in thread "main" java.lang.AbstractMethodError: org.springframework.boot.context.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)Z

    依赖冲突,查看pom.xml文件 查看parent项目的依赖版本为 <parent> <groupId>org.springframework.boot</groupId ...