摘要:
1、RocketMQ架构组成 由4大核心部分组成:NameServer、Broker、Producer以及Consumer。 可以看到RocketMQ的每一个模块都是集群部署的,这也是它高吞吐量、高可用的原因之一,可以支持多master-slave。 (1)NameSrv 主要负责对于数据源的管理, 阅读全文
摘要:
消息队列的作用:异步、解耦、削峰填谷。 1、处理失败消息重发问题 场景:比如活动系统、积分系统同时监听用户下单消息,但是此时可能由于网络抖动或是代码bug导致积分系统处理失败,所以积分系统就会要求发送端重发消息。如何保证消息重复不会影响业务呢? 思考:这个问题其实就是保证接口的幂等性,那如何保证接口 阅读全文
摘要:
1、@Async导致循环依赖失败,项目启动报错 @Service public class UserServiceImpl implements UserService { @Autowired UserService userService; @Override @Transactional(ro 阅读全文
摘要:
ApplicationStartingEvent:springboot启动开始的时候执行的事件,在该事件中可以获取到SpringApplication对象,可做一些执行前的设置。 ApplicationEnvironmentPreparedEvent:spring boot 对应Enviroment 阅读全文
摘要:
参考文章: https://juejin.im/post/5b64448af265da0f7f44c201 https://juejin.im/post/5e338ebae51d4558864b1ca0 1、开发中使用时要注意的点 (0)spring定时任务执行原理实际使用的是 JDK 自带的 Sc 阅读全文
摘要:
1、BeanFactory是spring IOC容器的顶层接口,定义了IOC容器的通用方法和规范。 2、FactoryBean首先是一个bean,但它又是一个能产生bean的工厂,主要作用就是提供了一种灵活创建bean的方式,让用户可以定制实例化bean的逻辑。 获取普通bean,getBean(b 阅读全文
摘要:
上文讲了Web应用Spring是通过监听器来启动的,容器的初始化就是从refresh( ) 方法开始的,接下来我们就从refresh( ) 方法来看看Spring启动都做了什么。 Tips:一定要结合源码自己好好梳理一遍,这样才能印象更加深刻,理解了Spring整个容器的生命周期,对于理解其他很多框 阅读全文
该文被密码保护。 阅读全文
摘要:
参考文章: 三级缓存解决循环依赖问题:https://juejin.im/post/5e9b26fe6fb9a03c7413841e 1、spring IOC容器各类结构 获取bean和创建bean流程: 入口:AbstractBeanFactory的getBean( ),-->doGetBean( 阅读全文
摘要:
1、Bean的初始化顺序导致的项目启动失败 现象:shua-video项目中引用了配置中台bp-config的SDK,然后在mq消息监听类中使用。如上使用方式,在waterService中引用了bp-config。在测试环境mq中没有消息消费时项目能正常启动,但在线上有消息消费时项目启动报错,提示找 阅读全文