赞
踩
议题简介:Nacos 是阿里巴巴于 2018 年开源的注册中心及配置中心产品,帮助用户的分布式微服务应用进行服务发现和配置管理功能。随着 Nacos2.0 版本的发布,在性能和扩展性上取得较大突破后,社区开始考虑如何提供更加云原生方向的功能和用法。本次分享主要介绍 Nacos 在 2.0 版本在Kubernetes 环境下对服务发现生态的应用探索成果及后续探索方向的规划。
目录:
• Nacos2.0简介
• Nacos在K8s中服务发现的应用实践
• Nacos的K8s服务网格应用规划
正文:
1. 什么是Nacos
Nacos/nɑ:kəʊs/是Dynamic Naming and Configuration Service的首字母简称,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos诞生于阿里巴巴的五彩石项目,在阿里十年的双十一中成长迭代,解决了应用扩展性和大规模治理的问题。为了帮助更多的公司和企业都能享受到微服务带来的便利并加速数字化转型,在2018年阿里巴巴将Nacos进行开源。
Nacos在开源的三年多中,用户的使用场景变得越来越复杂,用户规模越来越庞大,基于Nacos1.0的HTTP架构就暴露出来了性能问题和扩展性问题,于是Nacos进行了2.0的架构升级,引入了Grpc这个更高效的通信协议。并对功能架构做了大量的重构和优化。最终使得Nacos2.0在扩展性和性能上提升了10倍。
2. Nacos2.0架构:
Nacos2.0 架构图,从上到下依次为接入层、通信协议、连接层、功能层、一次性协议、持久化层
a. 接入层
首先是接入层,接入层为用户使用和接入Nacos提供了一个入口,包括一些客户端、OpenAPI、Springboot、阿里巴巴应用框架、Dubbo的RPC框架,也有一些用户(主要是运维人员)通过控制台使用Nacos。
b. 通信协议和连接层
接下来一层是通信协议和连接层。
Nacos2.0的通信协议新增了gRPC协议,也沿用了Nacos1.0的http和UDP协议,这是为了方便已经在使用Nacos的用户能够平滑升级到Nacos2.0上,方便用户升级。
Nacos2.0在连接层上统一进行了请求处理的抽象,并且做了流量控制和负载均衡,以防止Nacos服务端在大量应用注册或配置的时候把服务端压垮导致雪崩效应,影响更多人应用。
c. 功能层
功能层包括服务发现Naming和配置管理Config,Nacos2.0做了大量的重构和优化,也是性能能够提升10倍的另一个原因。
d. 一次性协议
Nacos2.0给服务发现提供的是Distro协议和Raft协议,目前已经将Raft协议替换为SOFA的JRaft协议,新增了Notify协议用于配置管理中来通知配置发生变更。
e. 持久化层
因为有很多的配置信息或服务元数据是需要持久化的,所以推荐在生产环境中使用MySQL这一类的RDS去做持久化会相对稳定一些。但是在不是特别重要的场景下,我们也可以使用Derby数据库或本地的文件系统进行存储。
由于用户场景越来越复杂,Nacos开始做一些插件化的架构改造,例如鉴权、配置加解密以及多类型的数据元支持,这些都是反馈比较多的插件。
目前已经由社区志愿者开发完成了一些插件ÿ
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。