Spring Cloud / Alibaba 微服务架构 | 2021年11月更文挑战(6)

172 阅读4分钟

这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战

代码同样会贴在后续非参加活动的文章中及gitee上~(由于GitHub经常不稳定,所以先上传到gitee上)

之前的文章我们已经搭建了通用和配置两大模块,这篇文章将介绍Alibaba Nacos:服务注册与配置中心

Alibaba Nacos

目前的微服务解决方案中都将Nacos列为首选,所以我们也将Nacos作为本项目的基本组件之一。

Nacos Console是Nacos为方便用户使用,给用户提供的web ui,我们在完成Nacos的安装并启动之后就可以在浏览器打开这个console页面,以可视化的方式去查看配置信息等。

1、Alibaba Nacos 的基本架构

1)服务

指一个或一组软件功能,例如特定信息的检索或一组操作的执行,使不同的客户端可以为不同的目的去重用,例如通过跨进程的网络调用。Nacos 支持主流的服务生态,如 Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service等。对应到我们的工程,就是用Spring Cloud RESTful Service去集成Nacos

2)配置服务

工程在运行过程中可能需要一些动态的配置信息,例如服务的元数据、数据库地址等,此时就可以提供给Nacos存储并管理这些配置信息。Nacos提供的配置服务对标Spring Cloud Config且比它更优秀。

3)名字服务

“名字服务”这个词可能不是很好理解,但是“服务注册”与“服务发现”你一定不陌生,这是微服务架构下不可缺少的一个功能。

服务注册是指我们的微服务把自身的信息,例如IP地址、端口号、服务名称注册到Nacos上。服务发现就是指其他的微服务提供一些信息,通过Nacos去寻找已经注册的微服务,以此来实现微服务之间的互通互联。

2、Alibaba Nacos 概念解读

(此处只介绍Nacos部分最核心最常用的一些概念)

1)服务注册中心

它是服务、实例及元数据的数据库,服务注册中心可能会调用服务实例的健康检查API来验证它是否能够处理请求。

注:我们部署的微服务会将自身信息汇报给Nacos,Nacos会存储这些数据,所以Nacos对于微服务的基本信息来说类似于数据库。同时Nacos为了知道注册的服务实例是否还在存活,会调用微服务的健康检查接口。

2)服务元数据

包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据。

注:即描述服务自身的数据。

3)服务提供/消费方

提供可以复用和可调用服务的应用方,会发起对某个服务调用的应用方。

注:Nacos自身是微服务提供方,提供给微服务去使用,微服务需要知道其他微服务的信息就去Nacos中获取,所以微服务自然就是消费方,消费Nacos提供的服务。

4)配置

在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件形式存在。

注:但其实动态的配置还是比较少的,我们通常只会把限流配置、路由配置这些信息存储到Nacos中,像数据库地址这些信息可能一整个项目都不会改变,那么放到配置中的意义就不大了。

3、Alibaba Nacos 单机版本部署步骤

1)下载所需的版本

github.com/alibaba/nac…

1.0、2.0版本以上都可以,API方面是完全兼容的。本项目使用的是2.0.0。

2)解压

Mac: 执行 tar -xzvf nacos-server-2.0.0.tar.gz

Windows: 直接解压即可。

3)单机模式启动(默认配置就可以)

Mac: 执行 ./startup.sh -m standalone

Windows: 直接启动即可。

4)新建命名空间

服务默认端口号:8848,直接访问127.0.0.1:8848/nacos查看Nacos提供的web页面。默认账号密码都是nacos。

在命名空间菜单下新建一个命名空间给我们的电商项目使用。

image.png

5)给Nacos配置自定义的MySQL持久化(选做)

修改配置,指定MySQL地址、用户名、端口号。

image.png