Nacos系列:欢迎来到Nacos的世界!

什么是Nacos?

Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

Nacos可以做什么?

1、动态配置服务:支持以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。
2、服务发现及管理:支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现,同时提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,可以更容易地为服务实现断路器。
3、动态DNS服务:通过支持权重路由,轻松实现中间层负载均衡、更灵活的路由策略、流量控制及简单数据中心内网的简单DNS解析服务。更加容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。

Nacos的特性一览

1、易于使用

动态配置管理、服务发现和动态的一站式解决方案
20多种开箱即用的以服务为中心的架构特性
基本符合生产要求的轻量级易用控制台

2、更适应云架构

无缝支持Kubernetes和Spring Cloud
在主流公共云上更容易部署和运行(例如阿里云和AWS)
多租户和多环境支持

3、生产等级

脱胎于历经阿里巴巴10年生产验证的内部产品
支持具有数百万服务的大规模场景
具备企业级SLA的开源产品

4、丰富的应用场景

支持限流、大促销预案和异地多活
直接支持或稍作扩展即可支持大量有用的互联网应用场景
流量调度和服务治理

Nacos架构

Nacos架构

Nacos概念

  • 地域(Region):物理的数据中心,资源创建成功后不能更换
  • 可用区(Available Zone):同一地域内,电力和网络互相独立的物理区域。同一可用区内,实例的网络延迟较低。
  • 接入点(Endpoint):地域的某个服务的入口域名
  • 命名空间(Namespace):用于进行租户粒度隔离。不同的命名空间下,可以存在相同的Group或Data ID的配置。
  • 配置(Configuration):从代码中分离出来独立管理的变量、需要变更的参数等
  • 配置管理(Configuration Management):系统配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动。
  • 配置项(Configuration Item):一个具体的可配置的参数与其值域,通常以 param-key=param-value 的形式存在。
  • 配置集(Configuration Set):一组相关或者不相关的配置项的集合。在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。
  • 配置集ID(Data ID):某个配置集的ID,是组织划分配置的维度之一,通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识,通常采用类 Java包的命名规则保证全局唯一性(此命名规则非强制)。
  • 配置分组(Group):一组配置集,是组织配置的维度之一,通过一个有意义的字符串对配置集进行分组,从而区分 Data ID 相同的配置集。创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用DEFAULT_GROUP。
  • 配置快照(Configuration Snapshot):Nacos 的客户端 SDK 会在本地生成配置的快照。当客户端无法连接到 Nacos Server 时,可以使用配置快照显示系统的整体容灾能力。
  • 服务(Service):通过预定义接口网络访问的提供给客户端的软件功能。
  • 服务名(Service Name):服务提供的标识,通过该标识可以唯一确定其指代的服务。
  • 服务注册中心(Service Registry):存储服务实例和服务负载均衡策略的数据库。
  • 服务元数据(Service Metadata):服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据
  • 服务提供方(Service Provider):是指提供可复用和可调用服务的应用方
  • 服务消费方(Service Consumer):是指会发起对某个服务调用的应用方
  • 服务发现(Service Discovery):在计算机网络上,对服务下的实例的地址和元数据进行探测,并以预先定义的接口提供给客户端进行查询。
  • 服务分组(Service Group):不同的服务可以归类到同一分组。
  • 名字服务(Naming Service):提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务
  • 配置服务(Configuration Service):在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。
  • 元数据(Metadata):Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。
  • 应用(Application):用于标识服务提供方的服务的属性。
  • 虚拟集群(Virtual Cluster):同一个服务下的所有服务实例组成一个默认集群,集群可以被进一步按需划分,划分的单位可以是虚拟集群。
  • 实例(Instance):提供一个或多个服务的具有可访问网络地址(IP:Port)的进程。
  • 权重(Weight):实例级别的配置,权重为浮点数,权重越大,分配给该实例的流量越大。
  • 健康检查(Health Check):以指定方式检查服务下挂载的实例的健康度,从而确认该实例是否能够提供服务。根据检查结果,实例会被判断是否健康,对服务发起解析请求时,不健康的实例不会返回给客户端。
  • 健康保护阈值(Protect Threshold):为防止因过多实例不健康导致流量全部流向健康的实例,继而造成流量压力把健康的实例压垮并形成雪崩效应,应将健康保护阈值定义未一个0~1之间的浮点数,当域名健康实例占总服务实例的比例小于该值时,无论实例是否健康,都会将这个实例返回给客户端,这样做虽然损失了一部分流量,但是保证了集群的剩余健康实例能够正常工作。

以上内容整理源自:Nacos官网

梳理好Nacos的架构及概念,接下来准备Nacos的环境,Nacos的环境安装非常简单,首先从 GitHub 上 checkout 源码,编译获取安装包,命令如下:

mvn -Prelease-nacos clean install -U

编译完成后

编译结果
Target目录

因为我使用的是Windows,所以取target下的nacos-server-0.8.0.zip包(当然也可以从Github上直接下载安装包),将其解压到任意目录下

注意:所解压目录的文件路径不能包含空格,例如:D:/Program Files/Nacos,否则在启动Nacos Server时,会提示错误:找不到或无法加载主类 Files/Nacos/bin/Files/Nacos/plugins/cmdb

解压后,进入bin目录,双击startup.cmd,此时,Nacos Server就开始启动了

Nacos启动信息

在启动界面中,可以看到Nacos的版本、运行模式、端口号、进程号、Console等信息,其中Console:http://192.168.1.102:8848/nacos/index.html的地址就是Nacos的控制台,可以直接在浏览器访问:

Nacos控制台登录界面

Nacos控制台的默认账号密码为:nacos/nacos

登录后可以看到如下界面,在控制台可以进行配置和服务的管理

Nacos控制台

怎么样,是不是感觉很简单?

好了,Nacos就先介绍到这里,下一期将以一个完整的案例来介绍Nacos的用法和特性。

参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,828评论 0 5
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,256评论 0 9
  • 摘要:上周六的Aliware技术行上海站Dubbo开发者沙龙上,阿里巴巴高级技术专家郭平(坤宇)宣布了阿里巴巴的一...
    猫耳呀阅读 2,700评论 0 15
  • 阳春四月,在城乡结合部的空地上,有一片长势喜人的麦蒿,前几年,这里一直都有人种地,经过时,会看到绿油油的麦苗或是长...
    FASHION_e018阅读 804评论 0 0
  • 亦情亦景亦恋人, 飞沙飞絮飞燕门。 古城千年烟飞灭, 楼兰依旧使人寻。
    彭甫阅读 531评论 0 8