4.Soul数据库设计

简介: 本插件采用数据库设计,存储插件、选择器、规则及其关联关系。核心四表为:plugin(插件)、selector(选择器)、rule(规则)、条件表(匹配条件)。支持多级对应:插件→选择器→规则,每规则通过JSON handle定义处理逻辑,适用于Dubbo、SpringCloud等协议,体现Soul三大核心:插件、规则、选择器。(238字)

● 插件采用数据库设计,来存储插件,选择器,规则配置数据,以及对应关系。
● 数据库表UML类图:

● 设计详解:
○ 一个插件对应多个选择器,一个选择器对应多个规则。
○ 一个选择器对应多个匹配条件,一个规则对应多个匹配条件。
○ 每个规则在对应插件下,不同的处理表现为handle字段,这个一个不同处理的json字符串。具体的可以在admin使用过程中进行查看。
说明:
● meta_data:对dubbo泛化调用使用,每条记录对应一个dubbo接口的方法,http协议不会保存,而springcloud协议,只会存储一条数据, path为 :/contextPath/**
● plugin:存储当前支持插件,我们对应配置的插件相关参数,就会更新这样表

● rule:插件管理中,我们配置的具体规则。实际在这里我们也可以看出Soul的三大核心:plugin,rule,selector

● rule_condition:rule表中配置的,对应的具体匹配规则
● selector:规则表
● selector_condition:规则条件表

实际上,上面这张图,就对应上述四个表中的
selector-选择器列表,选择器里面的配置对应-selector_condition
rule-选择器规则列表,规则列表中的配置对应-rule_condition

相关文章
|
2月前
|
数据可视化 Java 关系型数据库
01-认识Activiti
工作流指如请假、报销等需审批的业务流程,通过可视化引擎实现多节点审批,广泛应用于CRM、WMS等系统。主流技术包括BPMN、Activiti和Flowable,其中Activiti为Java系开源引擎,支持复杂流程自动化,推动企业流程数字化。
|
2月前
|
存储 算法 BI
xxljob本地运行
本文介绍XXL-JOB分布式任务调度的部署与使用。包含源码获取、数据库导入、服务端配置启动、客户端注册及执行器配置。详细说明各数据表作用、路由策略类型,并演示任务创建、参数设置与执行日志查看,助你快速上手XXL-JOB。
|
2月前
|
SQL Java 关系型数据库
分页
本文介绍了五种分页实现方式:MyBatis自带RowBounds内存分页、PageHelper插件分页、SQL原生分页、数组分页及拦截器分页。对比了逻辑分页与物理分页的优劣,指出大数据量下应优先选用物理分页,避免内存溢出,提升系统性能。
|
2月前
|
安全 Java 开发工具
工程搭建与验证
本文介绍如何基于阿里云脚手架快速搭建SpringBoot工程(选用2.7.6版本),并整合Spring Security。内容涵盖项目创建、代码导入、Web依赖引入、接口编写与验证,以及Spring Security的集成与默认登录机制。通过简单步骤实现安全访问控制,附完整代码仓库及分支。
|
2月前
|
存储 算法 API
持久化FileTxnLog
本文深入分析ZooKeeper持久化核心源码,聚焦TxnLog与FileTxnLog类。详解事务日志的追加、读取、提交与截断机制,解析日志文件结构、CRC校验、预分配策略及zxid管理,揭示数据持久化与恢复的关键实现原理。
|
2月前
|
存储 数据库
持久化FileTxnSnapLog
FileTxnSnapLog是ZooKeeper中用于持久化管理的核心类,封装了事务日志(TxnLog)和快照(SnapShot)操作。它通过组合方式代理具体读写,并提供数据恢复、快照保存等功能,支持从snapshot和log文件中还原DataTree状态,保障数据一致性。其内部采用树状结构维护节点关系,适用于高效的数据增删改查与事务回放。
|
2月前
|
XML Java 数据库连接
映射关系(1-1 1-n n-n)
本内容介绍MyBatis中四种关联映射:一对一(属性与字段映射,可用resultMap解决命名不一致)、一对多(如用户对应多个角色,使用`<collection>`)、多对一(如作者与博客,使用`<association>`)和多对多(如用户与部门,借助中间类并通过`<collection>`实现双向关联)。
Watcher机制(一)
本文深入分析ZooKeeper的Watcher机制核心类与源码,涵盖Watcher接口、Event枚举(KeeperState、EventType)、WatchedEvent事件通知模型,以及客户端管理器ZKWatchManager的实现原理,揭示数据监听的注册、触发与清理全过程。
|
2月前
|
缓存 安全
Watcher机制(二)
WatchManager是ZooKeeper服务端用于管理Watcher的核心类,通过watchTable和watch2Paths两个映射维护路径与Watcher间的双向关系。它提供了添加、删除、触发及导出Watcher的方法,所有操作均线程安全,确保在并发环境下正确处理事件监听与通知。
Watcher机制(三)之ZooKeeper
本文深入分析ZooKeeper类的源码,涵盖其内部类、属性、构造函数及核心方法。重点解析WatchRegistration及其子类的监听注册机制,探讨create、delete、exists等操作的同步与异步实现,揭示ZooKeeper客户端与服务端交互的底层原理,全面展现其Watcher管理与会话机制。