Soul数据库设计

简介: 本插件采用数据库设计,存储插件、选择器、规则及其关联关系。核心四表:plugin、selector、rule、condition,体现Soul三大核心:插件、规则、选择器。支持多层级匹配,适用于Dubbo、SpringCloud等协议,灵活配置路由与处理逻辑。(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

相关文章
|
3月前
|
安全 Java Spring
过滤器链加载原理
通过前文十五个过滤器的解析,我们揭开了Spring Security的神秘面纱。虽未显式配置,但这些过滤器由DelegatingFilterProxy通过名称springSecurityFilterChain自动加载,最终指向FilterChainProxy,并封装于DefaultSecurityFilterChain中执行。底层原理明晰后,方可更好实现自定义认证页面。
|
3月前
|
安全 Java 开发工具
工程搭建与验证
本文介绍如何基于阿里云脚手架快速搭建SpringBoot工程(选用2.7.6版本),并整合Spring Security实现基础安全控制。涵盖项目创建、代码导入、Web接口开发及Security依赖引入,演示登录认证流程,默认用户名为user,密码动态生成。完整代码见GitHub仓库Day01分支。
|
3月前
|
安全 Java 应用服务中间件
实现权限管理的技术
权限管理技术选型需综合考量。主流方案如Apache Shiro轻量易用,但安全维护弱;Spring Security功能强大、防护全面,但配置复杂;自定义ACL契合业务但通用性差。多数技术基于ACL或RBAC模型封装,选型应结合项目实际,权衡优劣,避免过度设计。
|
3月前
|
安全 Java 数据安全/隐私保护
通用权限管理模型
本文介绍了ACL与RBAC等常见权限模型。ACL通过用户/角色直接授权,简单直观;RBAC则基于角色分配权限,支持角色继承与职责分离,更易维护。还简要提及DAC、MAC、ABAC等模型,帮助读者建立权限管理的全局认知。
|
3月前
|
存储 缓存 安全
One Trick Per Day
初始化Map应避免默认容量导致扩容,推荐Guava的`newHashMapWithExpectedSize`;禁用Executors创建线程池,防止OOM,应手动通过`ThreadPoolExecutor`设置合理参数;`Arrays.asList`返回不可变列表,禁止修改操作;遍历Map使用`entrySet`提升性能;`SimpleDateFormat`非线程安全,建议用`ThreadLocal`或Java8时间类;并发修改记录需加锁,优先乐观锁,冲突高则用悲观锁。
|
3月前
|
存储 缓存 监控
EFC&CTO:缓存引发数据不一致问题排查与深度解析
EFC客户端更新缓存架构后,CTO测试出现data mismatch。经排查,因分布式缓存版本号回退,导致旧NULL数据被读入pagecache并刷入文件系统,破坏了NAS数据一致性。修复后10轮测试通过。
|
3月前
|
运维 安全 Devops
生产环境缺陷管理
git-poison基于go-git实现分布式bug追溯,解决多分支开发中bug漏修、漏发等问题。通过“投毒-解毒”机制,自动化卡点发布流程,降低协同成本,避免人为失误,已在大型团队落地应用,显著提升发布安全与效率。
|
3月前
|
缓存 运维 监控
一场FullGC故障排查
本文记录了线上容器 CPU 使用率达 104% 告警的排查与解决过程。排查初期,因机器内存使用率正常(62%),排除 Full GC、接口高并发等猜测,后发现监控偏差,通过 JVM 监控确认 Full GC 导致 CPU 飙升。经 JProfiler 分析堆内存快照,定位到问题根源:Excel 解析<Map>对象长期占用堆内存,空间效率低,且因任务逻辑长期存在(4-12 小时),易打满老年代触发 Full GC。解决方案分两类:一是激进方案(数据存入 Redis,彻底避免内存占用),二是保守方案(删除无用字段、优化缓存逻辑缩减数据量)。最后总结排查要点,强调 JVM 监控的重要性及大对象排查的
|
3月前
|
Java 测试技术 API
从Google线上故障,谈灰度发布的重要性
2025年6月12日,Google Cloud因未灰度发布的新配置引发空指针异常,导致Gmail、YouTube等服务中断超7小时。故障暴露了缺乏配置灰度与错误处理机制的风险。本文结合Nacos等配置中心的IP/标签灰度方案,探讨如何通过渐进式发布保障系统稳定性,避免全局故障。
|
3月前
|
存储 Java
Excel读取并数据List/Map-POI
该工具类基于POI解析.xls格式Excel文件,支持按行读取数据并映射为Java对象。通过反射机制将每行数据转换为VO实例,分别支持全局Map(键值对)和List形式存储结果,适用于固定模板的数据导入场景,需注意列数、顺序与VO字段一致。

热门文章

最新文章