其他分享
首页 > 其他分享> > kafka多个消费者消费同一个partition,牛皮轰轰

kafka多个消费者消费同一个partition,牛皮轰轰

作者:互联网

## 二、什么是循环依赖 循环依赖直白点就是发生在两个类,`你引用我,我引用你`的状态,如图: ![](http://www.icode9.com/i/li/?n=2&i=images/20210704/1625401064124578.jpg) ## 三、如果不依赖于Spring自己解决循环依赖如何解决 以上图为例,假设,我们能够创建完成`AService`之后,放置到到一个缓存中,再去注入属性!每次注入属性的时候,所需要的属性值都从缓存中获取一遍,缓存中没有再去创建不就解决了?如图所示: ![](http://www.icode9.com/i/li/?n=2&i=images/20210704/1625401064156183.jpg) 总结一下上面的流程: 1. `AService`创建完成后将自己加入到二级缓存,然后开始注入属性 2. 发现`AService`依赖`BService`于是先查询一级缓存是否有数据一级缓存没有就查询二级缓存,有就返回,没有就创建`BService` 3. 缓存中没有,开始实例化`BService`,然后注入内部属性! 4. 注入内部属性时发现依赖`AService`,于是先查询一级缓存是否有数据一级缓存没有就查询二级缓存,有就返回,没有就创建,很显然,二级缓存是有数据的。于是从二级缓存取出`AService`注入到`BService`。 5. `BService`创建完成后将自己从二级缓存挪到一级缓存,并返回。 6. `AService`获取到`BService`后,注入到自己的属性中并把自己从二级缓存挪的一级缓存,返回`AService`! 7. 至此,循环依赖创建完成! 那么有了上面的思路,我们如何用代码实现一遍我们的逻辑呢? # **最后** **最后,强调几点:** * 1\. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目; * 2\. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的; * 3\. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问; 我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油! > **以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。** **如何获取整理好的Java面试专题资料?** **[资料获取方式:点击这里免费下载](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)** # **面试答案** ![三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里](http://www.icode9.com/i/li/?n=2&i=images/20210704/1625401064158737.jpg) ![三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里](http://www.icode9.com/i/li/?n=2&i=images/20210704/1625401065332235.jpg) ![三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里](http://www.icode9.com/i/li/?n=2&i=images/20210704/1625401065716475.jpg)

标签:轰轰,缓存,AService,partition,kafka,面试,二级缓存,https,com
来源: https://blog.51cto.com/u_15288758/2974345