总结
虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。
架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。
如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。
心跳检测发送
======
关注下我圈起来的地方,这里就是心跳机制的开始喽,他先创建一个BeanInfo对象,然后交给beatReactor.addBeanInfo()这个方法。这个beatReactor看起来像个容器,那我们就去看一下他是怎么处理的。
这个类有个定时任务线程池,看到这里,我们大概就猜得出他的心跳检测机制应该是通过定时任务线程池去处理的。然后我们再看他的addBeatInfo()方法做了什么?
果然不出所料,先创建BeatTask对象然后交给定时任务线程池去定时处理这个实例信息,但是他的定时任务应该只执行一次呀,他是怎么一直不断的检测的呢,我们进BeatTask这个内部类看看他是怎么循环处理的:
通过这段代码我们可以清楚的看到他是通过在BeanTask的run()方法重复执行定时任务达到一直循环检测的需求。 然后我们返回继续注册实例
封装请求参数,调用API
最后发送注册实例的HTTP请求,一个注册实例的完整链路就走完啦。
负载均衡
====
我们看获取实例的时候nacos是怎么处理的
先尝试从serviceInfoHolder获取服务信息如果没获取到,则通过clientProxy调用API去获取所有实例列表
总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**