五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强?

作者:微信小助手

发布时间:2021-09-14T12:09:38

前言

Nacos是阿里巴巴开源的服务注册中心以及配置中心,致力于给开发者提供一款便捷、简单上手的开源框架。

Nacos究竟有什么惊人的地方呢?看下图:

从上图不难看出阿里巴巴的野心,一个Nacos干掉了Spring Cloud的三大组件,分别是注册中心Eureka服务配置Config服务总线Bus

本文目录结构如下图:

为什么Nacos这么受欢迎?

Nacos官方文档的介绍中有这么一句话,如下:

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

什么意思呢?不着急,有对比才有伤害。

EurekaConfig这两个组件相信大家都用过,有什么感受?

当然,这两个组件给我最直观的感受就是繁琐,原因如下:

  1. 无论是Eureka还是Config都必须自己搭建个服务
  2. 英文界面不是那么友好

用过Nacos的开发者都说很爽,不用自己搭建服务,阿里给你准备好了服务,只需要启动即可;界面中英文都有,很适合初学者。

当然最重要的原因就是以上组件很可能面临停更、比如Eureka已经停更了,谁知道后面其他的组件会不会如此呢?

如何自学呢?

对于初学者当然是官方文档了,下面作者列出了Nacos相关的官方文档:

  • https://nacos.io/zh-cn/docs/what-is-nacos.html(中英文兼备)
  • https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html(英文)
  • https://github.com/alibaba/nacos(Nacos项目仓库)

当然很多人不愿意看官方文档,作者也在为大家准备了视频教程。

公众号码猿技术专栏回复关键词9527免费获取。

本文版本说明

基于Maven构建的微服务项目,各个组件版本如下:

  • JDK1.8+
  • Spring Boot-2.2.2.RELEASE
  • SpringCloud-Hoxton.SR3
  • SpringCloud Alibaba-2.2.1.RELEASE

注意:Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本可不是随便选择的,官网明确规定了各个版本的适配:https://github.com/alibaba/spring-cloud-alibaba/wiki,如下图:

不同版本的Alibaba也对应了不同组件的版本,如下图:

一定要完全按照文档给出的版本来选择,不然会出现意想不到的BUG,那岂不是鸡鸡....

作者使用的是分模块的聚合项目演示,其中dependencyManagement依赖如下,对应着上文提到的版本:

注意:如果你的版本的不是和作者一样,请一定严格按照官方文档给的版本进行适配,否则会有意想不到的BUG....

启动Nacos服务

根据上面作者选择的Spring Cloud Alibaba的版本,对应的Nacos版本是1.2.1,直接去GitHub(https://github.com/alibaba/nacos/tags)下载对应的版本即可,可以选择windows或者Linux,如下图:

下载完成之后直接解压即可,从它的目录结构和文件名称一看这就是一个Spring Boot 项目。

进入/bin目录,有两个脚本,如下:

  • startup.cmd:windows平台的启动脚本
  • startup.sh:Linux平台的启动脚本

由于作者本地是windows,直接双击startup.cmd启动项目,出现以下界面则启动完成:

在浏览器输入http://localhost:8848/nacos进入Nacos的登录界面。

用户名:nacos;密码:nacos

登录成功的界面如下:

服务注册发现

微服务的服务注册和发现相信都用过Eureka,要自己本地构建一个Eureka微服务,但是整合了Alibaba的Nacos则不用那么复杂,直接启动Alibaba提供的Nacos服务即可,这样让程序员把全部精力放在业务上,下面是一个简单的架构图:

如何演示效果呢?

参照上面架构图,作者分别创建了两个模块,分别是nacos-provider(服务提供者)、nacos-consumer(服务消费者),职责如下: