总监面(高级或者架构面):从事至今做过哪些亮点功能或者是架构

发布时间 2023-07-18 17:19:08作者: 时间羚羊

这种问题每个人经历不一样一般回答是不一样的,

通常要回答出两点,一个提现技术,二要提现设计上的优化思路,(其实这种问题已经有点想骗作业的嫌疑了,只不过没有指明具体场景)可以分两次回答两个不同场景,如果偏管理的话,还需要回答第三点对项目的总体设计及管理思想。

 

一般回答分布式的细节操作比较加分,比如我自己的话,

要提现技术,可以回答:

1、针对雪花id时钟回拨,位数缩短的优化,顺带还可以说说对数据库表设计的一些理念(如果说后半段,难免涉及分库、分表以及一些分片思想,这些通常要涉及大数据,也得慎用)

2、利用mq调用第三方的rpc服务(这个玩意有很多点可以说,慎用),解决异构系统服务的稳定性

3、回答算法实操,这个其实最难。通常做过大型考试系统、绩效考核系统 和 数据分析都会涉及,比如说,试卷生成算法、选题算法、学生整体学习能力评定、职业生涯符合度评定;通常第一步可能是后端写的基本算法,后面完善那就是大数据搞用户画像那一套了

4、事务的多种兜底方案,a、最简单粗暴开启事务包含多个操作;b、不开启事务,将异常数据交给用户处理;c、动态触发定时任务删除异常数据或者脏数据

5、使用redis做消息的堆积和延迟,使用rabbitmq发送请求,亮点其实是堆积和延迟业务,和消息发送、消费分开来

6、binlog同步redis缓存,当时为什么用了个这个去同步redis,是因为现场运维要求及时同步菜单数据,用户改了菜单过了几分钟才能把菜单刷出来,解决:用了canal,需要启动一个canal服务订阅mysql的binlog日志,然后在java编写监听逻辑,canal会把表的json化数据刷过来,我在同步到redis,当时为什么大费周章的写这个,因为不想动之前的查询代码和定时任务。

要提现思路和设计思想,可以回答:

1、可以回答,前期选型所做的准备工作,比如说为什么选用雪花id,和uuid、号段模式、高低位算法的比较以及区别,以及使用雪花id的优缺点(其实任何全局唯一算法都是有难以逾越的缺点的)

2、为什么使用mq,使用哪种mq去调用第三方rpc服务

 

另外,一些坑点:

1、面试官总是会试图挖掘你的全部设计思路,有句话说的好,脱离业务谈技术都是空谈,这些设计思路的优化是永无止境的,点到即止并不能证明能力上的问题,没有想过也不代表你比别人差

2、如果大家真的实战过上述的东西,不要轻易被面试官忽哟,每个架构师在设计系统时遇到的问题都是相对独特的,如果面试官不认同你的回答并不一定证明你是错的,如果面试官态度强硬,那就需要慎重选择了,并不一定适合当他的手下

3、如果面试官总是拿一些非常具体的业务上的场景以及实操bug来问,基本上可以敷衍他,没入职是没有必要提供具体解决思路的,浅谈就可以了,也可以否定这家公司。