SOFA模块化
问题:传统的module只是代码的模块化,最终变成jar 运行在jvm中,这样会导致module的服务可以随意依赖另一个模块,不利于微服务化。
解决: 将每个模块中的类使用不同的上下文进行隔离,然后在模块依赖时,提供方进行jvm服务注册,调用方进行jvm服务注入,在运行时,还是在同一个jvm中调用。
问题: 对外提供的sdk中依赖了其他jar包,这些jar包有可能与sdk使用方的jar包冲突
解决: 使用单独的类加载器加载sdkjar包
实现: 基于不同的启动类创建不同的线程,根据不同的线程类加载器加载启动类
SOFATracer 分布式全链路追踪系统
原理:比如springMvc 是在请求前添加filter 进行数据拦截的