流程图
2022-12-01 15:50:00 0 举报
流程图
作者其他创作
大纲/内容
read
三级缓存
Broker03
私人定制
2.创建支付订单状态为支付中
createBeanInstance
调用BeanPostProcessor的预初始化方法
RocketMQ旧集群
调用BeanPostProcessor的初始化方法
业务系统修改namesrv地址
二级缓存earlySingletonObjects
实例化A对象b=null
getBean
确认消息
找到
Broker02
浦发银行
7.回查交易状态
NameServer 01
加载
java线程内存模型:
BeanFactoryPostProcessor
最终的BD对象
afterPropertiesSet()
通知C
进行sql操作
反射
是否已加载
三级缓存singletonFactories
NameServer 03
双亲委派机制:
执行初始化调用方法
invokeInitMethods
支付服务
分配内存
初始化B对象给a属性赋值
存储@Configuration注解注释的类。
NameServer 02
实例化
1.属性赋值2.执行init方法3.扩展实现
instantiateBean
调用自定义的销毁方法
调用BeanFactoryAware的setBeanFactory()方法
intFlag = false -->true
工作内存
doCreateBean
账户服务
执行后置处理方法
BeanDefinition保留原始值
失败
use
控制台修改新集群nameServer地址并重启
解析
调用BeanNameAware的setBeanName()方法
Bean定义信息
spring如何解决循环依赖问题
服务Bleading
则一系统
是
容器对象赋值
没找到
执行init方法
InstantiationAwareBeanPostProcessor
本地事务
实现InitializingBean接口
从容器中查找B对象
Bean的实例化
ScanGenericBeanDefinition
invokeAwareMethods
通知B
job查寻G7系统状态
2.支付
5.更新支付状态:成功/失败
GenericBeanDefinition
doGetBean
半成品对象
6.根据回查状态commit/rollback
initFlag = false -->true
扩展类加载器Extension Class Loader
Bean的属性注入
5.检查本地事务执行结果
初始化
创建A对象
手动触发
1.half消息
检验
服务Cfollowing
半成品对象放入三级缓存
调用自定义初始化方法
服务Alooking
服务Blooking
调用DisposableBeanFactory的destory()方法
通知A
client
rollback
卸载
老集群控制台配置新broker
都是用来创建对象
注解
2.执行本地事务
服务B
AnnotatedGenericBeanDefinition
支付
load
从容器中找A对象
第三方支付
6.消费
成功
服务C
线程2
将老集群broker改为禁写
则一实际工作遇到分布式事务:
准备
Bean可以使用了
write
服务Afollowing
创建B对象
支付计划支付中
initFlag = false
BeanFactory
类加载检查
启动类加载器Bootstrap Class Loader
调用InitializingBean的afterPropertiesSet()方法
xml
总线 缓存一致性协议
AbstractBeanDefinition
使用
销毁
afterPropertiesSet
map缓存a:半成品b:半成品b:成品a:成品
向上委托
消息幂等处理
分布式事务:
@Autowared
4.异步结果通知
rocketmq事务消息图:
初始化零值
SpringBean的生命周期:
BeanDefinition
结束
createBean
实例化和初始化分开
用户自定义属性赋值
populateBean
调用ApplicationContextAware的setApplicationContext()方法
属性赋值
8.人工回查
G7系统支付计划
完成实例化且完成初始化
消息队列
直接赋值即可
Producer
8.消息签收确认
RuntimeBeanReference运行时引用解决循环依赖问题
一级缓存singletonOnjects
cpu
缓存的是已经经历了完整生命周期的bean对象.
初始化A对象给b属性赋值
是否实现了InitalizingBean接口
Broker01
rocketmq集群迁移
applyPropertyValues
应用程序类加载器Application Class Loader
提前暴露对象
销毁对象
5.发送卡劵
创建对象
将老集群下线
建立连接开启事务
createBeanIntance
3.支付处理中
isSingleton:判断是否是单例对象getObjectType:获取对象的类型getObject:用户可以按照自己任意方式创建对象
store
加载类
自定义加载器user class loader
类的生命周期:
支付宝
主内存
destroy
initializeBean
6.回复处理结果
设置对象头
aware
JVM对象创建与内存分配:
启动新集群(先起nameSrv,再起broker)
1.支付
4.支付结果通知
G7系统支付中
3.commit/rollback
线程1initFlag
成品对象
放入一级缓存
FactoryBean
1.发起支付
BeanPostProcessor
7.commit消费消息
实例化B对象a=null
assign
执行前置处理器方法
总线嗅探机制(监听)
commit
完成实例化但未完成初始化
RocketMQ新集群
链接
否
intFlag = false(失效)-->true
3.发起支付
发送消息
使用对象
放入二级缓存
收藏
0 条评论
下一页