1. nacos初识, 和eureka的比较, 在docker上安装nacos

初心

从今天开始研究nacos.

为什么研究这个? 因为现在公司主流开始推荐使用nacos了.....虽然, 我们还没有开始用....提前做好准备吧.

nacos主要有两大作用. 一个是注册发现, 一个是配置管理

我们现在注册发现使用的是eureka, 配置管理使用的是spring cloud的配置中心. nacos一下包含了两个方面. 从服务器成本的角度考虑, 好像可以节省点服务器费用哈. 毕竟合二为一了嘛

学习的时候, 会将nacos和eureka,以及spring cloud的配置中心对比学习. 为什么大家都推荐nacos?

不能因为别人说好, 我们就说好. 我们要真正知道它好在哪里, 为什么好? 了解他的优势,才能更好地取其精华.

知道 为什么这么做怎么做 更重要

初步拟了一个研究方案:

  1. 了解什么是nacos, 他的优缺点, 好处

  2. 对比nacos和eureka, config

  3. 安装配置nacos. 现在很多都是使用docker容器化. 可以试试使用docker安装nacos,然后其他操作都在nacos上执行

  4. 根据官网文档, 开始学习.

官网地址: https://nacos.io/en-us/docs/what-is-nacos.html

github地址: https://github.com/alibaba/nacos


一. nacos是什么?

分解来看, 框框里是nacos是做什么的. 下面进行解释

nacos致力于注册发现, 配置和管理微服务

两个重点: 服务注册发现, 服务配置, 服务管理三个方面

它提供了一组简单有用的功能,使您能够实现动态服务发现,服务配置,服务元数据和流量管理。

动态服务发现: 什么是动态. 之前跟同事讨论过, 动态其中一个方面, 指的是热的含义. 比如服务器注册了, 不用重启, 就能发现. 服务配置修改了, 不用重启服务, 能够自动识别配置修改.

那么服务元数据和流量管理: 这里应该是和负载均衡有关系了. 流量怎么分配, 根据元数据设置, 进行管理

Nacos使构建,交付和管理微服务平台变得更容易,更快捷

如何能够是构建, 交付,管理 微服务平台变得更容易,更快捷呢? 想到了自动化部署那一套. 有一个界面, 点点按钮, 就开始操作了. 不用一台服务器, 一台服务器的去处理.

以上是官网给出的介绍: 经过我的理解, 变成大白话. 哈哈哈

官网解释: nacos是什么?

服务是Nacos的头等公民

这有点向一个选词造句. go里面说: 函数是一等公民. channel是一等公民. 这里说nacos是一等公民. 什么是一等公民呢? 就像客户就是上帝一样, 全部围绕客户转. nacos就是全部围绕着服务转

Nacos支持发现,配置和管理几乎所有类型的服务

Kubernetes服务
gRPC和Dubbo RPC服务
Spring Cloud RESTful服务

不多说, 我们现在使用的是spring cloud RESTful服务

Nacos的主要特点:

服务发现和服务运行状况检查

  Nacos支持基于DNS和基于RPC(Dubbo / gRPC)的服务发现。服务提供商向本机,OpenAPI或专用代理注册服务后,使用者可以使用DNS或HTTP查找服务。

  Nacos提供实时运行状况检查,以防止服务将请求发送到不正常的主机或服务实例。Nacos支持传输层(PING或TCP)健康检查和应用程序层(例如HTTP,Redis,MySQL和用户定义的协议)健康检查。
对于复杂的云和网络拓扑(例如VPC,边缘服务等)的运行状况检查,Nacos提供代理模式和服务器模式运行状况检查。Nacos还提供统一的服务运行状况仪表板,以帮助您管理服务的可用性和流量。
动态配置管理

  动态配置服务使您可以在所有环境中以集中,外部化和动态的方式管理所有应用程序和服务的配置。

  动态配置消除了在更新配置时重新部署应用程序和服务的需要。

  配置的集中管理使您更方便地实现无状态服务和按需弹性扩展服务实例。

  Nacos提供了易于使用的UI TODO,可帮助您管理所有应用程序或服务的配置。它提供了一些现成的功能,包括配置版本跟踪,canary / beta版本,
  配置回滚和客户端配置更新状态跟踪,以确保安全并控制配置更改的风险。
