1. 在做开发框架设计的过程中,什么点是最在意的,会着重确保的

    1. 服务的稳定性(可用性),基础服务的稳定性关系到整个系统的运行正常,特别是核心的认证中心、权限中心,必须确保其稳定,可多实例部署以提高系统可用性

    2. 核心接口的性能需要保证,可用性的另一层面体现,单点登录、权限校验等相关接口为高频调用接口,并发度高,且为其他业务逻辑的基础,需要确保其性能尽可能的高

    3. 数据完整性,开发基础框架相关数据多为系统核心底层数据,必须保证相关数据的完整性,否则可能导致业务遇到极大的影响

  2. 开发基础框架项目业务具备版本特性,在评估不合并入基础框架时,怎么进行版本管理

  3. 有什么办法,以插件化或热更新的方式,实现不同版本特性

    1. 通过SPI,启动Java进行时指定lib目录,有插件或更新需求时,将相应Jar包放入lib目录中,通过SPI机制加载并放入Spring容器中,通过Bean优先级及ObjectProvider,实现动态获取

    2. 使用已有或自定义类加载器,可从网络、文件系统等各种地方加载字节码,实例化并注入Spring容器中使用,或通过其他方式使用

    3. 对于简单少量类的场景,可通过字符串等形式定义类代码,通过JavaCompiler相关方法编译后加载使用

    4. 可借助javassist、cglib等框架

  4. 什么是MVCC,解决了什么问题

  5. Undolog和RedoLog的区别

  6. Binlog相关

  7. Mysql主从复制

  8. 不借助Binlog的方式下,Mysql数据同步可以怎么解决

  9. 会怎么做SQL优化

  10. Mysql索引时怎么实现的

    1. B+树

  11. 索引树会发生重建么,什么情况下会整个重建,什么情况下会部分重建,Mysql页分裂

  12. Spring AOP是怎么实现的

  13. Spring怎么解决循环依赖的问题,二级缓存,三级缓存分别存了什么