论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
Nacos源码 (2) 核心模块
Nacos源码 (2) 核心模块
美丽的神话
金牌会员
|
2023-8-7 21:30:17
|
显示全部楼层
|
阅读模式
楼主
主题
899
|
帖子
899
|
积分
2697
整体架构
服务管理:实现服务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一样好用
console模块
console模块是一个springboot工程,整合了管理控制台、注册中心和配置中心功能。
启动类
启动类是com.alibaba.nacos.Nacos类:
@SpringBootApplication(scanBasePackages = "com.alibaba.nacos")
@ServletComponentScan
@EnableScheduling
public class Nacos {
public static void main(String[] args) {
SpringApplication.run(Nacos.class, args);
}
}
复制代码
依赖的模块
nacos-config - 配置中心
nacos-naming - 注册中心
ConsoleConfig配置类
加载application.properties配置文件
扫描各个模块controller包,缓存RequestMappingInfo -> Method
EnableScheduling开启定时任务功能
管理端接口
HealthController - 健康检查接口
NamespaceController - 命名空间管理
PermissionController - 权限管理
RoleController - 角色管理
ServerStateController - 查询服务运行状态信息
UserController - 登录和用户管理
config模块
配置中心。
aspect切面
CapacityManagementAspect - 配置容量判断切面
RequestLogAspect - 请求日志切面
auth认证
权限相关接口及实现类:
PermissionPersistService - Permission CRUD service
RolePersistService - Role CRUD service
UserPersistService - User CRUD service
configuration配置类
Filter配置:
NacosWebFilter - Web encode filter
CurcuitFilter - 熔断降级判断过滤器
StorageCondition配置:用于判断存储类型
ConditionDistributedEmbedStorage -
ConditionOnEmbeddedStorage -
ConditionOnExternalStorage -
ConditionStandaloneEmbedStorage -
controller配置中心接口
CapacityController - 配置容量管理接口
ClientMetricsController - 客户端统计信息查询接口
CommunicationController - 集群节点通信接口
ConfigController - 配置管理接口
配置推送接口
配置查询、删除接口
导入、导出配置接口
配置变化监听接口
HealthController - 健康检查接口
HistoryController - 配置历史管理接口
ListenerController - 从客户端侧查询订阅信息接口
monitor监视器
MemoryMonitor
MetricsMonitor
ResponseMonitor
remote远程调用处理器
远程rpc处理器:
ConfigChangeBatchListenRequestHandler - 客户端监听器新增/移除处理器
ConfigChangeClusterSyncRequestHandler - 集群同步配置处理器
ConfigPublishRequestHandler - 推送配置处理器
ConfigQueryRequestHandler - 配置查询处理器
ConfigRemoveRequestHandler - 配置删除处理器
naming模块
注册中心。
consistency一致性服务
维护数据一致性的相关服务。
controller注册中心接口
CatalogController - 服务及实例相关信息查询接口
ClusterController - 服务集群管理接口
DistroController - 分区容错相关接口
HealthController - 健康检查相关接口
InstanceController - 服务实例管理接口
OperatorController - 操作数据查询接口
ServiceController - 服务管理接口
remote远程调用处理器
远程rpc处理器。
client模块
config配置中心客户端
NacosConfigService类封装了操作配置中心的API。
naming注册中心客户端
NacosNamingService类封装了操作注册中心的API。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
美丽的神话
金牌会员
这个人很懒什么都没写!
楼主热帖
Python 实现贪心算法
Spark快速上手(3)Spark核心编程-RDD转 ...
什么是超融合数据中心网络? ...
java中Files.mismatch方法具有什么功能 ...
哈工大软件构造Lab3(2022)
Kubernetes——Pod对象的声明周期(Pod ...
Python自动操作 GUI 神器——PyAutoGUI ...
C# net core 微信公众号导出历史文章 ...
微服务介绍
彻底理解 volatile 关键字及应用场景, ...
标签云
存储
服务器
快速回复
返回顶部
返回列表