动态DNS服务

  支持加权路由的动态DNS服务使您可以更轻松地在数据中心内的生产环境中实施中间层负载平衡,灵活的路由策略,流量控制和简单的DNS解析服务。动态DNS服务使您更容易实现基于DNS的服务发现。

  Nacos提供了一些简单的DNS API TODO,供您管理DNS域名和IP。
服务治理和元数据管理

  Nacos允许您从微服务平台构建器的角度管理所有服务和元数据。这包括管理服务描述,生命周期,服务静态依赖关系分析,服务运行状况,服务流量管理,路由和安全规则,服务SLA和一线指标。

下图可以详细理解nacos的功能


image

上面这个图是官网给出的. 大概看一下就行. 就是对上面内容的一个总结. nacos有哪些功能, 作用, 优势等.

下面这个图是nacos的结构和组件:


image
  • 服务管理:实现服务CRUD,域名CRUD,服务健康状态检查,服务权重管理等功能
  • 配置管理:实现配置管CRUD,版本管理,灰度管理,监听管理,推送轨迹,聚合数据等功能
  • 元数据管理:提供元数据CURD 和打标能力
  • 插件机制:实现三个模块可分可合能力,实现扩展点SPI机制
  • 事件机制:实现异步化事件通知,sdk数据变化异步通知等逻辑
  • 日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮助文档
  • 回调机制:sdk通知数据,通过统一的模式回调用户处理。接口和数据结构需要具备可扩展性
  • 寻址模式:解决ip,域名,nameserver、广播等多种寻址模式,需要可扩展
  • 推送通道:解决server与存储、server间、server与sdk间推送性能问题
  • 容量管理:管理每个租户,分组下的容量,防止存储被写爆,影响服务可用性
  • 流量管理:按照租户,分组等多个维度对请求频率,长链接个数,报文大小,请求流控进行控制
  • 缓存机制:容灾目录,本地缓存,server缓存机制。容灾目录使用需要工具
  • 启动模式:按照单机模式,配置模式,服务模式,dns模式,或者all模式,启动不同的程序+UI
  • 一致性协议:解决不同数据,不同一致性要求情况下,不同一致性机制
  • 存储模块:解决数据持久化、非持久化存储,解决数据分片问题
  • Nameserver:解决namespace到clusterid的路由问题,解决用户环境与nacos物理环境映射问题
  • CMDB:解决元数据存储,与三方cmdb系统对接问题,解决应用,人,资源关系
  • Metrics:暴露标准metrics数据,方便与三方监控系统打通
  • Trace:暴露标准trace,方便与SLA系统打通,日志白平化,推送轨迹等能力,并且可以和计量计费系统打通
  • 接入管理:相当于阿里云开通服务,分配身份、容量、权限过程
  • 用户管理:解决用户管理,登录,sso等问题
  • 权限管理:解决身份识别,访问控制,角色管理等问题
  • 审计系统:扩展接口方便与不同公司审计系统打通
  • 通知系统:核心数据变更,或者操作,方便通过SMS系统打通,通知到对应人数据变更
  • OpenAPI:暴露标准Rest风格HTTP接口,简单易用,方便多语言集成
  • Console:易用控制台,做服务管理、配置管理等操作
  • SDK:多语言sdk
  • Agent:dns-f类似模式,或者与mesh等方案集成
  • CLI:命令行对产品进行轻量化管理,像git一样好用
    这就是nacos的功能了, 在后面研究的时候, 可以按照这个图来具体研究.

