钩子类扩展点介绍
包括以下四个Hook接口
- org.apache.shardingsphere.underlying.common.hook.RootInvokeHook
- org.apache.shardingsphere.sql.parser.hook.ParsingHook
- org.apache.shardingsphere.underlying.route.hook.RoutingHook
- org.apache.shardingsphere.underlying.executor.hook.SQLExecutionHook
钩子扩展点主要包括四个方法
- start
- finish(仅RootInvokeHook含有)
- finishSuccess
- finishFailure
钩子类扩展点的主要作用是收集SQL解析和执行阶段的核心相关数据,并上报给性能监控系统用于分布式系统的性能诊断,我们可以在路由、解析、执行等阶段获取SQL语句以及SQL转换状态信息。
执行流程
当ORM框架将具体逻辑SQL交由ShardingJDBC处理时,会依次经历以下流程(仅展示Hook流程)
以ParsingHook为例
- 在start阶段,可以获取在解析前的逻辑SQL语句;
- 在finishSuccess阶段,根据SQL类型可以获取逻辑SQL解析结果,包括逻辑表名,where条件,插入列值等</