ShardingSphere-源码阅读-开篇
为什么要熟悉ShardingSphere?
为了解决网关加密项目的痛点
1、代理语法解析的场景无法覆盖较复杂的语句,只能是发现再修改,但修改又怕影响未知。虽然目前引入自动化测试,但难免影响开发效率。
2、过了代理之后的性能下降太大,几乎是打了6折的性能,因为这其中的资源损耗都集中在代理身上,所以性能降低过大。只要能将一部分计算放在客户端,一部分计算放在数据库,最后一部分放在代理进行,整体性能理论上会得到大幅度提升。
怎么用ShardingSphere?
ShardingSphere-jdbc是可以对逻辑sql到真实sql中的改造,其中对项目最重要的两点是:
1、利用anltr进行语法解析后,得到的语法分析树,是如何进行覆盖复杂语句。
2、字段类型是如何进行转换,使得最终在最终端输出时,是一个明确的字段类型,而无需根据已知的类型,进行死板地转换,因为加密字段和实际字段的类型肯定是不一样的。
3、通过jdbc的形式,可以将语法解析的资源损耗转移到客户端上,从而提高代理的性能。
总结
其实就是,深度和广度的扩展,提高性能的深度,拓宽语句支持的广度。