Java 架构师职位常见面试题,看完面试不再慌!
从架构思维,架构技术栈,架构职责等角度写好一份架构师的简历,重点突出个人掌握的架构技术栈,重点突出项目的架构亮点,难点 。
在企业内部转架构,或者去别的企业转型架构。架构面试方面多实践,如果没经验,可以让架构师老司机们多模拟面试几轮。
对于 java 程序猿而言,架构师分为业务架构师,基础架构师两大类,从高级开发转成业务架构师,难度小,出成绩快。业务架构和基础架构有 70%是一样的,那就是都要求有架构能力,剩下的 30%是业务架构要求熟练掌握业务,制定架构方案,架构落地,基础架构则是 100%要求纯技术。短期而言,看似基础架构更风光,其实不然。业务架构发展前景更好一些,因为 35 岁以后,拼的是综合能力,不再是纯架构能力。业务架构要求有更好的沟通能力,架构规划,架构落地能力,一定的行业业务背景,甚至管理能力,所以从
业务架构更容易做到技术总监或 cto。如果一直做基础架构,那么可能是首席架构师。一般的架构老司机是业务架构,基础架构通吃的,好就业,到什么山唱什么歌。
UML 是架构基本功,但又容易被开发童鞋忽视。架构师要有很强的系统分析,系统架构,系统设计,架构表达能力,通过掌握 UML,提高这些能力。业务架构师 通过 UML 可以抽象出业务平台的核心用例,可以把复杂的业务流程以分析模型表达清楚,高阶设计阶段,利用包图,组件图,部署图把设计,部署表达清楚。基础架构师设计中间件,可以画 uml 协作图,或活动图表达技术功能的流程,设计阶段,可以画包图,表达各个包的功能,然后多人可以一起撸技术中间件的具体代码,做具体架构落地。
Dubbo 相对而言,成熟稳定,文档齐全门槛低一些,但是很多服务治理方面的功能是缺失的。Springcloud 大而全,但很多功能不强大,不成熟。长期而言,个人更看好 Spring cloud,虽然目前还有一些坑,而且门槛也比 Dubbo 高,但整体发展趋势比 Dubbo 强,Spring cloud 生态体系比 Dubbo 更好,功能更全面。掌握 Dubbo 和 Spring cloud 是不冲突的,二者有很多相同的地方,又有很多地方不同。
分布式定时任务一般是多台服务器可以同时跑定时任务,效率要比一般的任务高,可用性要比一般的任务高(可以做失效转移,架构上没有单点问题,任务节点可以监控),性能要比一般任务的强(架构是强伸缩性,多台机器一起运行,执行时间要短),支持的并发能力远远超过一般的任务(多台机器执行,可以把海量数据分配给不同的机器执行,并发能力非常好)。
简单而言,高并发是访问数量,高性能是访问响应时间,两个不同的角度。并发量化的常见参数指标,qps,tps 等等,性能量化指标一般是处理时间,比如:接口响应时间是 10ms 和 5 分钟,性能是完全不一样的。qps 为 100 和 qps 为 50 万的并发架构完全不一样。如果架构不合理,并发量越大,性能越差。如果架构合理,并发量的大小对性能基本没影响,加机器即可,软件架构不需要任何改变。
项目管理其实没啥含金量,项目经理工作替代性其实很强,可以被产品经理,技术经理,核心开发等干系人替代。特别是到中年以后,项目经理很难找到合适的工作。
十、reactor 线程指的是 reactor 模型中的哪个部分?
这个问题本身是有问题的。reactor 线程模型分为单线程,多线程,主从多线程。实际编程过程中,第二种用的是最多的,
技术选型是从技术的使用场景,优缺点等方面综合评估的。很多企业用 RocketMQ 和 kafka,大数据基本 100%选 kafka.
服务限流常见算法有并发计数器算法,漏桶算法,令牌桶算法。前两种算法不支持突发流量的限流,令牌桶算法支持突发流量的限流。一般用谷歌 guava 落地令牌桶算法,用 sentinel 作为服务限流的中间件。
(未完待续…)
评论