平安银行面经
时间点如下:9.15投递 -> 9.23一面 -> 10.9二面
一点思考
平安银行整体面试的比较简单,听下来感觉面试官的技术比较一般。在面试之前就说了我的薪资预期,说可以达到,之后那个hr一直很积极得跟我联系,推进各项进度,是其他公司没有的,所以我也一直坚持着。比较坑的地方是需要做性格测试,很麻烦。最后说有CTO面,但是过了几天,说给不了我要的薪资,问我是否还继续,然后我就拒绝了。。。感觉套路也挺深。
今年找工作十分不易,市场候选人很多,能过就是钱给不到位!希望这篇面经能帮到大家~
平安银行一面(9.23)
- 最近做的一个比较有挑战的项目
- spring cloud和dubbo有什么区别
spring cloud是完整的解决方案,包括服务网关,ribbon,配置中心、注册中心等。
- dubbo怎么实现故障转移的?
failfast/failsafe/failover等策略。默认是failover,重试三次。
- dubbo和feign client有什么区别?
- dubbo SPI和JAVA SPI有什么区别?
- java-spi:默认使用线程类加载器加载,一般会直接加载所有class,文件名就是类名,如果接口非常多,类也会非常多,ServiceLoader;
- spring-spi:SpringFactoriesLoader也是线程类加载器,但是一个文件里面,用的是kv,key为类名,v用逗号隔开可以有list,可以按照key加载所有class,一般就是spring.factories,所以文件不会爆炸;
- dubbo-spi:集成前两者的特点,文件名为类名,内容为kv,但是key不是类名,例如failfast=org.apache.dubbo.rpc.cluster.support.FailfastCluster,failsafe=org.apache.dubbo.rpc.cluster.support.FailsafeCluster,可以由用户自定义,通过参数传递这个key进行匹配,v只能是一个类名,支持自身spi依赖注入,支持spring注入。
- kafka怎么用的,做了哪些优化,kafka怎么保证消费一次?kafka容灾怎么做的,怎么保证消息发送成功。
- ES怎么用的,怎么做索引大小评估?怎么分片
- ES双写怎么做,如何保证顺序一致性,如何保证不丢数据?
不丢数据,两个都写,如果写入失败了,进行一定的重试,再重试失败,丢到kafka队列里进行异步重试。死信队列。
- 历史数据如何查询?
历史数据会归档到hbase里,只能精准查询。
平安二面(10.9)
业务平台怎么复用呢?如何衡量一个业务是放在平台呢还是放在定制层呢?
平台的定位是沉淀通用的能力,快速支撑多个业务接入。减少开发量。
如果重新开发一套的成本比复用平台的成本要高,则可以自研。
如果比较通用,是多个ka共性的需求,后续其他ka可以使用,则可以放到平台来做,沉淀通用的能力。最裸的情况,平台提供数据库接口,聚合层不要有自己的数据层。
也可以后续从ka层迁移到平台来,但是成本会高些。
做平台,要考虑好扩展性,以及不同业务方要做好相互隔离,不能说一个bug影响所有的业务方。例如重要的,单独部署,不重要的合并部署。做好熔断限流降级的工作。同时提供通用的服务接口文档,避免重复咨询。避免重复修改,做好兼容。
另一个问题点是:如果定制太多,排查链路不够清晰,如果仅仅用了平台的一部分能力,排查起来会很麻烦,对全局缺乏认知。稳定性做了哪些事情呢?
- 熔断限流,sentinel
- 演练,预案可用
- 中间件降级、隔离,独立部署。
- 分库分表
- 大促压测,动态扩容和缩容,有性能瓶劲的接口则需要优化。
- 多机房容灾
- 灰度发布、金丝雀发布。10% - > 20% -> 30%
碰到的比较难的问题是什么
最近两段工作时间比较短,什么原因
IM客服和其他家客服相比,有什么优势?
- 人工化 -> 线上化 -> 流程化 -> 平台化 -> 智能化
- 行业知识库(做了很多工作)、AI(推送标签)、自动外呼结论(减少客服介入)、用户和机器人聊天、标准操作流程(用户诉求直接到达供应商)。