实在是太长了 重新开一篇吧
dubbo
服务暴露
Dubbo——服务调用、服务暴露、服务引用过程 - 简书
这两篇文章写的是极好 我现在查得资源强的可怕朋友们
服务降级 MockClusterInvoker
负载均衡策略
容错机制在哪里实现的源码
通信
NIO、BIO区别,NIO解决了什么问题,Netty线程模型(源码拷问)
MQ相关
RocketMQ、kafaka(奇怪的是你写啥面问啥,啥都会,技术广度深度令人发指)
其他
aspectJ
编译期将Advice功能织入连接点,类加载期切面织入;java.lang.Instrument包提供的工具在Java程序运行时动态修改系统中的Class字节码
Spring AOP和AspectJ都可使用AspectJ注解的方式来实现,Spring AOP借助了AspectJ的注解风格和AOP联盟定义的部分底层接口,原理上Spring AOP和AspectJ没有关系
原理
<context:load-time-weaver/>ContextNamespaceHandler处理,META-INF/aop.xml
java.lang.Instrument提供工具修改class字节码,组件java agent,premain()暴露出Instrumentation
load-time-weaver解析器LoadTimeWeaverBeanDefinitionParser判断有无aop.xml是否开启aspectJWeaving,开启了注册AspectJWeavingEnabler、DefaultContextLoadTimeWeaver