💡 注册配置中心 MSE-Nacos (以下简称 MSE-Nacos),即 Nacos 的企业版,开箱即用的 Nacos 云服务,对 Nacos 内核进行企业级稳定性加固,故障自动检测及恢复、多可用区容灾、推空保护等特性,具有风险管理能力,全局持续分析并管理集群风险;企业级安全基于 RAM 鉴权体系,可构建细粒度的安全控制能力,集成阿里云 KMS 提供配置加密能力,帮企业更安全地使用 Nacos 服务;基于 Alibaba Dragonwell 进行深度调优,比 Nacos 开源版性能提升 50% 以上;企业级易用性,提供推送轨迹、丰富完善的监控报警能力和便利的控制台操作,总的来看,企业版相比开源在稳定、安全、性能和效率方面更具备优势。
本篇要讲的是阿里云微服务MSE的Nacos云服务,正如摘要所描述的那样,MSE-Nacos是一个开箱即用的Nacos云服务,那么说到这里呢,就不得不给大家来讲一下什么是微服务了。
微服务(Microservices)是一种架构风格,它将单个应用程序划分为一组小的服务,每个服务运行在其自己的进程中,并通过轻量级机制(通常是 HTTP API)进行通信。它的主要特征包括:
- 每个微服务专注于实现单个业务功能,它可以被独立开发、测试、部署和扩展。
- 微服务采用语言无关的方式进行交互,通常使用简单的 RESTful API。
- 微服务体系结构可以由不同的编程语言编写,也可以包括不同的存储技术。
- 每个服务都是独立部署的,服务之间通过服务注册和发现来定位彼此并建立连接。
- 微服务高度自治和解耦,易于被小团队单独开发。
- 微服务允许利用云平台进行灵活的自动缩放。
- 微服务架构通过服务复制和负载均衡提高了系统的可靠性和可用性。
采用微服务架构的优点包括:组件解耦,服务独立扩展,容易持续交付和部署,语言和数据灵活选择。但它也带来了分布式系统的复杂性,例如服务间通信和服务发现等。需要合理划分服务边界,平衡好服务的粒度。
当然,上面对于微服务的描述是网上找的,要用我个人的话说,就是将传统的服务架构进行变更,使整个业务架构中的服务尽可能的独立出来(解耦),某一个部分对于整体架构的影响不再像传统架构那么大,同时整个业务架构变得极其灵活,其可以快速部署以及具有三高(高弹性、高可靠性、高可用性)。
那么回到测评本身来,我们可以发现阿里云的MSE-Nacos全程叫做 注册配置中心MSE-Nacos,大家要注意的一点是,注册 和 配置 是分开的功能哈,如下:
- 注册:服务发现:MSE-Nacos 作为注册中心,实现应用的服务注册与发现,以及消费者对提供者的调用,配合服务治理实现全链路灰度
- 配置:服务配置:MSE-Nacos 作为配置中心,实现将应用中的变量、参数等从代码中提取出来,并存入一个配置文件,在需要更改配置时,只需更改此配置文件即可。
本次对于MSE-Nacos的测评,我想通过一个实践案例来为大家演示,如何使用MSE-Nacos来做 服务配置,那么同时,既然Nacos是属于MSE下面的一个服务,那么测Nacos就不能只测Nacos,同样MSE-Higress同样是属于MSE下的服务,所以本篇属于先导篇,对于MSE-Higress的测评属于下文。
一视同仁
当然,本次测评也提供了测评视频,对于Nacos的测评部分在视频的前22分钟,后面则是Higress的测评
知根知底
那么通过上面的一些铺垫,咱们应该对微服务这个概念有了大致的了解,那么咱们现在来细致的了解下MSE-Nacos,虽然摘要有提到过,但是咱们只能说知道个大概。MSE-Nacos具体如何,请看下文
源起
Nacos 其实是一款由阿里巴巴开源的、分布式、高可用的动态服务发现、配置中心和命名服务组件。它提供了一种简单、可靠、易于使用的方法来管理分布式系统中的服务和配置。Nacos 提供了丰富的特性,包括服务注册与发现、配置中心、健康检查、命名服务等,可以帮助开发者构建和管理复杂的分布式系统。
商用
那么本文要讲的MSE-Nacos其实是由阿里巴巴开源的微服务引擎 MSE(Microservices Engine)和 Nacos 组合而成的解决方案。MSE 是阿里巴巴开发的一款微服务引擎,可以帮助开发者构建和管理复杂的分布式系统。而 Nacos 是一款分布式、高可用的动态服务发现、配置中心和命名服务组件,由阿里巴巴开源。MSE-Nacos 将 Nacos 引擎集成到 MSE 中,提供了一个完整的微服务解决方案,可以帮助开发者更轻松地构建和管理复杂的分布式系统。
目前MSE-Nacos拥有2个产品版本,分别为:专业版、开发版。两者的差异点就在于前者额外支持推空保护、推送轨迹、DragonWell支持以及支持同城高可用部署。要简单点讲,就是专业版更稳定、更可靠。同时,当前在阿里云上能够供给给大家新购的Nacos只有2.2版本,向前无缝兼容 Nacos 1.x,2.x客户端,支持平滑迁移,性能更强。
纵观全局
既然要对MSE-Nacos测评,那断然不能把某个部分单纯的拿出来讲,我们一定要在全局观的角度来看单个服务,如下图所示,这个是阿里云对于阿里云MSE快速入门所提供的一个图片,个人觉得这个图片非常棒,足以通过这个图片来描述咱们的业务流程,当然,在本例中,咱们主要在MSE整个框架下去讲解MSE-Nacos的注册配置中心。
实践出真知
免费资源,入门无忧!
无论您是否要参加阿里云开发者社区的MSE-Nacos测评,都可以通过下方活动链接领取一个月免费的MSE-Nacos资源
https://developer.aliyun.com/mission/nacos?spm=a2c6h.26788700.J_4879775480.6.394f10d65gQXP3
前面多次提到,本篇文章会通过一个案例来演示MSE-Nacos作为注册配置中心的使用,如下文步骤所示
背景
以2022年世界技能大赛云计算赛项的架构赛题作为案例,其中使用亚马逊云科技的App Config作为架构中核心服务的配置中心,同样MSE-Nacos也可以实现同样的功能,大致架构图如下
在这个架构图中,存在着两个服务,分别为Root和Stub,都需要读取MSE-Nacos的配置
MSE-Nacos购买使用
本例中,使用开发版作为示例
设置配置
添加root/stub服务的配置
在这个步骤中,以root服务配置为例,在 配置管理 中创建了一个 DataID为root, Group为rootgp的配置
配套Java代码
Gitee仓库地址:https://gitee.com/unicornstar/nacos-demo
示例程序(Java)
在创建MSE-Nacos的配置之后,可以在配置详情页面查看到示例代码,引导开发者进行接口调用
本次实验,模拟2022世界技能大赛云计算赛项的gameday赛题,采用Java编写的模拟程序,演示文章开头部分描述的架构
程序运行示例
微服务部署
在基于java程序读取Nacos配置无误后,我们转为使用容器部署,后续直接迁移到ACK上进行部署
Dockerfile(root为例)
FROM openjdk:8u222-jdk COPY nacos-root.jar / EXPOSE 80 CMD ["java", "-jar", "/nacos-root.jar"]
构建运行示例
镜像推送
ASK集群及应用
效果展示
更新配置(root为例)
总结及建议
竞品
从个人使用习惯以及本案例中所使用的AWS AppConfig和MSE-Nacos是非常相似的,在本案例中,MSE-Nacos作为配置中心完美承担了原属于AWS AppConfig的任务,单从配置中心这块来看,个人还是比较站MSE-Nacos的,因为从部署流程上来看,要更快、更简洁。
使用
- 整体体验感很好,从实例创建到真正的配置部署,速度相应上,很快
- 可以对配置进行监听查询 ,这个确实是一个很棒的功能,可以监控到推送状态,
- 示例代码也不错,不用再额外去文档中去查API接口的调用方法了,但有一点小缺陷
- 创建nacos实例很快,但是修改参数后,重启有点慢呢,而且在重启阶段刷新详情会提示一些报错,建议是重启阶段可以直接让用户退回上一界面,不进入实例的详情页面。
文档及帮助
站在国内开发者的角度来看,的确阿里云的文档是更适合一些,毕竟是中文,更适合中国宝宝体质!
建议
- 在Nacos实例中,存在一个白名单,下面的小字,建议加粗,或者换颜色高亮,这个有可能成为一个忽视的点
- 具体配置中有示例代码,代码有一点小缺陷,nacos的包的版本 2.2.3.0 还是会有问题,建议修正下
请看下回分解
本篇到这里就结束了,续篇为《『MSE』阿里云中"间"力量MSE-Higress》,书接本文,继续讲解案例架构!