昨天面试,有几个问题没搭的很好,请大家帮我参谋参谋
问1,上线系统如何对日志进行管理
由于我现在公司确实对日志管理不太关心,所以就按照自己的知识去回答了:一是按业务对日志进行分离,二是Shell脚本按日期对日志进行分割,三是指定日志生成协议,开启后台线程解析并修复不需要人工干预的部分,四是使用短信或者邮件服务通知到开发人员。
2问,MQ的消息丢了怎么办?你是如何保证消息100%到达的
答:MQ本身的设计保证了消息到达率高于99.9%,再者我们公司目前的业务主要是短信和推送使用MQ,因此及时消息丢失不会对系统业务造成影响,因此没有特别针对此开发功能。又问:如果要你来设计,你怎么来确保?
答:我会在生产者这边直接把消息持久化,并加入标志位字段:isUsed defoult=0。消费者消费后,把字段变为1。并在消费者端开启后台 线程,对一段时间的数据进行扫描,对isUsed=0的数据进行重试。
3问:如何快速定位出问题的代码,前提是代码是你的同事开发的
答:从页面开始,找到对应接口,然后深入到具体代码。这是一种很原始的方法,有更直接的吗?
(我确实不太清楚还有什么办法,于是笑了笑说)在测试环境开启Debug模式,调试。我有上千个Controller你怎么知道在哪里?
我说:Controller一般按业务分类,可以快速定位到Controller。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
上面3个问题我确实不太清楚,根据自己的潜意识回答,请大家帮我参谋一下,给出更合理的答案,谢谢!