构建、部署及启动模式:

  • 2种交付方式
    Nacos 支持标准 Docker 镜像(TODO: 0.2版本开始支持)及 zip(tar.gz)压缩包的构建物。

  • 启动模式
    Nacos 支持将注册中心(Service Registry)与配置中心(Config Center) 在一个进程合并部署或者将2者分离部署的两种模式。

  • 免费的公有云服务模式
    除了您自己部署和启动 Nacos 服务之外,在云计算时代,Nacos 也支持公有云模式,在阿里云公有云的商业产品(如ACM, EDAS) 中会提供 Nacos 的免费的公有云服务。也可以使用阿里云公有云提供商提供 Nacos 的公有云服务。

二. nacos 和 eureka 优缺点对比

Spring Cloud Nacos

优点:

1)开箱即用,适用于dubbo,spring cloud等

2)AP模型,数据最终一致性

3)注册中心,配置中心二合一(二合一也不一定是优点),提供控制台管理

4)纯国产,各种有中文文档,久经双十一考验

缺点:

1)刚刚开源不久,社区热度不够,依然存在bug

Spring Cloud Eureka:

优点:

1)Spring Cloud 官方推荐

2)AP模型,数据最终一致性

3)开箱即用,具有控制台管理

缺点:

1)客户端注册服务上报所有信息,节点多的情况下,网络,服务端压力过大,且浪费内存

2)客户端更新服务信息通过简单的轮询机制,当服务数量巨大时,服务器压力过大。

3)集群伸缩性不强,服务端集群通过广播式的复制,增加服务器压力

4)Eureka2.0 闭源(Spring Cloud最新版本还是使用的1.X版本的Eureka)

个人觉得, 最终不得不弃用eureka的原因就是这最后一条, eureka2.0闭源了, 也就是说, 你要想继续使用, 对不起, 请交费.........然后, nacos在国内也足够优秀....so...nacos得到了大力发展

所以: 要想在某个时刻获得机会....那么, 请时刻准备好, 足够优秀

三. nacos安装在docer上

docker我本地已经安装好了.

第一步: 下载镜像

docker pull nacos/nacos-server
这是下载最新版的nacos镜像

第二步:查看已经下载的镜像: docker images

image

第三步: 启动nacos

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

参数解析:

  • run 启动运行容器
  • --env 配置环境 MODE=standalong 单节点
  • --name nacos 镜像名称为nacos
  • -d 守护式容器
  • -p 8848:8848 端口映射


    image

第四步: 在浏览器访问ip:8848/nacos,登录密码默认nacos/nacos

看到如下界面, 成功啦!!


image

第五步: 检测nacos是否可以正常工作

1. 往配置中心发布配置

nacos是一个服务, 他对外也提供了很多接口, 其中一个是添加配置的接口. 我们模拟这个接口进行配置:

curl -X POST "http://localhost:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
看到返回结果是true. 然后刷新控制台, 可以看到如下

image

2. 从配置中心获取配置

curl -X GET "http://localhost:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

这个命令就是获取配置


image

获取helloworld内容


参考资料:

  1. nacos官网: https://nacos.io/en-us/docs/what-is-nacos.html

  2. github: https://github.com/alibaba/nacos

  3. nacos和Eureka的区别: https://www.pianshen.com/article/8646198661/

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

推荐阅读更多精彩内容

  • SpringCloud alibaba在之前已经进行了大概的介绍,在微服务环境下对于大量存在的服务管理等肯定需要一...
    指尖数虫阅读 641评论 0 0
  • 上个月最后一天的凌晨,Spring Cloud Alibaba 正式入驻了 Spring Cloud 官方孵化器,...
    方志朋阅读 5,450评论 0 16
  • 1.Nacos简介 1.1概述 前四个字母分别为Naming和Configuration的前两个字母,最后的s为S...
    码农GG阅读 2,973评论 0 0
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 5,661评论 0 5
  • 城空了,有树长出来 我的城死了 铸起它的人,杀死它的人 不愿因为这件事而骄傲 一座城的终结 永远因为终结这件事而显...
    于十六阅读 2,813评论 6 17